Koodi:
Code: Select all
Type AMMUS
Field id
Field obj
End Type
FrameLimit 40
SCREEN 800,600
Global hiiritähtäys
hiiritähtäys = True
tausta=MakeObjectFloor
kuva=LoadImage("media\grass.bmp")
PaintObject tausta,kuva
ukko1=LoadObject("media\guy.bmp",72)
ShowObject ukko1,OFF
ukko2=LoadObject("media\soldier.bmp",72)
ShowObject ukko2,OFF
apuobj=MakeObject()
master=CloneObject(ukko1)
pati=LoadObject("media\bullet.bmp",72)
ShowObject pati, OFF
tähtäin = LoadObject("media\target.bmp")
panokset1=15
panokset2=30
ASE=0
Repeat
CloneObjectPosition master,apuobj
If hiiritähtäys = True Then //tarkistetaan onko hiiritähtäys päällä
PositionObject tähtäin, MouseWX(), MouseWY()//sijoitetaan tähtäinobjekti hiiren kohdalle
PointObject master, tähtäin
EndIf
If KeyDown(cbkeyW) Then MoveObject apuobj,0,-4
If KeyDown(cbkeyS) Then MoveObject apuobj,0,4
If KeyDown(cbkeyA) Then MoveObject apuobj,-4
If KeyDown(cbkeyD) Then MoveObject apuobj,4
If ObjectX(apuobj)<-400 Then PositionObject apuobj,-400,ObjectY(apuobj)
If ObjectX(apuobj)>400 Then PositionObject apuobj,400,ObjectY(apuobj)
If ObjectY(apuobj)<-300 Then PositionObject apuobj,ObjectX(apuobj),-300
If ObjectY(apuobj)>300 Then PositionObject apuobj,ObjectX(apuobj),300
If MouseHit(2) Then ASE=Not ASE
If MouseDown(1) And reload=0 Then
Select ASE
Case 0
PaintObject master,ukko1
If panokset1>0 Then
panokset1-1
luoti.AMMUS = New(AMMUS)
luoti\id=0
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,master
CloneObjectOrientation luoti\obj,master
ResetObjectCollision luoti\obj
MoveObject luoti\obj,5,-3
TurnObject luoti\obj,Rand(1,-1)
reload=15
Else
reload=50
If Timer()>lataus+600 Then
valmis=Not valmis
lataus=Timer()
EndIf
If valmis Then
panokset1=15
EndIf
EndIf
Case 1
PaintObject master,ukko2
If panokset2>0 Then
panokset2-1
luoti.AMMUS = New(AMMUS)
luoti\id=1
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,master
CloneObjectOrientation luoti\obj,master
ResetObjectCollision luoti\obj
MoveObject luoti\obj,3,0
TurnObject luoti\obj,Rand(3,-3)
reload=6
Else
reload=40
If Timer()>lataus+500 Then
valmis=Not valmis
lataus=Timer()
EndIf
If valmis Then
panokset2=30
EndIf
EndIf
EndSelect
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
Select luoti\id
Case 0
MoveObject luoti\obj,25
If Distance2(luoti\obj,master)>800 Then
DeleteObject luoti\obj 'poista objekti
Delete luoti 'poista luoti kokonaan
EndIf
Case 1
MoveObject luoti\obj,30
If Distance2(luoti\obj,master)>800 Then
DeleteObject luoti\obj 'poista objekti
Delete luoti 'poista luoti kokonaan
EndIf
End Select
Next luoti
DrawScreen
Forever