Miten saan Hemmon menemään eteenpäin, eli siihen suuntaan mihin se katsoo?
Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Dim kulma As Integer
Dim HemmoX As Integer, HemmoY As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyLeft Then
kulma = kulma - 1
ElseIf KeyCode = vbKeyRight Then
kulma = kulma + 1
ElseIf KeyCode = vbKeyUp Then
'???????????????????????????????????????????????
'????? Eteenpäin, mutta miten? ?????
'???????????????????????????????????????????????
End If
Piirra kulma, HemmoX, HemmoY 'Piirretaan kuva
If kulma = "31" Then
kulma = "0"
ElseIf kulma = "0" Then
kulma = "31"
End If
End Sub
Sub Piirra(kul As Integer, x As Integer, y As Integer)
Dim a As Long
a = BitBlt(Form1.Picture1.hDC, x, y, 32, 32, Form1.kuva.hDC, kul * 32, 0, &HCC0020)
End SubEmpä koodia jaksa laittaa mutta missä on kosinit ja sinit. Tee vaikka niin että jos "hemmo" menee eteenpäin ja vähän oikealle viistoon lisäät siihen oikealle meno suuntaan sini/kosini arvon ja vähennät toisen arvon eteen päin meno suunnasta.
Katsoppa vaikka: https://www.ohjelmointiputka.net/keskustelu/4653-objectin-liikkuminen-painovoimattomassa-tilassa
En saa kunnolla tota toimaa!
Nyt sain toimimaan, mutta miten saan sen menemään enempään kuin kahdeksaan suuntaan?
Sorry sain toimimaan!
Aihe on jo aika vanha, joten et voi enää vastata siihen.