Mercurial > ukubik
changeset 78:819e32b9495c
Add keyboard control to joy.py
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Wed, 01 Oct 2014 17:21:18 +0200 |
| parents | c104b318ec34 |
| children | c7712053e73e |
| files | joy.py |
| diffstat | 1 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/joy.py Mon Sep 15 20:05:00 2014 +0200 +++ b/joy.py Wed Oct 01 17:21:18 2014 +0200 @@ -24,6 +24,38 @@ for event in pygame.event.get(): if event.type == pygame.QUIT: raise SystemExit() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_RIGHT: + self.speed[0] = min(1, self.speed[0] + 0.25) + elif event.key == pygame.K_LEFT: + self.speed[0] = max(-1, self.speed[0] - 0.25) + elif event.key == pygame.K_UP: + self.speed[1] = min(1, self.speed[1] + 0.25) + elif event.key == pygame.K_DOWN: + self.speed[1] = max(-1, self.speed[1] - 0.25) + if event.key == pygame.K_d: + self.rotation = min(0.8, self.rotation + 0.2) + elif event.key == pygame.K_a: + self.rotation = max(-0.8, self.rotation - 0.2) + elif event.key == pygame.K_s: + dz = min(1, dz + 0.25) + elif event.key == pygame.K_w: + dz = max(-1, dz - 0.25) + elif event.key == pygame.K_RSHIFT: + if self.speed[0] >= 0: + self.gait = 'forward' + else: + self.gait = 'backward' + elif event.key == pygame.K_RCTRL: + if self.rotation >= 0: + self.gait = 'left' + else: + self.gait = 'right' + elif event.key == pygame.K_RETURN: + robot.beep(440, 100) + elif event.type == pygame.KEYUP: + if event.key in (pygame.K_RSHIFT, pygame.K_RCTRL): + self.gait = '' elif event.type == pygame.JOYBUTTONDOWN: if event.button == 10: if self.speed[0] >= 0: @@ -70,6 +102,7 @@ if __name__ == '__main__': # Initialize PyGame. pygame.display.init() + window = pygame.display.set_mode((200, 200)) pygame.joystick.init() for joy in range(pygame.joystick.get_count()): pygame.joystick.Joystick(joy).init()
