2013年3月21日木曜日

gameover() 関数の作成

 どの位置からでも呼び出せる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 件のコメント:

コメントを投稿