Hallo, ich mag ein kleines Achtung die Kurve Spiel Programmieren - nur zur Übung.
Mein Problem ist, dass die Keyboard detection irgendwie verzögert abläuft.
Oder anders gesagt: wenn ich lenke passiert es erst eine halbe Sekunde (etwa) später.
Hat wer eine Idee an was das liegen könnte?
Hier ist der Quellcode: (es gibt nur eine picturebox und ein label auf der Form1)
Mein Problem ist, dass die Keyboard detection irgendwie verzögert abläuft.
Oder anders gesagt: wenn ich lenke passiert es erst eine halbe Sekunde (etwa) später.
Hat wer eine Idee an was das liegen könnte?
Hier ist der Quellcode: (es gibt nur eine picturebox und ein label auf der Form1)
Quellcode
- Public Class Form1
- Dim g As Graphics
- Dim x, y, dir, speed As Double
- Dim moved As Boolean
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- moved = False
- If (dir > 360) Then dir -= 360
- If (dir < 0) Then dir += 360
- x += speed * Math.Sin(dir)
- y += speed * Math.Cos(dir)
- lblStats.Text = "x: " + Convert.ToInt16(x).ToString + vbCrLf +
- "y: " + Convert.ToInt16(y).ToString + vbCrLf +
- "dir: " + Convert.ToInt16(dir).ToString + vbCrLf +
- "Ticks: " + Timer1.Interval.ToString
- g.FillPie(Brushes.Aqua, Convert.ToInt16(x) - 4, Convert.ToInt16(y) - 4, 8, 8, 0, 360)
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- g = picbox.CreateGraphics()
- Randomize()
- lblStats.Text = "x: " + vbCrLf + "y: " + vbCrLf + "dir: " + vbCrLf + "Ticks: "
- End Sub
- Private Sub Player_Move(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
- Select Case e.KeyCode
- Case Keys.Left
- If (moved = False) Then
- dir += speed * 0.055
- moved = True
- End If
- Case Keys.Right
- If (moved = False) Then
- dir -= speed * 0.055
- moved = True
- End If
- Case Keys.P
- Timer1.Enabled = Not Timer1.Enabled
- Case Keys.Enter
- x = 170
- y = 170
- moved = False
- speed = 1.2
- dir = Rnd() * 360
- Timer1.Enabled = True
- picbox.Refresh()
- g.FillPie(Brushes.Aqua, Convert.ToInt16(x) - 4, Convert.ToInt16(y) - 4, 8, 8, 0, 360)
- Case Keys.Escape
- Close()
- End Select
- End Sub
- End Class