コード例 #1
0
    async def on_init(self):
        # init controls
        self.nsg = NSGamepadSerial()
        self.nsg.begin()

        self.io.register_inputs(
            {
                "left_joystick": NSJoystick(
                    self.nsg.leftXAxis, self.nsg.leftYAxis
                ),
                "right_joystick": NSJoystick(
                    self.nsg.rightXAxis, self.nsg.rightYAxis
                ),
                "dpad_up": NSDPadSwitch(self.nsg, NSDPad.UP),
                "dpad_left": NSDPadSwitch(self.nsg, NSDPad.LEFT),
                "dpad_right": NSDPadSwitch(self.nsg, NSDPad.RIGHT),
                "dpad_down": NSDPadSwitch(self.nsg, NSDPad.DOWN),
                "Y": NSSwitch(self.nsg, NSButton.Y),
                "X": NSSwitch(self.nsg, NSButton.X),
                "A": NSSwitch(self.nsg, NSButton.A),
                "B": NSSwitch(self.nsg, NSButton.B),
                "left_throttle": NSSwitch(self.nsg, NSButton.LEFT_THROTTLE),
                "left_trigger": NSSwitch(self.nsg, NSButton.LEFT_TRIGGER),
                "right_throttle": NSSwitch(self.nsg, NSButton.RIGHT_THROTTLE),
                "right_trigger": NSSwitch(self.nsg, NSButton.RIGHT_TRIGGER),
                "minus": NSSwitch(self.nsg, NSButton.MINUS),
                "plus": NSSwitch(self.nsg, NSButton.PLUS),
                "left_stick": NSSwitch(self.nsg, NSButton.LEFT_STICK),
                "right_stick": NSSwitch(self.nsg, NSButton.RIGHT_STICK),
                "home": NSSwitch(self.nsg, NSButton.HOME),
                "capture": NSSwitch(self.nsg, NSButton.CAPTURE),
            },
        )
コード例 #2
0
    async def on_init(self):
        # init controls
        self.nsg = NSGamepadSerial()
        self.nsg.begin()
        self.io.register_inputs(
            {
                "left_joystick":
                NSJoystick(self.nsg.leftXAxis, self.nsg.leftYAxis),
                "right_joystick":
                NSJoystick(self.nsg.rightXAxis, self.nsg.rightYAxis),
                "dpad_up":
                NSDPadSwitch(self.nsg, NSDPad.UP),
                "dpad_left":
                NSDPadSwitch(self.nsg, NSDPad.LEFT),
                "dpad_right":
                NSDPadSwitch(self.nsg, NSDPad.RIGHT),
                "dpad_down":
                NSDPadSwitch(self.nsg, NSDPad.DOWN),
                "Y":
                NSSwitch(self.nsg, NSButton.Y),
                "X":
                NSSwitch(self.nsg, NSButton.X),
                "A":
                NSSwitch(self.nsg, NSButton.A),
                "B":
                NSSwitch(self.nsg, NSButton.B),
                "left_throttle":
                NSSwitch(self.nsg, NSButton.LEFT_THROTTLE),
                "left_trigger":
                NSSwitch(self.nsg, NSButton.LEFT_TRIGGER),
                "right_throttle":
                NSSwitch(self.nsg, NSButton.RIGHT_THROTTLE),
                "right_trigger":
                NSSwitch(self.nsg, NSButton.RIGHT_TRIGGER),
                "minus":
                NSSwitch(self.nsg, NSButton.MINUS),
                "plus":
                NSSwitch(self.nsg, NSButton.PLUS),
                "left_stick":
                NSSwitch(self.nsg, NSButton.LEFT_STICK),
                "right_stick":
                NSSwitch(self.nsg, NSButton.RIGHT_STICK),
                "home":
                NSSwitch(self.nsg, NSButton.HOME),
                "capture":
                NSSwitch(self.nsg, NSButton.CAPTURE),
                "capture_frame":
                CaptureScreen(),
            }, )
        # init image rec
        self.image_rec_task = asyncio.create_task(self.image_rec_main())
        self.image_rec_task.add_done_callback(self.image_rec_done_cb)

        # init frame saving
        logging.info(f"SAVING FRAMES TO {SAVE_DIR_PATH}")
        Path(SAVE_DIR_PATH).mkdir(parents=True, exist_ok=True)
