Joo mutta, pitäis saada kloonattu objekti vahingoittamaan pelaajaa.
Olen kokeillut kaikkia mahdollisia keinoja.
Sekä (huonolla) botilla ja pelaajalla on kyllä helttimuuttuja, mutta miten esim. ObjectsOverLapin saa toimimaan kloonatun ammuksen kanssa? Koodi alla.
Code: Select all
Errors ON
sisään:
Repeat
nimi$=Input("ID: ")
DrawScreen
Until KeyHit(28)
CloseInput
AddText nimi
Locate 0,20
Repeat
salasana$=Input("Salasana: ","*")
DrawScreen
Until KeyHit(28)
ClearText
If nimi$="pelaaja342" And salasana$="testikoodi"
Locate 0,0
AddText "Tervetuloa, Pelaaja342"
Repeat
DrawScreen
Until KeyHit (28)
ClearText
Goto alku
End
Else
Color cbRed
Locate 0,0
AddText "Väärä tunnus tai salasana"
Repeat
DrawScreen
Until EscapeKey()
Goto sisään
EndIf
alku:
SCREEN 640, 480
Type AMMUS
Field obj
End Type
Type AMMUS2
Field obj2
End Type
FrameLimit 40
ukko1 = LoadObject ("Media\guy.bmp",72)
botti = LoadObject ("Media\guy.bmp",72)
pati = LoadObject ("Media\bullet.bmp")
pati2 = LoadObject ("Media\bullet.bmp")
ShowObject pati,OFF
ShowObject pati2,OFF
//Ukkojen kulma oikein
RotateObject ukko1,0
RotateObject botti,180
//Ukot alkupaikkoihin
PositionObject ukko1,-150,100
PositionObject botti,150,-100
SetupCollision ukko1, botti, 2,2,2
SetupCollision botti, ukko1, 2,2,2
health1=100
health2=100
//Törmäys
Repeat
Color cbWhite
Text 0,0, "Ukko1 Health: "+health1
Text 0,20, "Botti Health: "+health2
If health2=<1 Then MakeError "Kuolit."
MoveObject botti, 1.2
'Ukon 1 ohjaus
If LeftKey() Then TurnObject ukko1,5
If RightKey() Then TurnObject ukko1,-5
If UpKey() Then MoveObject ukko1,3
If DownKey() Then MoveObject ukko1,-3
'Ukon 2 ohjaus
If ObjectSight (botti, ukko1) Then PointObject botti, ukko1
'Ammu-systeemi. Vain, jos ase on ladattu
If KeyHit(cbKeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,ukko1
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,ukko1
reload=10 'aseen lataus
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,7
If ObjectX(luoti\obj)<-320 Or ObjectX(luoti\obj)>320 Or ObjectY(luoti\obj)<-240 Or ObjectY(luoti\obj)>240
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
//=================================================//
If ObjectSight (botti, ukko1) And reload=0 Then
luoti2.AMMUS2 = New(AMMUS2) 'luo uusi ammus
luoti2\obj2=CloneObject(pati2) 'tee klooni
SetupCollision luoti2\obj2, ukko1, 2,2,2
'asetetaan pati samaan paikkaan
a=ObjectsOverlap(luoti2\obj2, ukko1)
CloneObjectPosition luoti2\obj2, botti
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti2\obj2, ukko1
reload=20 'aseen lataus
EndIf
If a Then
health1=health1 -10
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For luoti2.AMMUS2 = Each AMMUS2
MoveObject luoti2\obj2,7
If ObjectX(luoti2\obj2)<-320 Or ObjectX(luoti2\obj2)>320 Or ObjectY(luoti2\obj2)<-240 Or ObjectY(luoti2\obj2)>240 Then
'ammus ylittää rajan -> tuhoa se
DeleteObject luoti2\obj2 'poista objekti
Delete luoti2 'poista luoti kokonaan
EndIf
Next luoti2
'Älä päästä ukkoa 1 seinien ulkopuolelle
If ObjectX(ukko1)<-320 Then PositionObject ukko1,-320,ObjectY(ukko1)
If ObjectX(ukko1)>320 Then PositionObject ukko1,320,ObjectY(ukko1)
If ObjectY(ukko1)<-240 Then PositionObject ukko1,ObjectX(ukko1),-240
If ObjectY(ukko1)>240 Then PositionObject ukko1,ObjectX(ukko1),240
'Älä päästä ukkoa 2 seinien ulkopuolelle
If ObjectX(botti)<-320 Then PositionObject botti,-320,ObjectY(botti)
If ObjectX(botti)>320 Then PositionObject botti,320,ObjectY(botti)
If ObjectY(botti)<-240 Then PositionObject botti,ObjectX(botti),-240
If ObjectY(botti)>240 Then PositionObject botti,ObjectX(botti),240
DrawScreen
Until EscapeKey()