-
Notifications
You must be signed in to change notification settings - Fork 0
/
5-repeat-game.py
79 lines (60 loc) · 1.85 KB
/
5-repeat-game.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from machine import Pin, SPI
import time
from game_engine import *
import ssd1306
# inicializace tlacitek
tlacitko_nahoru = Pin(0, Pin.IN, Pin.PULL_DOWN)
tlacitko_akce = Pin(5, Pin.IN, Pin.PULL_DOWN)
# ... dalsi tlacitka
tlacitko_skok = tlacitko_nahoru
tlacitko_start = tlacitko_akce
# velikost displeje
displej_vyska = 64
displej_sirka = 128
# inicializace tlacitek
spi = SPI(1, 80_000_000, sck=Pin(10), mosi=Pin(11))
display = ssd1306.SSD1306_SPI(displej_vyska, displej_sirka, spi, dc=Pin(8), res=Pin(7), cs=Pin(9))
# cesty k obrazkum
dino_path = "/images/dino-cropped-20-22.pbm"
kaktus_path = "/images/ kaktus.pbm"
# nacteni obrazku
dino_img = Image(dino_path)
kaktus_img = Image( kaktus_path)
# vytvoreni pohybujicich se postav/objektu
hrac = MovingObject(10, displej_sirka - dino_img.height, dino_img, display)
kaktus = MovingObject(120, displej_sirka - kaktus_img.height, kaktus_img, display)
def herni_smycka():
# cas od zacatku v ms
now = time.ticks_ms()
# aktualizace casu ve vypoctu pozic
hrac.physics_tick(now)
kaktus.physics_tick(now)
# reset pozic, kdyby se nahodnou pohnuly
hrac.set_pos(10, displej_sirka - dino_img.height)
kaktus.set_pos(120, displej_sirka - kaktus_img.height)
# pohyb kaktusu
kaktus.set_motion_vector(-1.5,0)
# herni smycka
while True:
display.fill(0)
# cas od zacatku v ms
now = time.ticks_ms()
if tlacitko_skok.value() and hrac.on_ground():
# skoc
hrac.set_motion_vector(0,-3.5)
# aktualizace pozice
hrac.physics_tick(now)
kaktus.physics_tick(now)
if kaktus.x <= -kaktus_img.width:
# premysteni kaktusu
kaktus.set_pos(x=128)
# vykresleni kaktusu a hrace
kaktus.draw()
hrac.draw()
# zobrazeni na displej
display.show()
if hrac.collision_test([kaktus]) != None:
break
while True:
if tlacitko_start.value():
herni_smycka()