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()