Code: Select all
Type AMMUS
Field obj
End Type
Type ENEMY
Field obj
Field health
End Type
FrameLimit 40
SCREEN 800, 600,0,1
DefaultVisible OFF
ukko=LoadObject("media\guy.bmp",72)
dirt=LoadImage("media\ground.png")
ground=MakeObjectFloor()
PaintObject ground, dirt
vihis=LoadObject("media\soldier.bmp",32)
pati=LoadObject("media\bullet.bmp")
cross=LoadImage("media\crosshair.bmp")
ShowMouse cross
lvl=1
ShowObject pati, OFF
ShowObject ukko, ON
paapeli:
Repeat
If UpKey() Then MoveObject ukko,5
If DownKey() Then MoveObject ukko,-5
RotateObject ukko, GetAngle(ObjectX(ukko), -ObjectY(ukko), MouseWX(), -MouseWY())
If KeyDown(cbKeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
ShowObject luoti\obj, ON
CloneObjectPosition luoti\obj,ukko
CloneObjectOrientation luoti\obj,ukko
reload=5
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If ObjectX(luoti\obj)<-400 Or ObjectX(luoti\obj)>400 Or ObjectY(luoti\obj)<-300 Or ObjectY(luoti\obj)>300 Then
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
If vihuload=0 Then
vihu.ENEMY = New(ENEMY)
vihu\obj = CloneObject(vihis)
ShowObject vihu\obj, ON
vihu\health = 5
RotateObject vihu\obj, Rand(0,3)*90
MoveObject vihu\obj, 410
vihuload=40-lvl
EndIf
If vihuload>0 Then vihuload=vihuload-1
For vihu.ENEMY = Each ENEMY
PointObject vihu\obj, ukko
MoveObject vihu\obj, 3
If vihu\health<1 Then
DeleteObject vihu\obj
Delete vihu
EndIf
Next vihu
For vihu.ENEMY = Each ENEMY
For luoti.AMMUS = Each AMMUS
If ObjectsOverlap(vihu\obj,luoti\obj) Then
vihu\health-1
DeleteObject luoti\obj
Delete luoti
Exit
EndIf
Next luoti
Next vihu
DrawGame
Text 0,0, lvl
Text 0,10, vihuload
DrawScreen
Until EscapeKey()
End