Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/python-igra-tetris-kivy/main_lesson_2.py
5925 views
1
from kivy.app import App
2
from kivy.uix.widget import Widget
3
from random import random as r
4
from kivy.graphics import Color, Rectangle
5
from kivy.core.window import Window
6
7
W, H = 10, 20
8
TILE = 45
9
GAME_RES = W * TILE, H * TILE
10
11
class GridGame(Widget):
12
def draw_grid(self, wid, TILE_W, TILE_H):
13
with wid.canvas:
14
for x in range(W):
15
for y in range(H):
16
Color(r(), 1, 1, mode='hsv')
17
Rectangle(pos=(20+x*TILE_W, 20+y*TILE_H), size=(TILE_W, TILE_H))
18
19
class TetrisGame(Widget):
20
my_grid = GridGame()
21
22
23
class TetrisApp(App):
24
def build(self):
25
Window.bind(on_resize=self.on_window_resize)
26
return TetrisGame()
27
28
def on_start(self):
29
self._width = self.root.ids['game_layout'].width
30
self._height = self.root.ids['game_layout'].height
31
self._width_glass = self._width/20*12
32
self._height_glass = self._height - 40
33
34
TILE_W = self._width_glass / W
35
TILE_H = self._height_glass / H
36
37
self.root.my_grid.draw_grid(self.root.ids['game_layout_box'], TILE_W, TILE_H)
38
39
def on_window_resize(self, window, width, height):
40
self._width = self.root.ids['game_layout'].width
41
self._height = self.root.ids['game_layout'].height
42
self._width_glass = self._width/20*12
43
self._height_glass = self._height - 40
44
45
TILE_W = self._width_glass / W
46
TILE_H = self._height_glass / H
47
48
self.root.ids['game_layout_box'].canvas.clear()
49
self.root.my_grid.draw_grid(self.root.ids['game_layout_box'], TILE_W, TILE_H)
50
51
if __name__ == '__main__':
52
TetrisApp().run()
53
54