どの位置からでも呼び出せるgameover()関数というのを作成して利用しようと思います。これまではゲーム終了のタイミングが一箇所だったので必要ありませんでしたが、ともかく前置きはよしてコードを見て行きましょう。
def gameover():
game.run = False
pygame.time.delay(2000)
ちなみに他の部分は毎回一緒です。game.runはレコード型ですね、宣言わかりますか。
敵キャラが消えた瞬間にゲームを終了させたいので作って見ました。これまではwhile timer():とやってメイン関数のループから抜けていました。
変更のあったtimer()関数です。戻り値がなくなっています。
def timer():
temp = pygame.time.get_ticks()
if game.time+300 < temp:
game.time = temp
if cap.visible == True:
move(K_DOWN)
else:
cap.start()
if checkcap() == False:
gameover()
メイン関数を次のように書き換えれば、どの関数からgameover()を呼び出しても直感的に即座に終了させることができます。
def main():
start()
while game.run:
keydown()
draw()
timer()
0 件のコメント:
コメントを投稿