Olen aloittelija koodaaja ja teen mun ekaa peliä (semmosta sotapeliä), mutta tuli ongelma vastaan. Mul ei ole ollu mitään muuta ongelmaa mitä en olisi saanut ratkaistua itse ilman tutorialeja ja omaa päätäni. Eli haluun että kun se luoti osuisi siihen toiseen pelaajaan nii se toinen pelaaja "kuolee" eli objekti häviää tai se menee aloituspaikkaan takaisin. Ongelma on kuitenkin se että joka kerta ku se luoti osuu siihen toiseen pelaajaan niin tulee sama vanha "Memory access violation."
Tässä olisi pätkä koodia:
Code: Select all
'Ammunta
Type AMPUMINEN
Field bullet
End Type
FrameLimit 40
DrawToWorld ON
'OBJEKTIT:
'Luoti
bullet = LoadObject ("bullet.png")
ShowObject bullet, OFF
ObjectOrder bullet, -1
'Pelaaja1
pelaaja = LoadObject("tornip.png", 360)
ObjectRange pelaaja, 72, 80
ObjectOrder pelaaja, 1
ObjectPickable pelaaja, 2
HPelaaja = 500
'pelaaja2
pelaaja2 = LoadObject("torni.png", 360)
ObjectRange pelaaja2, 72, 80
ObjectOrder pelaaja, 1
ObjectPickable pelaaja2, 2
HPelaaja2 = 500
'pelaajien aloitus
PositionObject pelaaja, -200, 100
RotateObject pelaaja, 0
'pelaajien törmäys
SetupCollision pelaaja, pelaaja2, 2, 2, 2
'PÄÄSILMUKKA
Repeat
'Liikuttaminen - pelaaja1
If KeyDown (cbkeya) Then TurnObject pelaaja, 5
If KeyDown (cbkeyd) Then TurnObject pelaaja, -5
If KeyDown(cbkeyw) Then MoveObject pelaaja, 0, -5
If KeyDown (cbkeys) Then MoveObject pelaaja, 0, 5
'pelaaja1 ampuminen
If KeyDown (57) And reload=0 Then
luoti.AMPUMINEN = New (AMPUMINEN)
luoti\bullet = CloneObject (bullet)
CloneObjectPosition luoti\bullet, pelaaja
CloneObjectOrientation luoti\bullet, pelaaja
SetupCollision luoti\bullet, pelaaja2, 2, 2, 1
reload = 25
EndIf
If reload>0 Then reload=reload-1
For luoti.AMPUMINEN = Each AMPUMINEN
MoveObject luoti\bullet, 10
If ObjectX (luoti\bullet)<-850 Or ObjectX (luoti\bullet)>850 Or ObjectY (luoti\bullet)<-600 Or ObjectY (luoti\bullet)>600 Or CountCollisions (luoti\bullet) Then
DeleteObject luoti\bullet
Delete luoti
endif
'TÄSSÄ ON ONGELMA
If CountCollisions (luoti\bullet) Then HPelaaja2=HPelaaja2-500
If HPelaaja2=0 Then
PositionObject pelaaja2, 200,100
EndIf
Next luoti
UpdateGame
DrawGame
'tässä on objectpickable juttuja, jne
Drawscreen
Forever
PS. En todellakaan käytä copy - pastea, en vaikka henki menisi.