見出し画像

Lesson20 アイテムを使おう!

割引あり

こんにちは。

今回は、前回追加したアイテム一覧を「使える」ようにします。

アイテムごとに効果を実装します。HPの回復やMPの回復ができるようにつくっていきましょう。

またアイテムを使用したら残りのアイテム数を減らすようにしていきます。

それではコードをコピペしていきましょう。


stage1.py

#### stage1.py ####

############################################################################################
#### ライブラリの読み込み ####

############################################################################################
#### メインプログラム ####
def main(hp,mp,idx,weapons,itemBag,special):                # 追加済み

    ########################################################################################
    #### コマンドメニュー ####

    ## 省略 ##

    ########################################################################################
    #### アイテム使用関数 ####
    def use_item(hp,mp,item_name,damage):
        if item_name in itemBag:
            itemBag[item_name] -= 1
            print(f"残りの {item_name} の数: {itemBag[item_name]}") 
            if item_name == "Onigiri":
                hp += 10
            elif item_name == "Ocha":
                mp += 10
            elif item_name == "Teishoku":
                hp += 10
                mp += 10
            elif item_name == "Ra-men":
                damage = 2.0
            elif item_name == "Beer":
                mp -= 20
                hp += 20
                damage = 3.0
            elif item_name == "Coke":
                mp += 5
        else:
            print(f"{item_name} はitemBagに見つかりませんでした。")
        return hp,mp,selected_item_name,damage

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

        #### キー操作設定 ####
        # 単押し
        for event in pygame.event.get():
            
            ## 省略 ##

            if event.type == pygame.KEYDOWN:
                
                ## 省略 ##

                if event.key == pygame.K_SPACE:
                    if player_turn:
                        if command_mode == False:                                     # 追加済み
                            
                            ## 省略 ##

                        else:
                          if selected_item_name == "back":                            # 追加済み
                                selected_item = 1                                       # 追加済み
                                command_mode = False                                    # 追加済み

                            else:
                                if selected_button == 1:                                # 追加済み
                                    print("selected_button = 1 , selected_item_name = ",selected_item_name)
                                elif selected_button == 2:                              # 追加済み
                                    print("selected_button = 2 , selected_item_name = ",selected_item_name) 
                                    hp,mp,selected_item_name,damage = use_item(hp,mp,selected_item_name,damage)
                                    selected_item = 1
                                elif selected_button == 3:                              # 追加済み
                                    print("selected_button = 3 , selected_item_name = ",selected_item_name)                                    
                                command_mode = False                                    # 追加済み
                                player_turn = False                                     # 追加済み
                    else:
                        player_turn = True                                              # 追加済み

貼り付けられたら下記を実行してください。

>python main.py


実行結果1: 画面下部のHP・MPに注目しながら進めてください
実行結果2: 「Onigiri」でスペースキーを押すと
実行結果3: HPが増えます。体力回復アイテムです
実行結果4: 「Ocha」を使えば
実行結果5: MPが回復します
実行結果6: 「Teishoku」を使うと
実行結果7: HP・MP両方回復します
実行結果8: さらに「Teishokuu」を使って、残数を0にすると
実行結果9: アイテムバッグ内から「Teishoku」が無くなります

できましたか?
アイテムを使用するたびにHPMPが変動しています。
他にも敵へのダメージを増加させたりもできます。

アイテム名などはかなり思い付きで書いたので、アイテム名やその効果を自分で考えて実装してもOKです。

Lesson19main.py などでアイテムバッグの中身をつくりこんだのでそこと併せて編集してみてくださいね★


それでは細かい解説に移ります。

ここから先は

6,872字

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