2017-12-23 8 views
1

私は現在サイドシューティングゲームを作成していますが、私は敵を上下に動かそうとしています。それは仕事のようなものですが、上に行くのではなくフォームの底に達すると、下にある場所でバウンスします。私はこれを解決する方法を知りません。上下に動くと画像が詰まる

Private Sub tmrEnemy_Tick(sender As Object, e As EventArgs) Handles tmrEnemy.Tick 
    If enemy.Top >= 445 Then 
     enemy.Top -= 5 
    Else 
     enemy.Top += 5 
    End If 
End Sub 
+0

私は間違ったものをタグ付けしたと思います。申し訳ありませんが、このサイトをどのように動作させるかわかりません。 – Spin

+0

さて、VBのそれはクラスのため、ゲームは、小さな簡単なもの、おかげで助けになるだろう。 – Spin

答えて

1

問題は、画像が底に到達したという事実を上または下に移動するかどうかの判断に基づいていることです。それが起こると、あなたは画像を上に移動し、次回はもはや下に来ないので、再び下に移動します。

単純な解決策は、変数を使用して画像の移動方向を追跡することです。画像が下に移動すると1になり、上に移動すると-1になります。このようなもの:

Dim Direction As Integer = 1; 

Private Sub tmrEnemy_Tick(sender As Object, e As EventArgs) Handles tmrEnemy.Tick 
    If enemy.Top >= 445 Then 'Reached the bottom, go up. 
     direction = -1 
    Else If enemy.Top <= 0 Then 'Reached the top, go down. 
     direction = 1 
    End If 

    enemy.Top += direction * 5 
End Sub 
+0

オハイオ州オハイオ州今私は理解している私は間違って何かをしていた私は確信していませんでした。これを修正していただきありがとうございます。 – Spin

関連する問題