Ongelmana on että en saa paukkuja tuhoutumaan seinään osuessaan. Kokeilin ObjectsOverlap komentoa mutta sillä katosivat heti.
Ja vielä se että, miten saan vihollisen/pelaajan spawnaamaan jossakin missä ei ole seiniä.
Mulla on tämmönen käytössä. Mutta se ei vain tee sitä mitä haluan. Liian monesti menee seinän sisään.
Code: Select all
SCREEN 1000, 800
FrameLimit 40
DrawToWorld ON
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
ObjectPickable kartta, ON
PlayObject kartta,0,0,1
Type AMMMMUS
Field obj
End Type
Type AMMMUS
Field obj
End Type
Type AMMUS
Field obj
End Type
ukko=LoadObject("Media/guy.bmp",360)
vihu=LoadObject("Media/guy.bmp",360)
ObjectPickable vihu, ON
vihu2=LoadObject("Media/guy.bmp",360)
ObjectPickable vihu2, ON
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
pati2=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
pati3=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
SetupCollision ukko, kartta, 1, 4, 2
SetupCollision vihu, kartta, 2, 4, 2
SetupCollision vihu2, kartta, 2, 4, 2
PositionObject ukko, 50, 0
PositionObject vihu, -300, -320
PositionObject vihu2, -300, 320
AddText "WASD-näppäimillä liikkuu, CTRL=ampuu"
AddText "Voit poistaa tekstit aina, painamalla Q - kirjainta"
Repeat
If Distance2 (vihu2, ukko)>700 Then PositionObject vihu2, -300, 320
If Distance2 (vihu, ukko)<700 Then MoveObject vihu, 0
If ObjectSight (vihu, ukko) Then PointObject vihu, ukko
If KeyDown(30) Then TurnObject ukko, 5
If KeyDown(32) Then TurnObject ukko, -5
If KeyDown(17) Then MoveObject ukko, 5
If KeyDown(31) Then MoveObject ukko, -5
DrawGame
ObjectPick ukko
e=PickedObject()
If e=vihu Then
Color cbMagenta
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
If e=vihu2 Then
Color cbMagenta
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
If e=kartta Then
Color cbGreen
Circle PickedX()-4,PickedY()+4,8,OFF
EndIf
If Distance2 (vihu, ukko)<150 Then MoveObject vihu, -3
If ObjectsOverlap (vihu, ukko, 3) Then PositionObject ukko, Rand(-300,300), Rand(-300,300)
If ObjectX(vihu)<350 Then MoveObject vihu, 3
If ObjectX(vihu)>340 Then RotateObject vihu, 180
If ObjectX(vihu)<-300 Then RotateObject vihu, 0
If ObjectX(vihu2)<350 Then MoveObject vihu2, 3
If ObjectX(vihu2)>340 Then RotateObject vihu2, 180
If ObjectX(vihu2)<-300 Then RotateObject vihu2, 0
If ObjectSight (vihu2, ukko) Then PointObject vihu2, ukko
If KeyDown(cbKeyLControl) And reload=0 Then
luotti.ammmus = New(AMMMUS)
luotti\obj=CloneObject(pati2)
CloneObjectPosition luotti\obj, ukko
CloneObjectOrientation luotti\obj, ukko
reload=5
EndIf
If reload>0 Then reload=reload-1
For luotti.AMMMUS = Each AMMMUS
MoveObject luotti\obj, 15
If ObjectsOverlap (luotti\obj, vihu, 1) Then
DeleteObject luotti\obj
Delete luotti
AddText " Tapoit vihollisen! "
PositionObject vihu, -300, -320
CloneObjectOrientation vihu, pati
EndIf
Next luotti
If reload>0 Then reload=reload-1
For luotti.AMMMUS = Each AMMMUS
MoveObject luotti\obj, 15
If ObjectsOverlap (luotti\obj, vihu2, 1) Then
DeleteObject luotti\obj
Delete luotti
AddText " Tapoit vihollisen! "
PositionObject vihu2, -300, 320
CloneObjectOrientation vihu2, pati
EndIf
Next luotti
If Distance2 (vihu, ukko)>700 Then PositionObject vihu, -300, -320
If Distance2 (vihu, ukko)<300 And ObjectSight (vihu, ukko) And reload=0 Then
luoti.ammus = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj, vihu
CloneObjectOrientation luoti\obj, vihu
reload=5
EndIf
If reload>1 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj, 10
If ObjectsOverlap (luoti\obj, ukko, 1) Then
DeleteObject luoti\obj
Delete luoti
AddText " Sait Osuman "
PositionObject ukko, Rand(-300,300), Rand(-300,300)
EndIf
Next luoti
If Distance2 (vihu2, ukko)<250 And ObjectSight (vihu2, ukko) And reload=0 Then
luottti.AMMMMUS = New(AMMMMUS)
luottti\obj=CloneObject(pati3)
CloneObjectPosition luottti\obj, vihu2
CloneObjectOrientation luottti\obj, vihu2
reload=5
EndIf
If reload>0 Then reload=reload-1
For luottti.AMMMMUS = Each AMMMMUS
MoveObject luottti\obj, 10
If ObjectsOverlap (luottti\obj, ukko, 1) Then
DeleteObject luottti\obj
Delete luottti
AddText " Sait Osuman "
PositionObject ukko, Rand(-300,300), Rand(-300,300)
EndIf
Next luottti
If KeyHit(16) Then ClearText
CloneCameraPosition ukko
DrawScreen
Forever
Ai niin, ja Jonez, kiitos tosta vastauksesta.
PS, voiko CBssä tehdä niin ettei kulmien taakse näy. Ainoastaan näkyy jos on Sight