Vb.net 在VisualBasic中,有没有一种方法可以使角色在向另一个方向移动的过程中不停地移动?

Vb.net 在VisualBasic中,有没有一种方法可以使角色在向另一个方向移动的过程中不停地移动?,vb.net,Vb.net,我在vb中有这个游戏,我正在使用这个代码 Private Sub Form_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown Select Case e.KeyCode Case Keys.Left Player.Left -= 10 Case Keys.Right Player.

我在vb中有这个游戏,我正在使用这个代码

Private Sub Form_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    Select Case e.KeyCode 
       Case Keys.Left 
       Player.Left -= 10 
       Case Keys.Right 
       Player.Left += 10 
       Case Keys.Down 
       Player.Top += 10 
       Case Keys.Up 
       Player.Top -= 10 
       Case Keys.Escape 
       End 
    End Select 
End Sub 
这段代码的问题是,当我让角色向不同的方向移动时,角色会停止一秒钟,然后向那个方向移动,所以我想知道是否有更好的方法来实现这一点,顺便说一下,我的老师不允许我使用Direct X或其他任何东西,只允许使用Visual basic
感谢所有基本上能帮助我的人,我希望你能用上这个

需要:已启动的计时器(计时器1)和按键事件

这将在您按下方向键后立即开始移动木偶,并在每个计时器滴答声时发生变化(因此相对流动)


该代码似乎不是问题,问题可能在于绘制显示和更新显示的代码。您可以只编程水平移动和垂直移动,并在更改计时器时更改播放器位置。当按键时,然后,您可以更改移动属性。此代码仅在窗体具有
focus
时有效。您可能希望对移动使用加速度,而不是强制值-这样您将失去此移动样式将产生的一些“急动”。感谢您的建议,但这里的问题是角色一直在移动和移动我不希望发生这种情况,我希望它在我放开键时停止。然后,添加一个KeyUp事件,将movement.X和movement.Y设置为0?
Dim movement As New Point(0, 0)

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    Select Case e.KeyCode
        Case Keys.Left
            movement.X = -10
            movement.Y = 0
        Case Keys.Right
            movement.X = 10
            movement.Y = 0
        Case Keys.Up
            movement.X = 0
            movement.Y = -10
        Case Keys.Down
            movement.X = 0
            movement.Y = 10
    End Select
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    lblPlayer.Left += movement.X
    lblPlayer.Top += movement.Y
End Sub