Skip to content

Instantly share code, notes, and snippets.

@SpaceVoyager
Created October 15, 2016 19:35
Show Gist options
  • Save SpaceVoyager/e97acd43065cdd43436e88562f8a1650 to your computer and use it in GitHub Desktop.
Save SpaceVoyager/e97acd43065cdd43436e88562f8a1650 to your computer and use it in GitHub Desktop.
hangman.py
from scene import *
from ui import *
import speech
def is_point_inside_rect(point, rect):
x = rect[0]
y = rect[1]
w = rect[2]
h = rect[3]
if point.x >= x-w/2 and point.x <= x+w/2 and point.y >= y-h/2 and point.y <= y+h/2:
return True
else:
return False
class MyScene (Scene):
def setup(self):
self.background_color = 'white'
keyboard_font = ('Futura', 40)
self.letters = 'QWERTYUIOPASDFGHJKLZXCVBNM'
i = 0
keyboard_y = 220
key_height = 80
key_width = 100
self.button_rects = []
self.buttons = []
for letter in self.letters:
x = i*(key_width+2)+ 54
i += 1
if i < 11:
y = keyboard_y
elif i < 20:
x = (i-11)*(key_width+2) + 104
y = keyboard_y - key_height -2
else:
y= keyboard_y-2*key_height-4
x = (i-21)*(key_width+2) + 308
self.button_rect = (x, y, key_width, key_height)
self.button_rects.append(self.button_rect)
self.button_shape = ShapeNode(path=Path.rounded_rect(100, 250, self.button_rect[2], self.button_rect[3], 5), fill_color='blue', stroke_color='black', parent=self)
self.button_shape.position = (self.button_rect[0], self.button_rect[1])
self.buttons.append(self.button_shape)
self.button_label = LabelNode(letter, keyboard_font, parent=self)
self.button_label.position = (self.button_rect[0], self.button_rect[1])
self.button_label.color = 'white'
self.button_label.z_position = 1
def touch_began(self, touch):
speech.say('you touched ')
button_index = 0
for button_rect in self.button_rects:
if is_point_inside_rect(touch.location, button_rect):
button_pressed = self.buttons[button_index]
button_pressed.fill_color = 'gray'
speech.say(self.letters[button_index].lower())
button_index += 1
run(MyScene())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment