私は do while ループを使用しており、ループごとにユーザーに次に何をしたいかを尋ねる必要があります。プログラムは、ポケモンを戦わせる以外は、自分でモンスターと戦う、ポケモン スタイルのバトル RPG です。
私が探しているのは、ポケモン/ファイナル ファンタジーの戦闘スタイルです。
これは戦闘を処理する私のサブです:
Private Sub Battle(ByVal Name As String, ByVal life As Integer, ByVal damage As Integer)
lbl_MonsterName.Text = Name
mobCurrHealth = mobMaxHealth
lbl_MonsterHP.Text = mobCurrHealth & " / " & mobMaxHealth
bar_monsterHP.Value = mobCurrHealth
bar_monsterHP.Maximum = mobMaxHealth
txtbx_Action.AppendText(Environment.NewLine & "You find a " & Name)
lbl_MonsterName.Visible = True
lbl_MonsterHP.Visible = True
bar_monsterHP.Visible = True
wait(2000)
txtbx_Action.AppendText(Environment.NewLine & "What would you like to do?")
btn_Attack.Visible = True
btn_Run.Visible = True
'Here I want the program to wait for button input, but i still have to find a way to do that
End Sub
「何をしたいですか」という行の後に、2 つの (3) ボタンが表示されます。
- 攻撃
- 走る
- (在庫)
ただし、ご覧のとおり (何が問題なのかは理解していますが、修正方法がわかりません)、ボタンが表示された後、サブバトルが終了します。
これらのボタンのいずれかが押されるまで潜水艦を待機させ、それに応じて動作させたい.
これどうやってするの?
編集:
これは私が使用するコードで、サブ「バトル」が呼び出されます。
Private Sub btn_Adventure_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Adventure.Click
btn_Adventure.Visible = False
txtbx_Action.Visible = True
Dim rng As New Random
Dim MobGen As Integer = rng.Next(1, 4)
Select Case MobGen
Case 1
mobName = "Rat"
mobMaxHealth = 5
mobDamage = 2
Case 2
mobName = "Bat"
mobMaxHealth = 7
mobDamage = 3
Case 3
mobName = "Snake"
mobMaxHealth = 9
mobDamage = 4
Case 4
mobName = "Wolf"
mobMaxHealth = 11
mobDamage = 5
End Select
txtbx_Action.AppendText(Environment.NewLine & "You run around the forest trying to find something to kill")
wait(1500)
Battle(mobName, mobMaxHealth, mobDamage)
btn_Adventure.Visible = True
End Sub
また、現在のプログラムの扱い方が非常に間違っていると思われる場合は、改善方法を教えてください。これは、vb.net 言語をもう少しよく学ぼうとする趣味のプロジェクトなので、アドバイスや建設的な批判は大歓迎です。