Stoppuhr sobald Pfeiltaste gedrückt wurden ist!

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    Stoppuhr sobald Pfeiltaste gedrückt wurden ist!

    Hallo Liebe Vb-comm!
    Ich habe ein Spiel gebastelt, und das Spielt startet sobald ich eine der 4 Pfeiltasten drücke, daraufhin setzt sich ein 10x10 Panel in bewegung und man muss diesen Panel durch eine Bahn fahren die mit Abzweigungen verknüpft ist, heißt nichts anderes als ein Renn spiel bloß in langsam und billig aufgebaut. Nun möchte ich aber Zeit messen damit man Unterschiede ermitteln kann zwischen den Usern. Die Stoppuhr soll anfang Zeit zu nehmen sobald eine der Pfeiltasten berührt worden ist und sobald er ins Ziel fährt (Label mit Aufschrift: Finish). Ich hoffe jemand kann mit weiter helfen. :)

    Dickes danke im Vorraus!
    Grüße


    VB.NET-Quellcode

    1. Public Class Form1
    2. Enum Direction
    3. Up = 0
    4. Down = 1
    5. Left = 2
    6. Right = 3
    7. End Enum
    8. Dim Pressed As Integer = 0
    9. Dim defMov As Integer = 5
    10. Dim Site As Integer = 0
    11. Private Shadows Sub Move(ByVal Richtung As Direction, ByRef Player As Object)
    12. Dim newTop, newLeft As Integer
    13. Dim collision As Boolean = False
    14. Select Case Richtung
    15. Case Direction.Up
    16. Player.Top -= defMov
    17. newLeft = Player.Left
    18. 'unwichtige Daten für euch - hier ist nur meine gesamte Kollisionsverhinderung geht darunter weiter
    19. Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
    20. Select Case e.KeyData
    21. Case Keys.Up
    22. Pressed = 0
    23. Case Keys.Down
    24. Pressed = 0
    25. Case Keys.Left
    26. Pressed = 0
    27. Case Keys.Right
    28. Pressed = 0
    29. End Select
    30. End Sub
    31. Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    32. Select Case e.KeyData
    33. Case Keys.Up
    34. Move(Direction.Up, Spieler)
    35. Site = 1
    36. Pressed = 1
    37. Case Keys.Down
    38. Move(Direction.Down, Spieler)
    39. Site = 2
    40. Pressed = 1
    41. Case Keys.Left
    42. Move(Direction.Left, Spieler)
    43. Site = 3
    44. Pressed = 1
    45. Case Keys.Right
    46. Move(Direction.Right, Spieler)
    47. Site = 4
    48. Pressed = 1
    49. End Select
    50. End Sub
    51. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    52. Me.KeyPreview = True
    53. Timer1.Start()
    54. End Sub
    55. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    56. If Pressed = 1 Then
    57. defMov = 10
    58. Else
    59. defMov = 5
    60. If Site = 1 Then
    61. Move(Direction.Up, Spieler)
    62. ElseIf Site = 2 Then
    63. Move(Direction.Down, Spieler)
    64. ElseIf Site = 3 Then
    65. Move(Direction.Left, Spieler)
    66. ElseIf Site = 4 Then
    67. Move(Direction.Right, Spieler)
    68. End If
    69. End If
    70. End Sub
    71. End Class
    Also du musst drei Label erstellen

    1 für die zehntelsekunden, 1 für die sekunden und 1 für die minuten



    3 Timer für je Label

    Timer für die Zehntelsekunden: intervalle: 100

    timer für sekunden: interv.: 1000

    timer für minuten: interv.: 60000

    Code

    Select Case

    Case Keys.Up

    Timer1.Enabled = true

    Timer2.Enabled = True

    Timer3.Enabled = True

    timer 1 Event:

    Label1.text += 1

    timer 2 Event:

    Label2.text += 1

    Timer3 event

    label3.text += 1



    Alle Label texte müssen 0 sein!!
    @europe1995:
    Für eine Stoppuhr gibt es die Stopwatch-Klasse. Diese gibt dir die Zeit zwischen Start und Stop aus. Ich gehe davon aus, dass du die Klasse für deine Bedürfnisse verwenden kannst.

    VB.NET-Quellcode

    1. Public s As New Stopwatch
    2. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    3. If s.IsRunning Then
    4. 'Wenn die Uhr läuft, dann Stopp
    5. s.Stop()
    6. MessageBox.Show(s.Elapsed.ToString())
    7. Else
    8. 'wenn die Uhr nicht läuft, dann starten
    9. s.Start()
    10. End If
    11. End Sub


    @klonerk: 3 Timer: Nee, oder? Das ist wie: Für jeden Kunden beim McDonalds ein eigener Mitarbeiter. Geht auch, nur wird's voll mit der Zeit. Wenn du bei deiner Methode bleibst: 1 Timer reicht hier immer!