diff --git a/FlappyBird.py b/FlappyBird.py
index c3e7549..a41d800 100644
--- a/FlappyBird.py
+++ b/FlappyBird.py
@@ -9,6 +9,8 @@
from kivy.vector import Vector
from kivy.app import App
from kivy.clock import Clock
+from kivy.config import Config
+from kivy.core.window import Window
from kivy.uix.widget import Widget
class Background(Widget):
@@ -51,6 +53,14 @@ class Mcnay(Widget):
def __init__(self, **kwargs):
super(Mcnay, self).__init__(**kwargs)
+ if Config.getdefault('input', 'keyboard', False):
+ self._keyboard = Window.request_keyboard(
+ self._keyboard_closed, self, 'text')
+ self._keyboard.bind(on_key_down=self._on_keyboard_down)
+
+ def _keyboard_closed(self):
+ self._keyboard.unbind(on_key_down=self._on_keyboard_down)
+ self._keyboard = None
def switch_to_normal(self, dt):
self.bird_image.source = "images/flappyup.png"
@@ -68,6 +78,9 @@ def on_touch_down(self, touch):
Clock.unschedule(self.stop_jumping)
Clock.schedule_once(self.switch_to_normal, self.jump_time / 5.0)
+ def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
+ self.on_touch_down(None)
+
def update(self):
self.pos = Vector(*self.velocity) + self.pos
@@ -157,4 +170,4 @@ def build(self):
return game
if __name__ == "__main__":
- FlappyBirdApp().run()
\ No newline at end of file
+ FlappyBirdApp().run()
diff --git a/README.md b/README.md
index 75e0b61..a073de3 100644
--- a/README.md
+++ b/README.md
@@ -5,4 +5,12 @@ FlappyKivy
Flappy Bird clone programmed in Python + Kivy!
-[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TGRE7G6ASVFVS)
\ No newline at end of file
+[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=TGRE7G6ASVFVS)
+
+## Controls
+
+Tap the touch screen, click using mouse, or start FlappyKivy with keyboard support:
+
+```sh
+$ python FlappyBird.py -c input:keyboard:True
+```