Hai, ich programmiere ein kleines Spiel bei dem man eine PictureBox mit den Pfeiltasten steuert. Sie läuft nacht links und rechts und hüpfen kann sie auch (es ist also "Schwerkraft" vorhanden).
Mein Problem ist jetzt, dass sie zwar hüpft, aber nur nach oben, d.h. sie kann nicht nach links oder rechts hüpfen, außer wenn man immer und immer wieder während des Sprungs die jeweilige Pfeiltaste drückt. Das nervt.
Außerdem soll man während des Sprungs nicht noch einmal springen können, erst wenn sie wieder "auf dem Boden" ist.
Um zu springen habe ich 2 timer verwendet, einen um hoch zu kommen und einen damit die pb auch wieder auf den Boden kommt.
Hier der Code, die PictureBox die sich bewegen soll heißt pb_norbert
Danke.
Mein Problem ist jetzt, dass sie zwar hüpft, aber nur nach oben, d.h. sie kann nicht nach links oder rechts hüpfen, außer wenn man immer und immer wieder während des Sprungs die jeweilige Pfeiltaste drückt. Das nervt.
Außerdem soll man während des Sprungs nicht noch einmal springen können, erst wenn sie wieder "auf dem Boden" ist.
Um zu springen habe ich 2 timer verwendet, einen um hoch zu kommen und einen damit die pb auch wieder auf den Boden kommt.
Hier der Code, die PictureBox die sich bewegen soll heißt pb_norbert
VB.NET-Quellcode
- Public Class Form1
- Dim timercount_up As Integer
- Dim timercount_down As Integer
- Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
- If e.KeyCode = Keys.Left Then
- pb_norbert.Left = pb_norbert.Left - 3
- End If
- If e.KeyCode = Keys.Right Then
- pb_norbert.Left = pb_norbert.Left + 3
- End If
- If e.KeyCode = Keys.Up Then
- pb_norbert.Top = pb_norbert.Top - 3
- timer_up.Enabled = True
- End If
- End Sub
- Private Sub timer_up_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer_up.Tick
- pb_norbert.Top = pb_norbert.Top - 3
- If timercount_up = 20 Then timercount_up = 0 : timer_up.Enabled = False : timer_down.Enabled = True
- timercount_up += 1
- End Sub
- Private Sub timer_down_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer_down.Tick
- pb_norbert.Top = pb_norbert.Top + 3
- If timercount_down = 21 Then timercount_down = 0 : timer_down.Enabled = False
- timercount_down += 1
- End Sub
- End Class
Danke.