2007-12-05, 17:05
#1
If GetAsyncKeyState(17) Then
msgbox "Control key pressed"
End If
Dim Player1Up As Boolean
Dim Player1Down As Boolean
Dim Player1Speed As Decimal
Dim MaxSpeed As Decimal
Dim Acceleration As Decimal
MaxSpeed = 50 '' Maxspeed 50 units per timer-tick, tweaka efter behov.
Acceleration = 1.5 '' Acceleration = 1.5 units per timertick, tweaka...
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then
'' Spelare 1 trycker upp, spara det.
Player1Up = True
Else If KeyCode = vbKeyDown Then
'' Spelare 1 trycker ner, spara det.
Player1Down = True
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then
'' Spelare 1 slppte upp, spara det.
Player1Up = False
Else If KeyCode = vbKeyDown Then
'' Spelare 1 slppte ner, spara det.
Player1Down = False
End If
End Sub
Private Sub Timer1_Tick()
If Player1Up = True Then
'' Spelare 1 vill ka upp
Player1Speed = Player1Speed - Acceleration
Else If Player1Down = True Then
'' Spelare 1 vill ka ner
Player1Speed = Player1Speed + Acceleration
Else
'' Spelare 1 trycker varken upp eller ner, bromsa paddeln
Player1Speed = Player1Speed * 0.5
End If
Player1Speed = Clamp(Player1Speed, -MaxSpeed, MaxSpeed)
Player1PaddelPosition.Y = Player1PaddelPosition.Y + CInt(Player1Speed)
End Sub
'' Liten funktion fr att hlla ett vrde inom tv grnser.
Private Function Clamp(Val As Decimal, Min As Decimal, Max As Decimal) As Decimal
If Val < Min Then
Val = Min
Else If Val > Max
Val = Max
End
Return Val
End Function
Du måste vara medlem för att kunna kommentera
Flashback finansieras genom donationer frn vra medlemmar och beskare. Det r med hjlp av dig vi kan fortstta erbjuda en fri samhllsdebatt. Tack fr ditt std!
Swish: 123 536 99 96 Bankgiro: 211-4106