最初にHOLD 機能を使った場合、次の timerEvent で self.nextMove に値がまだ入っているため、GetNextMove が呼び出されず、次のターンも HOLD ON となるため、今あるテトリミノではなく、次のテトリミノが HOLD に入って、今あるテトリミノが消滅するような動作になっている
Closed this issue · 1 comments
seigot commented
最初にHOLD 機能を使った場合、次の timerEvent で self.nextMove に値がまだ入っているため、GetNextMove が呼び出されず、次のターンも HOLD ON となるため、今あるテトリミノではなく、次のテトリミノが HOLD に入って、今あるテトリミノが消滅するような動作になっているようです。
画面上: I / Next: L Z S O / HOLD: なし
↓ HOLD 使用
画面上: L / Next: Z S O Z / HOLD: I
↓ GetNextMove が呼ばれることなく下記へ。L が HOLD に入り、I が消える
画面上: Z / Next: S O Z 」/ HOLD: L
下記に、self.nextMove = None とすべきかと思うのですがどうでしょうか。
seigot commented
> diff --git a/game_manager/game_manager.py b/game_manager/game_manager.py
> index 07e91cf..bd5d090 100644
> --- a/game_manager/game_manager.py
> +++ b/game_manager/game_manager.py
> @@ -370,6 +370,8 @@ class Game_Manager(QMainWindow):
> if isExchangeHoldShape == False:
> # if isExchangeHoldShape is False, this means no holdshape exists.
> # so it needs to return immediately to use new shape.
> + # init nextMove
> + self.nextMove = None
> return
>
> k = 0