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 Sub
Empä 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.