0.1.1 #7
28
bricks.py
28
bricks.py
@@ -3,8 +3,6 @@ import globals
|
||||
import enums
|
||||
from random import choice
|
||||
|
||||
|
||||
|
||||
class Brick:
|
||||
def __init__(self, brick, state = enums.BrickState.Next):
|
||||
self.shape = []
|
||||
@@ -49,8 +47,11 @@ class Brick:
|
||||
return True if self.state == enums.BrickState.Current else False
|
||||
|
||||
def update(self):
|
||||
if self.y + self.rows == globals.GRID_HEIGHT:
|
||||
return False
|
||||
self.y += 1
|
||||
self.location = (self.x, self.y)
|
||||
return True
|
||||
|
||||
def rotate_clockwise(self, shape):
|
||||
return [list(row)[::-1] for row in zip(*shape)]
|
||||
@@ -72,6 +73,7 @@ class Brick:
|
||||
new_x = x + col_idx
|
||||
new_y = y + row_idx
|
||||
if new_x <= 0 or new_x >= globals.GRID_WIDTH or new_y >= globals.GRID_HEIGHT:
|
||||
print(f"Collision X:{new_x}, Y:{new_y}")
|
||||
return True
|
||||
if new_y >= 0 and globals.dropgrid[new_y][new_x]:
|
||||
return True
|
||||
@@ -82,18 +84,20 @@ class Brick:
|
||||
print(f"State set to {self.state}")
|
||||
|
||||
def move_right(self):
|
||||
if self.collision(self.shape, self.x, self.y):
|
||||
return
|
||||
else:
|
||||
self.x += 1
|
||||
self.location = (self.x, self.y)
|
||||
print(f"X: {self.x}")
|
||||
if self.x != 0:
|
||||
if self.collision(self.shape, self.x, self.y):
|
||||
return
|
||||
self.x += 1
|
||||
self.location = (self.x, self.y)
|
||||
|
||||
def move_left(self):
|
||||
if self.collision(self.shape, self.x, self.y):
|
||||
return
|
||||
else:
|
||||
self.x -= 1
|
||||
self.location = (self.x, self.y)
|
||||
print(f"X: {self.x}")
|
||||
if self.x != globals.GRID_WIDTH:
|
||||
if self.collision(self.shape, self.x, self.y):
|
||||
return
|
||||
self.x -= 1
|
||||
self.location = (self.x, self.y)
|
||||
|
||||
def drop(self):
|
||||
print("Dropping")
|
||||
@@ -10,7 +10,7 @@ from dropzone import DropZone
|
||||
from dropnext import DropNext
|
||||
from hud import Hud
|
||||
|
||||
__version__ = "0.1.0"
|
||||
__version__ = "0.1.1"
|
||||
|
||||
# Constants
|
||||
HAT_REPEAT_DELAY = 0 # milliseconds before first repeat
|
||||
@@ -177,7 +177,9 @@ class Tetris:
|
||||
self.current.drop()
|
||||
|
||||
case self.fall_timer:
|
||||
self.current.update()
|
||||
if not self.current.update():
|
||||
self.current = self.next
|
||||
self.next = Brick(brick = randrange(0, len(BRICKS)))
|
||||
|
||||
# Handle hotplugging
|
||||
case pygame.JOYDEVICEADDED:
|
||||
|
||||
Reference in New Issue
Block a user