fix prelock alpha on hold

This commit is contained in:
adrienmalin 2019-10-01 22:10:20 +02:00
parent f2bbafeb8b
commit 4c44089f41

View File

@ -96,18 +96,20 @@ class TetrominoSprites(MinoesSprites):
def __init__(self, tetromino, window, alpha=NORMAL_ALPHA): def __init__(self, tetromino, window, alpha=NORMAL_ALPHA):
super().__init__() super().__init__()
self.tetromino = tetromino self.tetromino = tetromino
self.alpha = alpha
for mino in tetromino: for mino in tetromino:
mino.sprite = MinoSprite(mino, window, alpha) mino.sprite = MinoSprite(mino, window, alpha)
self.append(mino.sprite) self.append(mino.sprite)
def refresh(self): def refresh(self):
if self.tetromino.prelocked:
alpha = PRELOCKED_ALPHA
else:
alpha = self.alpha
for mino in self.tetromino: for mino in self.tetromino:
coord = mino.coord + self.tetromino.coord coord = mino.coord + self.tetromino.coord
mino.sprite.set_position(coord.x, coord.y) mino.sprite.set_position(coord.x, coord.y)
mino.sprite.alpha = alpha
def set_alpha(self, alpha):
for sprite in self:
sprite.alpha = alpha
class MatrixSprites(MinoesSprites): class MatrixSprites(MinoesSprites):
@ -254,18 +256,9 @@ AGAIN""".format(
def move(self, movement, prelock=True): def move(self, movement, prelock=True):
moved = super().move(movement, prelock) moved = super().move(movement, prelock)
if self.current.prelocked: self.current.sprites.refresh()
alpha = PRELOCKED_ALPHA
else:
alpha = NORMAL_ALPHA
self.current.sprites.set_alpha(alpha)
if moved: if moved:
size = MINO_SIZE * self.scale self.ghost.sprites.refresh()
change_x = movement.x * size
change_y = movement.y * size
self.current.sprites.move(change_x, change_y)
if movement in (tetrislogic.Movement.LEFT, tetrislogic.Movement.RIGHT):
self.ghost.sprites.refresh()
return moved return moved
def rotate(self, rotation): def rotate(self, rotation):
@ -283,8 +276,8 @@ AGAIN""".format(
tetromino.sprites.refresh() tetromino.sprites.refresh()
def lock(self): def lock(self):
self.current.prelocked = False
self.current.sprites.refresh() self.current.sprites.refresh()
self.current.sprites.set_alpha(NORMAL_ALPHA)
super().lock() super().lock()
def on_key_press(self, key, modifiers): def on_key_press(self, key, modifiers):