見出し画像

Lesson5 ステージ1をつくろう

割引あり

前回までにmain.pyを中心につくってきました。
今回からはstage1.pyをつくっていきます。

前回少しご紹介したstage1.pyを開いてください。


そしてそこに書かれているものを

全て消去してください。


消しましたか?
空いたスペースに下記のプログラムをすべてコピペしてください。

#### stage1.py ####

############################################################################################
#### ライブラリの読み込み ####
import pygame
import sys


############################################################################################
#### メインプログラム ####
def main(hp,mp,idx):

    ########################################################################################
    #### 初期設定 ####
    pygame.init()
    pygame.display.set_caption("stage1")
    width = 960
    height = 720
    screen = pygame.display.set_mode((width,height))
    clock = pygame.time.Clock()
    font = pygame.font.Font(None, 36)

    selected_button = 1
    player_turn = False
    damage_base = 1
    frame_count = 0
    fire = False
   
    ########################################################################################
    #### プレイヤーのスプライト ####

   
    ########################################################################################
    #### コマンドボタンのスプライト ####

 
    #######################################################################################
    #### 壁のスプライト ####
    # 壁ごとのパラメータ設定


    ########################################################################################
    #### ザコ敵のスプライト ####

    
    ########################################################################################
    #### ザコ敵のクローンスプライト ####

    
    ########################################################################################
    #### 同じ敵を複数作る場合 ####
    #### エネミーのスプライト ####


    ########################################################################################
    #### ボスキャラのスプライト ####


    ########################################################################################
    #### 弾丸のスプライト ####


    ########################################################################################
    #### ゲームループ ####
    while True:



        #### キー操作設定 ####
        # 単押し
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

            if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
                #fire = True
                return hp,mp,idx

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_F1:
                    screen = pygame.display.set_mode((width,height),pygame.FULLSCREEN)
                if event.key == pygame.K_F2 or event.key ==pygame.K_ESCAPE:
                    screen = pygame.display.set_mode((width,height))
                if event.key == pygame.K_RETURN:
                    idx = 2
                    return hp,mp,idx
                if event.key == pygame.K_SPACE:
                    if player_turn:
                        player_turn = False
                    else:
                        player_turn = True


        ## 画面表示 ##
        hp_text = font.render(f"HP: {int(hp)}", True, (255, 255, 255))
        screen.blit(hp_text, (860, 675))
        
        ## ゲームオーバー ##
        if hp <= 0:
            pygame.display.update()
            pygame.time.delay(1500)
            idx = 10
            return hp, mp, idx

        pygame.display.update()
        if player_turn == False:
            frame_count += 1
        clock.tick(30)

    ########################################################################################


############################################################################################
#### メインプログラムを呼び出す ####
if __name__ == '__main__':
    hp = 100
    mp = 100
    idx = 1
    main(hp,mp,idx)

############################################################################################

コピペができたら保存してください。


次にmain.pyを開いてください。
以下の場所のコメントアウトを外してください。


    elif idx == 1:
        if hp > 0:
        # ステージごとの処理と描画
            if current_stage == 1:
                hp,mp,idx = stage1(hp,mp,idx)
                #change_stage()                      # この行の先頭にある「#」を消す
            elif current_stage == 2
                hp,mp,idx = stage2(hp,mp,idx)
                #change_stage()
            elif current_stage == 3:
                hp,mp,idx = stage3(hp,mp,idx)
                #change_stage()

これ ↑ をこう ↓ !

    elif idx == 1:
        if hp > 0:
        # ステージごとの処理と描画
            if current_stage == 1:
                hp,mp,idx = stage1(hp,mp,idx)
                change_stage()                      # こうなります
            elif current_stage == 2
                hp,mp,idx = stage2(hp,mp,idx)
                #change_stage()
            elif current_stage == 3:
                hp,mp,idx = stage3(hp,mp,idx)
                #change_stage()

修正ができたら保存して、下記をターミナルで実行してください。

>python main.py

実行結果: いつもの黒画面の右下にHPとMPが表示された!

HPとMPが表示されるようになりましたね!大成功です!


え… stage1.py にあんなにコードを書き加えたのに、変化はこれだけ?

はい、今回はそう感じてしまうかもしれませんね。目に見える変化はこれだけですが、大きく変わっています。本当に色々な設定などが加わっているのです。次のLesson6以降にその真価が発揮されるタイプの書き込みばかりなので今回の変化はこれだけです。


一番大きな書き込みとしては、今後さらに書き込まれるだろう範囲を先にエリア分けしたことです。

    ########################################################################################
    #### プレイヤーのスプライト ####

   
    ########################################################################################
    #### コマンドボタンのスプライト ####

 
    #######################################################################################
    #### 壁のスプライト ####
    # 壁ごとのパラメータ設定


    ########################################################################################
    #### ザコ敵のスプライト ####

    
    ########################################################################################
    #### ザコ敵のクローンスプライト ####

    
    ########################################################################################
    #### 同じ敵を複数作る場合 ####
    #### エネミーのスプライト ####


    ########################################################################################
    #### ボスキャラのスプライト ####


    ########################################################################################
    #### 弾丸のスプライト ####


    ########################################################################################
   

こういうのね。でもこの辺は動作には影響がありません。次回以降にここがどんどん充実していきますのでお楽しみに★

はて、では他に一体何を書き込んだのか?

詳しく説明していきましょう。

ここから先は

10,970字

この記事が気に入ったらサポートをしてみませんか?