def __init__(self, width=None, height=None): pygame.init() self.clock = pygame.time.Clock() self.frame_count = 2 self.menu = None self.image = None self.select_time = pygame.time.get_ticks() self.hand_positions = [] self.hand_times = [] self.l_hand = [1, 1] self.r_hand = [1, 1] if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: info_object = pygame.display.Info() self.WIDTH = info_object.current_w self.HEIGHT = info_object.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Game Selection') self.pnet = posenetInterface(257) self.menu_init() self.option_boxes = self.menu.get_option_rects()
def __init__(self, width=None, height=None, pnet=None): pygame.init() self.clock = pygame.time.Clock() if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: info_object = pygame.display.Info() self.WIDTH = info_object.current_w self.HEIGHT = info_object.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Hands') if pnet: self.pnet = pnet else: self.pnet = posenet_interface.posenetInterface(257) self.myfont = pygame.font.SysFont("Comic Sans MS", 40) self.image = None self.interpreter = Interpreter(model_path='hand_landmark.tflite') self.interpreter.allocate_tensors() self.input_details = self.interpreter.get_input_details() self.output_details = self.interpreter.get_output_details()
def __init__(self, num_boxes, width=None, height=None): pygame.init() self.clock = pygame.time.Clock() self.NUM_BOXES = num_boxes self.score = 0 self.failed = False self.fail_time = 0 if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: infoObject = pygame.display.Info() self.WIDTH = infoObject.current_w self.HEIGHT = infoObject.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Dodger') self.boxes = None self.gen_boxes() self.frame_count = 0 self.time_frame = 0 self.pnet = posenet_interface.posenetInterface(257)
def main(): pnet = posenetInterface(257) show_fps = False if len(sys.argv) > 1: show_fps = True total_frames = 0 time_begin = time.time() cv2.namedWindow("posenet", cv2.WND_PROP_FULLSCREEN) cv2.setWindowProperty("posenet", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) while 1: infer_begin = time.time() overlay_image, _ = pnet.get_image(10) infer_time = time.time() - infer_begin # print("Draw time: " + str(infer_time)) fps = 1.0 / infer_time overlay_image = cv2.flip(overlay_image, 1) if show_fps: cv2.putText(overlay_image, '%.2f fps' % fps, (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0)) overlay_image = cv2.resize(overlay_image, (640, 480)) cv2.imshow('posenet', cv2.cvtColor(overlay_image, cv2.COLOR_RGB2BGR)) total_frames += 1 if cv2.waitKey(1) & 0xFF == ord('q'): break print('Average FPS: ', total_frames / (time.time() - time_begin))
def __init__(self, game, width=None, height=None, pnet=None): pygame.init() self.clock = pygame.time.Clock() parser = argparse.ArgumentParser() parser.add_argument('--fullscreen_emu', dest='fullscreen_emu', action='store_true') parser.add_argument('--wait_length', type=int, default=300) parser.set_defaults(fullscreen_emu=False) args = parser.parse_args() self.fullscreen_emu = args.fullscreen_emu self.wait_length = args.wait_length if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: info_object = pygame.display.Info() self.WIDTH = info_object.current_w self.HEIGHT = info_object.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Gestures') print(pygame.display.Info()) if pnet: self.pnet = pnet else: self.pnet = posenet_interface.posenetInterface(257) self.keypoints = [] time = pygame.time.get_ticks() self.check_time = time self.myfont = pygame.font.SysFont("Comic Sans MS", 40) self.buffer_time = time self.jump_time = time self.image = None self.gesture = [] self.game = game self.keyboard = Controller() self.start = True game_path = os.path.join( pathlib.Path(__file__).parent.absolute(), game) + ".nes" print(game_path) subprocess.Popen([ "mednafen", "-psx.dbg_level", "0", "-sftoggle", "1", "-video.fs", "1" if self.fullscreen_emu else "0", "-cheats", "1", game_path ]) ti.sleep(1) with self.keyboard.pressed(Key.ctrl): with self.keyboard.pressed(Key.alt): self.keyboard.press(Key.left) self.keyboard.release(Key.left) self.keyboard.press('\\') self.keyboard.release('\\')
def __init__(self, two_player, width=None, height=None, pnet=None): pygame.init() self.clock = pygame.time.Clock() if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: info_object = pygame.display.Info() self.WIDTH = info_object.current_w self.HEIGHT = info_object.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Pong') self.BALL_RADIUS = self.HEIGHT // 24 self.PAD_WIDTH = self.WIDTH // 35 self.PAD_HEIGHT = self.HEIGHT // 4 self.HALF_PAD_WIDTH = self.PAD_WIDTH // 2 self.HALF_PAD_HEIGHT = self.PAD_HEIGHT // 2 self.ball_pos = [0, 0] self.ball_vel = [0, 0] self.paddle1_vel = 0 self.paddle2_vel = 0 self.l_hand = [0, 0] self.r_hand = [0, 0] self.vel_time = pygame.time.get_ticks() self.frame_count = 2 if pnet: self.pnet = pnet else: self.pnet = posenet_interface.posenetInterface(257) self.image, _ = self.pnet.get_image() self.paddle1_pos = [self.HALF_PAD_WIDTH - 1, self.HEIGHT // 2] self.paddle2_pos = [ self.WIDTH + 1 - self.HALF_PAD_WIDTH, self.HEIGHT // 2 ] self.l_score = 0 self.r_score = 0 self.two_player = two_player if random.randrange(0, 2) == 0: self.ball_init(True) else: self.ball_init(False)
def __init__(self, num_boxes, width=None, height=None, pnet=None): pygame.init() self.clock = pygame.time.Clock() self.image = None self.NUM_BOXES = num_boxes self.score = -1 self.failed = False self.fail_time = 0 self.warn = True self.warn_time = 0 self.warn_img = pygame.image.load('exclamation_mark.png') self.rock_img = pygame.image.load('rock.png') self.gravity = 20 self.box_speed = 0 self.delta_time = self.clock.get_time() if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: info_object = pygame.display.Info() self.WIDTH = info_object.current_w self.HEIGHT = info_object.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Dodger') self.boxes = None self.frame_count = 0 self.time_frame = 0 if pnet: self.pnet = pnet else: self.pnet = posenet_interface.posenetInterface(257) self.image, _ = self.pnet.get_image()
sys.path.append("..") import posenet_interface def scale_keypoints(original_shape, keypoints): scale = np.array([480 / original_shape[0], 640 / original_shape[1]]) return keypoints * scale def move_car(car_pos): keypoints = pnet.get_keypoints() keypoints = scale_keypoints((640, 480), keypoints[0]) if keypoints[11][1] != 0.0: car_pos[0] = 640 - int(keypoints[11][1]) pygame.init() pnet = posenet_interface.posenetInterface(257) BLACK = pygame.color.THECOLORS["black"] WHITE = pygame.color.THECOLORS["white"] BLUE = (0, 0, 255) GREY = (245, 245, 245) CLOCK = pygame.time.Clock() # Open pygame window WIDTH, HEIGHT = 640, 480 screen = pygame.display.set_mode((WIDTH, HEIGHT), ) # add RESIZABLE or FULLSCREEN # Title pygame.display.set_caption("roadcaster") plane_center_x = WIDTH // 2 texture = pygame.image.load('stripes.png').convert() texture = pygame.transform.scale(texture, (WIDTH, texture.get_height())) texture2 = pygame.image.load('road3.png').convert()
def __init__(self, width=None, height=None, pnet=None): pygame.init() self.clock = pygame.time.Clock() if width and height: self.WIDTH = width self.HEIGHT = height self.window = pygame.display.set_mode((self.WIDTH, self.HEIGHT)) else: info_object = pygame.display.Info() self.WIDTH = info_object.current_w self.HEIGHT = info_object.current_h flags = pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE self.window = pygame.display.set_mode(flags=flags) pygame.display.set_caption('Posenet Roadcaster') if pnet: self.pnet = pnet else: self.pnet = posenet_interface.posenetInterface(257) # Display objects self.plane_center_x = self.WIDTH // 2 self.texture = pygame.image.load('stripes.png').convert() self.texture = pygame.transform.scale(self.texture, (self.WIDTH, self.texture.get_height())) self.texture2 = pygame.image.load('road3.png').convert() self.wall_texture_orig = pygame.image.load('wall.png').convert() self.road_width = self.texture2.get_width() self.road_height = self.texture2.get_height() self.player_car = pygame.image.load('player_car.png').convert_alpha() self.player_car = pygame.transform.scale(self.player_car, (self.WIDTH // 5, self.HEIGHT // 5)) ground = pygame.Surface((640, 240)).convert() ground.fill((0, 100, 0)) self.resolution = self.WIDTH // 640 self.bright_image = self.player_car.copy() self.bright_image.fill((200, 200, 200, 0), special_flags=pygame.BLEND_RGBA_ADD) # field of view (FOV) self.fov = 60 wall_height = 64 self.player_height = wall_height / 2 self.player_pos = [self.WIDTH // 4, int((self.WIDTH // 4) * 1.4)] self.car_pos = [(self.WIDTH // 2), (self.WIDTH // 2) - 80] view_angle = 90 # Center of the Projection Plane self.plane_center = self.HEIGHT // 2 # [WIDTH/2, HEIGHT/2] # distance from player to projection plane self.to_plane_dist = int((self.WIDTH / 2) / tan(radians(self.fov / 2))) # angle of the casted ray ray_angle = 90 # view_angle+(fov/2) beta = radians(view_angle - ray_angle) self.cos_beta = cos(beta) self.sin_angle = -sin(radians(ray_angle)) move_speed = 15 self.x_move = int(move_speed * cos(radians(view_angle))) self.y_move = -int(move_speed * sin(radians(view_angle))) with open('default.road', 'rb') as file: file_loader = pickle.Unpickler(file) self.curve = file_loader.load() self.road_start = 0 # this indicate the position on the road self.direction = 1 # this is used to change the curve direction self.road_index = 0 # this is used to index all points on the curve self.speed = 1 # this is used to increment road_start # Wall objects self.m, self.b = self.get_road_eqn() self.wall_time = pygame.time.get_ticks() self.wall_idx = 0 self.wall_size = self.HEIGHT // 90 self.wall_x = self.get_wall_x() self.orig_x1 = self.wall_x self.wall2_x = self.get_wall_x() self.orig_x2 = self.wall2_x self.slope_wall1 = self.get_wall_slope(self.wall_x) self.slope_wall2 = self.get_wall_slope(self.wall2_x) self.wall_y = self.plane_center + 10 + self.wall_size // 2 self.draw_wall = False self.increment = None self.wall_speed = None self.wall_accel = None # Timer fonts self.start_time = pygame.time.get_ticks() self.time_font = pygame.font.SysFont(pygameMenu.fonts.FONT_8BIT, self.HEIGHT // 20) # Fail objects fail_font = pygame.font.SysFont(pygameMenu.fonts.FONT_8BIT, self.HEIGHT // 10) self.fail_label = fail_font.render("FAILED", 1, (255, 0, 0)) self.fail_rect = self.fail_label.get_rect(center=( self.WIDTH // 2, (self.HEIGHT // 2) + self.fail_label.get_height())) self.failed = False self.fail_time = 0 self.explosion = pygame.image.load('Explosion.png').convert() explosion_scale = self.player_car.get_width() // self.explosion.get_height() self.explosion = pygame.transform.scale(self.explosion, (self.explosion.get_width() * explosion_scale, self.explosion.get_height() * explosion_scale)) self.explosion_idx = 1 self.score = 0 self.jump = False self.car_vel = self.HEIGHT // 1.3