I mitt spel kör jag en gameloop som känner av knappnedtryckningar samt ritar upp en sprite som man styr med piltangenterna.Varför funkar inte BitBlt?
Problemet är bara att när jag kör BitBlt från gameloopen så målas den inte upp. Om jag däremot testar att skriva in det typ när formen laddas eller nån annanstans då funkar det bra. Så varför målar den inte upp spriten i denna loop:
___________________________________________________________________
Private Sub RunGameLoop()
Const TickDifference As Long = 1
Dim LastTick As Long
Dim CurrentTick As Long
'Show the form
Me.Show
Do
CurrentTick = GetTickCount()
If CurrentTick - LastTick > TickDifference Then
' Do the game drawing and calculation here
If (GetKeyState(vbKeyRight) And KEY_DOWN) Then
gubbex = gubbex + 1
' Rita masken
BitBlt Back.hDC, gubbex, gubbey, Mask.ScaleWidth, Mask.ScaleHeight, Mask.hDC, 0, 0, vbSrcAnd
' Rita spriten
BitBlt Back.hDC, gubbex, gubbey, Sprite.ScaleWidth, Sprite.ScaleHeight, Sprite.hDC, 0, _
0, vbSrcPaint
End If
If (GetKeyState(vbKeyLeft) And KEY_DOWN) Then
gubbex = gubbex - 1
End If
If (GetKeyState(vbKeyUp) And KEY_DOWN) Then
gubbey = gubbey - 1
End If
If (GetKeyState(vbKeyDown) And KEY_DOWN) Then
gubbey = gubbey + 1
End If
' Update the frame variable
LastTick = GetTickCount()
Else
' It is not time yet, do something else here
End If
DoEvents
Loop
End Sub
-------------------------------------------------------------------------------
Vore glad om någon orkar slå ett öga på det :-)