Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Onghelmihaa.... :-/

makeuu [12.05.2004 08:09:26]

#

Tein pikaisesti autopelin(kaviaari auttoi), jossa auto ajaa tietä ylöspäin ja väistelee, mutta sitten homma jäikin kesken kun tuli eteen seuraava ongelma:
Auto ei saa mennä yli 30px ja jos se menee niin sitten se pysyy paikallaan tai menee muihin suuntiin.

ja koodi on:

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
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim py As Integer
Dim px As Integer
Private Sub Form_Load()
px = 115
py = 75
End Sub
Private Sub Timer1_Timer()
If GetAsyncKeyState(40) Then py = py + 5
If GetAsyncKeyState(38) Then py = py - 5 '
If GetAsyncKeyState(39) Then px = px + 5
If GetAsyncKeyState(37) Then px = px - 5
If (px = 30) Then px = px = 30
pPuskuri.Cls
Dim z As Long
z = BitBlt(pPuskuri.hDC, px, py, 445, 229, maski.hDC, 0, 0, vbSrcAnd)
z = BitBlt(pPuskuri.hDC, px, py, 445, 229, kuva.hDC, 0, 0, vbSrcInvert)
z = BitBlt(pKuva.hDC, 0, 0, pKuva.Width, pKuva.Height, pPuskuri.hDC, 0, 0, vbSrcCopy)
End Sub

kaikki nuo timerit ja pkuvat ja ppuskurit on formilla..

kaviaari [12.05.2004 08:14:12]

#

Ota talteen vanhat paikat, eli ennen näppiksen lukemista vaikkapa muuttujiin vpx ja vpy. Ja näppiksen lukemisen jälkeen vertailet onko auto yli sallitun 50 pikselin, näin:

if px>50 then px=vpx

jolloin jos px on suurempikuin 50 se palautetaan vanhaan koordinaatiin jolloin se tavallaan pysähtyy.

ja mitä ihmettä varten sinulla on tälläinen rivi koodissasi

If (px = 30) Then px = px = 30

sen voit ottaa huoletta pois

sooda [12.05.2004 13:37:24]

#

If (px = 30) Then px = px = 30 tekee sen, että jos px on 30 niin px on -1, koska px = px = 30 on ehtolause ja antaa äärimmäisen truen(-1, siinä on kaikki bitit ylhäällä) eli jos px = 30 niin sitten px on -1. Aika häiritsevä rivi koska tota tuskin tarttee ja jos px on -1 niin sekin varmaan tuottaa jonkinlaista virhettä :P

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta