Path: blob/master/python-igra-tetris-kivy/main_lesson_2.py
5925 views
from kivy.app import App1from kivy.uix.widget import Widget2from random import random as r3from kivy.graphics import Color, Rectangle4from kivy.core.window import Window56W, H = 10, 207TILE = 458GAME_RES = W * TILE, H * TILE910class GridGame(Widget):11def draw_grid(self, wid, TILE_W, TILE_H):12with wid.canvas:13for x in range(W):14for y in range(H):15Color(r(), 1, 1, mode='hsv')16Rectangle(pos=(20+x*TILE_W, 20+y*TILE_H), size=(TILE_W, TILE_H))1718class TetrisGame(Widget):19my_grid = GridGame()202122class TetrisApp(App):23def build(self):24Window.bind(on_resize=self.on_window_resize)25return TetrisGame()2627def on_start(self):28self._width = self.root.ids['game_layout'].width29self._height = self.root.ids['game_layout'].height30self._width_glass = self._width/20*1231self._height_glass = self._height - 403233TILE_W = self._width_glass / W34TILE_H = self._height_glass / H3536self.root.my_grid.draw_grid(self.root.ids['game_layout_box'], TILE_W, TILE_H)3738def on_window_resize(self, window, width, height):39self._width = self.root.ids['game_layout'].width40self._height = self.root.ids['game_layout'].height41self._width_glass = self._width/20*1242self._height_glass = self._height - 404344TILE_W = self._width_glass / W45TILE_H = self._height_glass / H4647self.root.ids['game_layout_box'].canvas.clear()48self.root.my_grid.draw_grid(self.root.ids['game_layout_box'], TILE_W, TILE_H)4950if __name__ == '__main__':51TetrisApp().run()525354