我目前正在创建一个侧面射击游戏,我试图让敌人上上下下。它有点工作,但是当它到达表单的底部而不是向上时,它只是在底部的地方反弹。我不知道怎么解决这个问题。
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发布于 2017-12-23 22:38:39
问题是,你是根据图片已经到达底部这一事实来决定是向上还是向下。因此,当这种情况发生时,你将图片向上移动,下一次它不再位于底部,因此它将再次向下移动。
一种简单的解决方案是使用变量来跟踪图片移动的方向。当图片向下移动时,它可以是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 Subhttps://stackoverflow.com/questions/47953239
复制相似问题