Fix false lock display, improve refresh
This commit is contained in:
parent
575472af8b
commit
b51ba2cc4e
@ -79,11 +79,7 @@ class Scheduler(sched.scheduler, dict):
|
|||||||
|
|
||||||
def cancel(self, name):
|
def cancel(self, name):
|
||||||
if name in self:
|
if name in self:
|
||||||
try:
|
sched.scheduler.cancel(self, self.pop(name))
|
||||||
sched.scheduler.cancel(self, self.pop(name))
|
|
||||||
except:
|
|
||||||
sys.exit(name)
|
|
||||||
|
|
||||||
|
|
||||||
scheduler = Scheduler()
|
scheduler = Scheduler()
|
||||||
|
|
||||||
@ -134,9 +130,11 @@ class Tetromino:
|
|||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def move(self, movement, lock=True):
|
def move(self, movement, lock=True, refresh=True):
|
||||||
if self.move_rotate(movement, self.minoes_positions):
|
if self.move_rotate(movement, self.minoes_positions):
|
||||||
self.rotated_last = False
|
self.rotated_last = False
|
||||||
|
if refresh:
|
||||||
|
self.matrix.refresh()
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
if (
|
if (
|
||||||
@ -145,6 +143,7 @@ class Tetromino:
|
|||||||
and "lock" not in scheduler
|
and "lock" not in scheduler
|
||||||
):
|
):
|
||||||
scheduler.single_shot("lock", self.lock_delay, self.matrix.lock)
|
scheduler.single_shot("lock", self.lock_delay, self.matrix.lock)
|
||||||
|
self.matrix.refresh()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def rotate(self, direction):
|
def rotate(self, direction):
|
||||||
@ -159,6 +158,7 @@ class Tetromino:
|
|||||||
self.rotated_last = False
|
self.rotated_last = False
|
||||||
if rotation_point == 5:
|
if rotation_point == 5:
|
||||||
self.rotation_point_5_used = True
|
self.rotation_point_5_used = True
|
||||||
|
self.matrix.refresh()
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
@ -169,14 +169,14 @@ class Tetromino:
|
|||||||
|
|
||||||
def hard_drop(self):
|
def hard_drop(self):
|
||||||
lines = 0
|
lines = 0
|
||||||
while self.move(Movement.DOWN, lock=False):
|
while self.move(Movement.DOWN, lock=False, refresh=False):
|
||||||
lines += 2
|
lines += 2
|
||||||
|
self.matrix.refresh()
|
||||||
self.matrix.game.stats.piece_dropped(lines)
|
self.matrix.game.stats.piece_dropped(lines)
|
||||||
self.matrix.lock()
|
self.matrix.lock()
|
||||||
|
|
||||||
def fall(self):
|
def fall(self):
|
||||||
if self.move(Movement.DOWN):
|
self.move(Movement.DOWN)
|
||||||
self.matrix.refresh()
|
|
||||||
|
|
||||||
def t_spin(self):
|
def t_spin(self):
|
||||||
return ""
|
return ""
|
||||||
@ -317,7 +317,6 @@ class Matrix(Window):
|
|||||||
def lock(self):
|
def lock(self):
|
||||||
if not self.piece.move(Movement.DOWN):
|
if not self.piece.move(Movement.DOWN):
|
||||||
scheduler.cancel("fall")
|
scheduler.cancel("fall")
|
||||||
scheduler.cancel("lock")
|
|
||||||
|
|
||||||
t_spin = self.piece.t_spin()
|
t_spin = self.piece.t_spin()
|
||||||
|
|
||||||
@ -651,6 +650,7 @@ class Game:
|
|||||||
return self.random_bag.pop()(self.matrix, Next.PIECE_POSITION)
|
return self.random_bag.pop()(self.matrix, Next.PIECE_POSITION)
|
||||||
|
|
||||||
def new_piece(self):
|
def new_piece(self):
|
||||||
|
scheduler.cancel("lock")
|
||||||
if not self.matrix.piece:
|
if not self.matrix.piece:
|
||||||
self.matrix.piece, self.next.piece = self.next.piece, self.random_piece()
|
self.matrix.piece, self.next.piece = self.next.piece, self.random_piece()
|
||||||
self.next.refresh()
|
self.next.refresh()
|
||||||
@ -668,7 +668,6 @@ class Game:
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
action()
|
action()
|
||||||
self.matrix.refresh()
|
|
||||||
|
|
||||||
def pause(self):
|
def pause(self):
|
||||||
self.stats.time = time.time() - self.stats.time
|
self.stats.time = time.time() - self.stats.time
|
||||||
|
Loading…
x
Reference in New Issue
Block a user