コード例 #3
0
    async def on_init(self):
        self.prepare = True
        # init controls
        self.nsg = NSGamepadSerial()
        self.nsg.begin()
        self.io.register_inputs(
            {
                "left_joystick": NSJoystick(
                    self.nsg.leftXAxis, self.nsg.leftYAxis
                ),
                "right_joystick": NSJoystick(
                    self.nsg.rightXAxis, self.nsg.rightYAxis
                ),
                "dpad_up": NSDPadSwitch(self.nsg, NSDPad.UP),
                "dpad_left": NSDPadSwitch(self.nsg, NSDPad.LEFT),
                "dpad_right": NSDPadSwitch(self.nsg, NSDPad.RIGHT),
                "dpad_down": NSDPadSwitch(self.nsg, NSDPad.DOWN),
                "Y": NSSwitch(self.nsg, NSButton.Y),
                "X": NSSwitch(self.nsg, NSButton.X),
                "A": NSSwitch(self.nsg, NSButton.A),
                "B": NSSwitch(self.nsg, NSButton.B),
                "left_throttle": NSSwitch(self.nsg, NSButton.LEFT_THROTTLE),
                "left_trigger": NSSwitch(self.nsg, NSButton.LEFT_TRIGGER),
                "right_throttle": NSSwitch(self.nsg, NSButton.RIGHT_THROTTLE),
                "right_trigger": NSSwitch(self.nsg, NSButton.RIGHT_TRIGGER),
                "minus": NSSwitch(self.nsg, NSButton.MINUS),
                "left_stick": NSSwitch(self.nsg, NSButton.LEFT_STICK),
                "right_stick": NSSwitch(self.nsg, NSButton.RIGHT_STICK),
                "capture_frame": CaptureScreen(),
                "reset_trinkets": reset_trinkets(),
                "plus": NSSwitch(self.nsg, NSButton.PLUS),
            },
        )
        self.io.register_inputs(
            {
                "home": NSSwitch(self.nsg, NSButton.HOME),
                "capture": NSSwitch(self.nsg, NSButton.CAPTURE),
                "debug_switch": debug_switch(),
            },
            admin=True,
        )

        # init image rec
        self.image_rec_task = asyncio.create_task(self.image_rec_main())
        self.image_rec_task.add_done_callback(self.image_rec_done_cb)

        # init frame saving
        logging.info(f"SAVING FRAMES TO {SAVE_DIR_PATH}")
        Path(SAVE_DIR_PATH).mkdir(parents=True, exist_ok=True)

        self.curUser = "******"
        self.userID = "eu-west-1:dummydummydummydummydummydummydummyd"
コード例 #4
0
ファイル: game_weplay.py プロジェクト: DaneHalle/surrortg-sdk
    async def on_init(self):
        # init controls
        # connect to pigpio daemon

        self.pi = pigpio.pi()
        if not self.pi.connected:
            raise RuntimeError("Could not connect to pigpio")

        # init joystick splitter, enable physical joystick by default
        self.pi.set_mode(20, pigpio.OUTPUT)
        self.pi.set_mode(21, pigpio.OUTPUT)
        self.pi.write(20, 1)
        self.pi.write(21, 1)
        self.nsg = NSGamepadSerial()
        self.nsg.begin()
        self.io.register_inputs(
            {
                "left_joystick":
                NSJoystick(self.nsg.leftXAxis, self.nsg.leftYAxis),
                "right_joystick":
                NSJoystick(self.nsg.rightXAxis, self.nsg.rightYAxis),
                "dpad_up":
                NSDPadSwitch(self.nsg, NSDPad.UP),
                "dpad_left":
                NSDPadSwitch(self.nsg, NSDPad.LEFT),
                "dpad_right":
                NSDPadSwitch(self.nsg, NSDPad.RIGHT),
                "dpad_down":
                NSDPadSwitch(self.nsg, NSDPad.DOWN),
                "Y":
                NSSwitch(self.nsg, NSButton.Y),
                "X":
                WeplayXSwitch(self.nsg, NSButton.X),
                "A":
                WeplayASwitch(self.nsg, NSButton.A),
                "B":
                WeplayBSwitch(self.nsg, NSButton.B),
                "left_throttle":
                NSSwitch(self.nsg, NSButton.LEFT_THROTTLE),
                "left_trigger":
                WeplayTriggerSwitch(self.nsg, NSButton.LEFT_TRIGGER),
                "right_throttle":
                NSSwitch(self.nsg, NSButton.RIGHT_THROTTLE),
                "right_trigger":
                WeplayTriggerSwitch(self.nsg, NSButton.RIGHT_TRIGGER),
                "minus":
                WeplayMinusSwitch(self.nsg, NSButton.MINUS),
                "plus":
                NSSwitch(self.nsg, NSButton.PLUS),
                "left_stick":
                NSSwitch(self.nsg, NSButton.LEFT_STICK),
                "right_stick":
                NSSwitch(self.nsg, NSButton.RIGHT_STICK),
                "home":
                NSSwitch(self.nsg, NSButton.HOME),
                "capture":
                NSSwitch(self.nsg, NSButton.CAPTURE),
            }, )
        self.lock = asyncio.Lock()

        # create capture
        self.cap = await AsyncVideoCapture.create("/dev/video21")
        # get home current detector
        self.has_home_current_game_selected = get_pixel_detector(
            HOME_CURRENT_GAME_SELECTED_PIXELS, close=35)
        self.has_maybe_game_over = get_pixel_detector(MAYBE_GAME_OVER_PIXELS)

        self.image_rec_task = asyncio.create_task(self.image_rec_main())
        self.image_rec_task.add_done_callback(self.image_rec_done_cb)
        self.inputs_can_be_enabled = False

        if SAVE_FRAMES:
            logging.info(f"SAVING FRAMES TO {SAVE_DIR_PATH}")
            Path(SAVE_DIR_PATH).mkdir(parents=True, exist_ok=True)

        # single press B, this will exit MAP_MENU/ITEMS_MENU,
        # to PLAYING game_state (weplay_switches.py)
        logging.info("single pressing B to get away from menus")
        await single_press(NSButton.B, self.nsg)
