2016-05-11 3 views
-1

У меня есть задание для школы, где у меня анимированный персонаж. Я должен уметь заставить его прыгнуть и вернуться к месту, где он начал прыжок после нажатия кнопки. У меня есть таймер, который переключает изображения для анимации символа. Есть также кнопки для ускорения, замедления, запуска и остановки персонажа. У меня проблемы, потому что я думаю, что мне нужно интегрировать таймер в нажатие кнопки, и я не слишком уверен, как к этому. В нижней части кода есть место, где находится кнопка перехода. Я могу заставить его подняться, но не могу понять, как заставить его вернуться.Как сделать скачок PictureBox в Visual Basic?

Вот мой код до сих пор:

Private Sub tmrSpeed_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrSpeed.Tick 

    Static Dim intCounter As Integer 

    picRunner.Location = New Point(picRunner.Location.X + 15, picRunner.Location.Y) 

    If picRunner.Location.X >= 523 Then 
     picRunner.Location = New Point(-25, picRunner.Location.Y) 
    End If 

    Select Case intCounter 
     Case 0 
      Me.picRunner.Image = My.Resources.r0 
     Case 1 
      Me.picRunner.Image = My.Resources.r1 
     Case 2 
      Me.picRunner.Image = My.Resources.r2 
     Case 3 
      Me.picRunner.Image = My.Resources.r3 
     Case 4 
      Me.picRunner.Image = My.Resources.r4 
     Case 5 
      Me.picRunner.Image = My.Resources.r5 
     Case 6 
      Me.picRunner.Image = My.Resources.r6 
     Case 7 
      Me.picRunner.Image = My.Resources.r7 
     Case 8 
      Me.picRunner.Image = My.Resources.r8 
     Case 9 
      Me.picRunner.Image = My.Resources.r9 
    End Select 

    intCounter += 1 

    If intCounter >= 10 Then 
     intCounter = 0 
    End If 


    End If 

End Sub 

Private Sub btnFaster_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFaster.Click 

    Try 
     Me.tmrSpeed.Interval = Me.tmrSpeed.Interval - 10 
    Catch x As Exception 
     MessageBox.Show("He can't run any faster!") 
    End Try 

End Sub 

Private Sub btnSlower_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSlower.Click 

    Me.tmrSpeed.Interval = Me.tmrSpeed.Interval + 10 

End Sub 

Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click 

    Me.tmrSpeed.Stop() 

End Sub 

Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click 

    Me.tmrSpeed.Start() 

End Sub 

Private Sub btnJump_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnJump.Click 


End Sub 
End Class 

Как бы я идти о реализации скачки? Мой учитель говорит, что мне нужно использовать петлю, очевидно, чтобы проверить, когда изображение достигнет определенного горячего, но я не могу понять, как использовать это с таймером. Любая помощь будет оценена по достоинству.

ответ

0

Установите цикл, который вычисляет силу.

также составляют переменную для скорости распада для этой силы.

Накладывают силу, вычитая ее из текущего положения y и после этого применяя силу, вычитайте из нее скорость распада, чтобы уменьшить силу, так что в следующий раз, когда цикл произойдет, сила будет меньше, и она начнет замедляться вниз.

также имеют глобальную переменную, называемую гравитацией, чтобы создать постоянное натяжение объекта вниз, поэтому, когда усилие вверх уменьшится, оно вернется вниз.

Остальное вы должны выяснить, если это назначение, для вас очень важно разработать логику, чтобы делать то, что я описал, без того, чтобы кто-то дал вам ответ. Это даст вам лучшее представление о коде.

Смежные вопросы