コード例 #5
0
    async def on_init(self):
        # init controls
        self.nsg = NSGamepadSerial()
        self.nsg.begin()
        self.io.register_inputs({
            "left_joystick":
            NSJoystick(self.nsg.leftXAxis, self.nsg.leftYAxis),
            "dpad_up":
            NSDPadSwitch(self.nsg, NSDPad.UP),
            "dpad_left":
            NSDPadSwitch(self.nsg, NSDPad.LEFT),
            "dpad_right":
            NSDPadSwitch(self.nsg, NSDPad.RIGHT),
            "dpad_down":
            NSDPadSwitch(self.nsg, NSDPad.DOWN),
            "X":
            NSSwitch(self.nsg, NSButton.X),
            "A":
            NSSwitch(self.nsg, NSButton.A),
            "B":
            NSSwitch(self.nsg, NSButton.B),
            "left_throttle":
            NSSwitch(self.nsg, NSButton.LEFT_THROTTLE),
            "right_throttle":
            NSSwitch(self.nsg, NSButton.RIGHT_THROTTLE),
        })
        self.io.register_inputs(
            {
                "right_joystick":
                NSJoystick(self.nsg.rightXAxis, self.nsg.rightYAxis),
                "Y":
                NSSwitch(self.nsg, NSButton.Y),
                "left_trigger":
                NSSwitch(self.nsg, NSButton.LEFT_TRIGGER),
                "right_trigger":
                NSSwitch(self.nsg, NSButton.RIGHT_TRIGGER),
                "minus":
                NSSwitch(self.nsg, NSButton.MINUS),
                "plus":
                NSSwitch(self.nsg, NSButton.PLUS),
                "left_stick":
                NSSwitch(self.nsg, NSButton.LEFT_STICK),
                "right_stick":
                NSSwitch(self.nsg, NSButton.RIGHT_STICK),
                "home":
                NSSwitch(self.nsg, NSButton.HOME),
                "capture":
                NSSwitch(self.nsg, NSButton.CAPTURE),
            },
            admin=True,
        )

        # get detectors
        self.has_4_ready_to_start = get_pixel_detector(HAS_4_READY_PIXELS)
        self.has_flag = get_pixel_detector(FLAG_PIXELS)
        self.has_finish_text = get_pixel_detector(FINISH_TEXT_PIXELS)
        self.position_detectors = {
            1: get_pixel_detector(POS_1_PIXELS),
            2: get_pixel_detector(POS_2_PIXELS),
            3: get_pixel_detector(POS_3_PIXELS),
            4: get_pixel_detector(POS_4_PIXELS),
        }

        # init image rec
        self.image_rec_task = asyncio.create_task(self.image_rec_main())
        self.image_rec_task.add_done_callback(self.image_rec_done_cb)
        self.image_rec_task_cancelled = False

        # frame saving
        if SAVE_FRAMES:
            logging.info(f"SAVING FRAMES TO {SAVE_DIR_PATH}")
            Path(SAVE_DIR_PATH).mkdir(parents=True, exist_ok=True)

        if SAVE_POS_FRAMES:
            logging.info(f"SAVING POS FRAMES TO {SAVE_POS_DIR_PATH}")
            Path(SAVE_POS_DIR_PATH).mkdir(parents=True, exist_ok=True)

        # game state
        self.has_started = False
        self.has_finished = False
        self.failed_score_reads = 0
        self.pre_game_ready_sent = False
        self.score_sent = False