Code: Select all
If kenttä = 2 Then Gosub map2
Code: Select all
If kenttä = 2 Then Gosub map2
Kokeilin tuotakin jossain välissä mutta ei toiminut..?MAVmaggot wrote:Riippuu vähän miten teet rähäjdyksen, jos teet sen objektina, niin laita että: If ObjectsOverLap(räjähdys, vihu) Then DeleteObject vihu
Code: Select all
PELI:
FrameLimit 45
'tyypit ja niiden kentät
Type zombis'nimi
Field obj'objecti
Field hp'energiat
Field dmg'vahinko
Field speed'nopeus
Field score'pisteet
Field id'minkälainen zombie on
EndType
Type bullets'ammukset
Field obj
Field hp
Field dmg
Field speed
Field id
EndType
Type upgs'asepäivitykset
Field obj
Field hp
Field id
EndType
Type c4s
Field obj
Field dmg
Field speed
Field id
Field hp
EndType
'ladataan media
gun_sound=LoadSound ("unlimited\media\thompson.wav")
map=LoadMap("unlimited\media\cdm2.til","unlimited\media\tileset.bmp")
hero=LoadObject("unlimited\media\soldier.bmp",72)
pelimusa=PlaySound ("unlimited\media\HGW_BogA_Tankdefense_v1.mp3")
zombi=LoadObject("unlimited\media\guy.bmp",72)
cow=LoadObject("unlimited\media\cow.bmp",32)
bullet=LoadObject("unlimited\media\bullet.bmp",32)
enemy_sound=LoadSound ("unlimited\media\kuolema2.wav")
enemy_sound2=LoadSound ("unlimited\media\kuolema.mp3")
enemy_sound3=LoadSound ("unlimited\media\kuolema3.wav")
c4=LoadObject("Unlimited\media\c4.bmp")
heitto=LoadSound ("Unlimited\media\whip.wav")
pamaus=LoadSound ("Unlimited\media\grenade.wav")
explow=LoadAnimObject("unlimited\media\bang.bmp",32,32,0,8)
ShowObject bullet,OFF
ShowObject zombi,OFF
ShowObject cow,OFF
ShowObject c4,OFF
ShowObject explow,OFF
SetupCollision hero,map,1,4,2
hp=500'sinun energiat
powupg=12'Aseen aloitus teho
speedupg=5'aseen aloitus nopeus
Repeat''''''''''''''''''''''''''''''
If SoundPlaying (pelimusa)=0 Then
pelimusa= PlaySound("unlimited\media\HGW_BogA_Tankdefense_v1.mp3")
EndIf
If hp>0 Then 'jos on energiaa niin suritetaan kaikki
CloneCameraPosition hero
MoveObject hero,UpKey()*6-DownKey()*4
TurnObject hero,LeftKey()*5-RightKey()*5
LoopObject explow,0,8,0.2
'Aseet''''''''''''''''''''''''''''''''''''''''
If KeyHit (CBKEYx) Then
newc4.c4S= New(c4S)
newc4\obj=CloneObject(c4)
CloneObjectPosition newc4\obj,hero
CloneObjectOrientation newc4\obj,hero
newc4\hp=10
newc4\speed=10
newc4\dmg=150
MoveObject newc4\obj,24
reload=15
EndIf
For ic4.c4S= Each c4S
If KeyHit(CBKEYz) And ic4\speed=0 Then ic4\hp=-1
ic4\speed-1
If ic4\speed<1 Then ic4\speed=0
MoveObject ic4\obj,ic4\speed
If ic4\hp<1 Then
CloneObjectPosition explow,ic4\obj'siirretään räjähdys samaan paikkaan c4n kanssa
If KeyHit(CBKEYz) And ic4\speed=0 Then PlaySound pamaus
explow_time=30'räjähdysaika
ShowObject explow,ON'näytetään räjähdys
DeleteObject ic4\obj
Delete ic4
EndIf
Next ic4
If explow_time<0 Then ShowObject explow,OFF'jos räjähdysaika loppuu niin piilotetaan räjähdys
explow_time-1
If KeyDown(CBKEYspace) And reload<0
PlaySound gun_sound,40
newBullet.BULLETS= New(BULLETS)
newBullet\obj=CloneObject(bullet)
newbullet\dmg=powupg
newbullet\speed=speedupg
CloneObjectPosition newBullet\obj,hero
CloneObjectOrientation newbullet\obj,hero
MoveObject newBullet\obj,24
reload=5
SetupCollision newbullet\obj,map,1,4,2
EndIf
reload-1
For iBullet.BULLETS= Each BULLETS
If CountCollisions(ibullet\obj) Then ibullet\hp-32
MoveObject iBullet\obj,6'likutetaan luotia
Next iBullet
'Asepäivitykset''''''''''''''''''''''''''''''''
'zombit''''''''''''''''''''''''''''''''''''''''
If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
newzombi.zombiS= New(zombiS)
newzombi\obj=CloneObject(zombi)
'Asetetaan vihollinen kohtaan missä ei ole törmäystä
For y=1 To MapWidth()
For x=1 To MapWidth()
If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
Next x
Next y
newzombi\id=Rand(1,2)
If newzombi\id =1'Ykkös zombi
newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
EndIf
If newzombi\id =2'kakkos zombi
PaintObject newzombi\obj,cow
newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
EndIf
SetupCollision newzombi\obj,map,1,4,2
luo=0
EndIf
luo+1
For izombi.zombiS= Each zombiS 'Aloitetaan zombien läpikäynti
'Typerä tekoäly
sidle=Rand(-20,20)
If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle 'jos kosketaan seinään, niin stepataan
PointObject izombi\obj,hero'zombi tähtää pelaajaan
If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg
For ibullet.bullets=Each bullets
If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
DeleteObject iBullet\obj
Delete iBullet
EndIf
Next ibullet
MoveObject izombi\obj,izombi\speed 'liikutetaan zombia nopeutensa verran
if izombi\hp<0
ääni=rand(1,3)
select ääni 'soita ääni
case 1
playsound enemy_sound
case 2
playsound enemy_sound2
case 3
playsound enemy_sound3
EndSelect
score+izombi\score
DeleteObject izombi\obj
Delete izombi
EndIf
Next izombi
EndIf
DrawGame'ettei teksti jää kartan alle
Color cbwhite
Text 530,10,"FPS "+FPS() 'tulosta FPS
Text 470,30,"(FPS limit = 45)"
Text 10,10,"HP "+hp
Text 10,20,"score "+score
If score<50 Then Text 10,40,"rank: MAGGOT"
If score>50 And score<150 Then Text 10,40,"rank: PRIVATE"
If score>150 And score<300 Then Text 10,40,"rank: CORPORAL"
If score>300 And score<500 Then Text 10,40,"rank: SERGEANT"
If score>500 And score<750 Then Text 10,40,"rank: LIEUTENANT"
If score>750 And score<1000 Then Text 10,40,"rank: CAPTAIN"
If score>1000 And score<1300 Then Text 10,40,"rank: MAJOR"
If score>1300 And score<1650 Then Text 10,40,"rank: COLONEL"
If score>1650 And score<2000 Then Text 10,40,"rank: BRIGADIER"
If score>2000 Then Text 10,40,"rank: GENERAL"
DrawScreen
Forever
Tässä tekemässäni esimerkissä on energiat vihuilla katso siitä.siinä on paljon muutakin.rami123 wrote:tämä on aika tyhmä kysymys : miten tehdään vihuille healthi?
Code: Select all
FrameLimit 40
SCREEN 800,600
'tyypit ja niiden kentät
Type zombis'nimi
Field obj'objecti
Field hp'energiat
Field dmg'vahinko
Field speed'nopeus
Field score'pisteet
Field id'minkälainen zombie on
EndType
Type bullets'ammukset
Field obj
Field hp
Field dmg
Field speed
Field id
EndType
Type upgs'asepäivitykset
Field obj
Field hp
Field id
EndType
'ladataan media
gun_sound=LoadSound("media\shot.wav")
upg_sound=LoadSound("media\whip.wav")
enemy_sound=LoadSound("media\sheep.wav")
map=LoadMap("media\cdm2.til","media\tileset.bmp")
hero=LoadObject("media\soldier.bmp",32)
zombi=LoadObject("media\guy.bmp",32)
cow=LoadObject("media\cow.bmp",32)
bullet=LoadObject("media\bullet.bmp",32)
upg=LoadObject("media\bullet.bmp")
topower=LoadObject("media\fireball.bmp")
tospeed=LoadObject("media\bigbullet.bmp")
medikit=LoadObject("media\tatti.bmp")
ShowObject topower,OFF
ShowObject tospeed,OFF
ShowObject bullet,OFF
ShowObject zombi,OFF
ShowObject cow,OFF
ShowObject medikit,OFF
SetupCollision hero,map,1,4,2
hp=500'sinun energiat
powupg=12'Aseen aloitus teho
speedupg=5'aseen aloitus nopeus
Repeat''''''''''''''''''''''''''''''
If hp>0 Then 'jos on energiaa niin suritetaan kaikki
CloneCameraPosition hero
MoveObject hero,UpKey()*6-DownKey()*4
TurnObject hero,LeftKey()*5-RightKey()*5
'Aseet''''''''''''''''''''''''''''''''''''''''
If KeyDown(CBKEYz) And reload<0
PlaySound gun_sound,40
newBullet.BULLETS= New(BULLETS)
newBullet\obj=CloneObject(bullet)
newbullet\dmg=powupg
newbullet\speed=speedupg
CloneObjectPosition newBullet\obj,hero
CloneObjectOrientation newbullet\obj,hero
MoveObject newBullet\obj,24
reload=15
SetupCollision newbullet\obj,map,1,4,2
EndIf
reload-1
For iBullet.BULLETS= Each BULLETS
If CountCollisions(ibullet\obj) Then ibullet\hp-32
MoveObject iBullet\obj,6'llikutetaan luotia
Next iBullet
'Asepäivitykset''''''''''''''''''''''''''''''''
If uusi>220
newupg.upgS= New(upgS)'thdään uusi
newupg\obj=CloneObject(upg)
newupg\hp=100
newupg\id=Rand(1,3)
If Newupg\id=1 Then PaintObject newupg\obj,topower
If Newupg\id=2 Then PaintObject Newupg\obj,tospeed
If Newupg\id=3 Then PaintObject Newupg\obj,medikit
'Asetetaan tavara kohtaan missä ei ole törmäystä
For y=1 To MapWidth()
For x=1 To MapWidth()
If GetMap2(2,x,y)=0 Then PositionObject newupg\obj,Rand(-600,500),Rand(-600,600)
Next x
Next y
uusi=0
EndIf
uusi+1
For iupg.upgS= Each upgS'aloitetaan kaikkien päivitysten käsittely
If ObjectsOverlap(iupg\obj,hero) Then iupg\hp=-1'jos törmätään niin tuhotaan tavara
If iupg\hp<0 Then'jos tuhotaan tavara
PlaySound upg_sound'soitetaan ääni
If iupg\id=1 Then powupg+1'lisätään aseen thoa
If iupg\id=1 Then speedupg+1'nopeutta
If iupg\id=3 Then hp+50'lisää energiaa
DeleteObject iupg\obj'poistetaan tavara
Delete iupg'ja sen jasen
EndIf
Next iupg
'zombit''''''''''''''''''''''''''''''''''''''''
If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
newzombi.zombiS= New(zombiS)
newzombi\obj=CloneObject(zombi)
'Asetetaan vihollinen kohtaan missä ei ole törmäystä
For y=1 To MapWidth()
For x=1 To MapWidth()
If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
Next x
Next y
newzombi\id=Rand(1,2)
If newzombi\id =1'Ykkös zombi
newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
EndIf
If newzombi\id =2'kakkos zombi
PaintObject newzombi\obj,cow
newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
EndIf
SetupCollision newzombi\obj,map,1,4,2
luo=0
EndIf
luo+1
For izombi.zombiS= Each zombiS'Aloitetaan zombien läpikäynti
'Typerä tekoäly
sidle=Rand(-20,20)
If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle'jos kosketaan deinään, niin stepataan
PointObject izombi\obj,hero'zombi tähtää pelaajaan
If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg
For ibullet.bullets=Each bullets
If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1
If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
DeleteObject iBullet\obj
Delete iBullet
EndIf
Next ibullet
MoveObject izombi\obj,izombi\speed'liikutetaan zombia nopeutensa verran
If izombi\hp<0 Then 'jos zombin energiat loppuu, niin tapetaan se ja annetaan pisteet
PlaySound enemy_sound
score+izombi\score
DeleteObject izombi\obj
Delete izombi
EndIf
Next izombi
EndIf
DrawGame'ettei teksti jää kartan alle
Text 10,10,"HP "+hp
Text 10,20,"score "+score
If hp<0 Then Text 350,300,"GAME OVER"
DrawScreen
Forever
If objectsoverlap (explow,izombie\obj) then izombie\hp=-1SuojelusPerkele wrote:Jees, tässä on ilman valikoita sun muita tämä koodinpätkäni. Eli neuvotteko tuon vihun poistamisen jos se koskee räjähdykseen?Code: Select all
PELI: FrameLimit 45 'tyypit ja niiden kentät Type zombis'nimi Field obj'objecti Field hp'energiat Field dmg'vahinko Field speed'nopeus Field score'pisteet Field id'minkälainen zombie on EndType Type bullets'ammukset Field obj Field hp Field dmg Field speed Field id EndType Type upgs'asepäivitykset Field obj Field hp Field id EndType Type c4s Field obj Field dmg Field speed Field id Field hp EndType 'ladataan media gun_sound=LoadSound ("unlimited\media\thompson.wav") map=LoadMap("unlimited\media\cdm2.til","unlimited\media\tileset.bmp") hero=LoadObject("unlimited\media\soldier.bmp",72) pelimusa=PlaySound ("unlimited\media\HGW_BogA_Tankdefense_v1.mp3") zombi=LoadObject("unlimited\media\guy.bmp",72) cow=LoadObject("unlimited\media\cow.bmp",32) bullet=LoadObject("unlimited\media\bullet.bmp",32) enemy_sound=LoadSound ("unlimited\media\kuolema2.wav") enemy_sound2=LoadSound ("unlimited\media\kuolema.mp3") enemy_sound3=LoadSound ("unlimited\media\kuolema3.wav") c4=LoadObject("Unlimited\media\c4.bmp") heitto=LoadSound ("Unlimited\media\whip.wav") pamaus=LoadSound ("Unlimited\media\grenade.wav") explow=LoadAnimObject("unlimited\media\bang.bmp",32,32,0,8) ShowObject bullet,OFF ShowObject zombi,OFF ShowObject cow,OFF ShowObject c4,OFF ShowObject explow,OFF SetupCollision hero,map,1,4,2 hp=500'sinun energiat powupg=12'Aseen aloitus teho speedupg=5'aseen aloitus nopeus Repeat'''''''''''''''''''''''''''''' If SoundPlaying (pelimusa)=0 Then pelimusa= PlaySound("unlimited\media\HGW_BogA_Tankdefense_v1.mp3") EndIf If hp>0 Then 'jos on energiaa niin suritetaan kaikki CloneCameraPosition hero MoveObject hero,UpKey()*6-DownKey()*4 TurnObject hero,LeftKey()*5-RightKey()*5 LoopObject explow,0,8,0.2 'Aseet'''''''''''''''''''''''''''''''''''''''' If KeyHit (CBKEYx) Then newc4.c4S= New(c4S) newc4\obj=CloneObject(c4) CloneObjectPosition newc4\obj,hero CloneObjectOrientation newc4\obj,hero newc4\hp=10 newc4\speed=10 newc4\dmg=150 MoveObject newc4\obj,24 reload=15 EndIf For ic4.c4S= Each c4S If KeyHit(CBKEYz) And ic4\speed=0 Then ic4\hp=-1 ic4\speed-1 If ic4\speed<1 Then ic4\speed=0 MoveObject ic4\obj,ic4\speed If ic4\hp<1 Then CloneObjectPosition explow,ic4\obj'siirretään räjähdys samaan paikkaan c4n kanssa If KeyHit(CBKEYz) And ic4\speed=0 Then PlaySound pamaus explow_time=30'räjähdysaika ShowObject explow,ON'näytetään räjähdys DeleteObject ic4\obj Delete ic4 EndIf Next ic4 If explow_time<0 Then ShowObject explow,OFF'jos räjähdysaika loppuu niin piilotetaan räjähdys explow_time-1 If KeyDown(CBKEYspace) And reload<0 PlaySound gun_sound,40 newBullet.BULLETS= New(BULLETS) newBullet\obj=CloneObject(bullet) newbullet\dmg=powupg newbullet\speed=speedupg CloneObjectPosition newBullet\obj,hero CloneObjectOrientation newbullet\obj,hero MoveObject newBullet\obj,24 reload=5 SetupCollision newbullet\obj,map,1,4,2 EndIf reload-1 For iBullet.BULLETS= Each BULLETS If CountCollisions(ibullet\obj) Then ibullet\hp-32 MoveObject iBullet\obj,6'likutetaan luotia Next iBullet 'Asepäivitykset'''''''''''''''''''''''''''''''' 'zombit'''''''''''''''''''''''''''''''''''''''' If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie newzombi.zombiS= New(zombiS) newzombi\obj=CloneObject(zombi) 'Asetetaan vihollinen kohtaan missä ei ole törmäystä For y=1 To MapWidth() For x=1 To MapWidth() If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600) Next x Next y newzombi\id=Rand(1,2) If newzombi\id =1'Ykkös zombi newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät EndIf If newzombi\id =2'kakkos zombi PaintObject newzombi\obj,cow newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös EndIf SetupCollision newzombi\obj,map,1,4,2 luo=0 EndIf luo+1 For izombi.zombiS= Each zombiS 'Aloitetaan zombien läpikäynti 'Typerä tekoäly sidle=Rand(-20,20) If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle 'jos kosketaan seinään, niin stepataan PointObject izombi\obj,hero'zombi tähtää pelaajaan If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg For ibullet.bullets=Each bullets If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1 If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus DeleteObject iBullet\obj Delete iBullet EndIf Next ibullet MoveObject izombi\obj,izombi\speed 'liikutetaan zombia nopeutensa verran if izombi\hp<0 ääni=rand(1,3) select ääni 'soita ääni case 1 playsound enemy_sound case 2 playsound enemy_sound2 case 3 playsound enemy_sound3 EndSelect score+izombi\score DeleteObject izombi\obj Delete izombi EndIf Next izombi EndIf DrawGame'ettei teksti jää kartan alle Color cbwhite Text 530,10,"FPS "+FPS() 'tulosta FPS Text 470,30,"(FPS limit = 45)" Text 10,10,"HP "+hp Text 10,20,"score "+score If score<50 Then Text 10,40,"rank: MAGGOT" If score>50 And score<150 Then Text 10,40,"rank: PRIVATE" If score>150 And score<300 Then Text 10,40,"rank: CORPORAL" If score>300 And score<500 Then Text 10,40,"rank: SERGEANT" If score>500 And score<750 Then Text 10,40,"rank: LIEUTENANT" If score>750 And score<1000 Then Text 10,40,"rank: CAPTAIN" If score>1000 And score<1300 Then Text 10,40,"rank: MAJOR" If score>1300 And score<1650 Then Text 10,40,"rank: COLONEL" If score>1650 And score<2000 Then Text 10,40,"rank: BRIGADIER" If score>2000 Then Text 10,40,"rank: GENERAL" DrawScreen Forever
KillBurn wrote:Siinä:
If objectsoverlap (explow,izombie\obj) and explow_time>0 then izombie\hp=-1
Nyt tarkistetaan että räjähdys on päällä.
Code: Select all
If KeyHit(CBKEYz) And ic4\speed=0 Then ic4\hp=-1
ic4\speed-1
If ic4\speed<1 Then ic4\speed=0
MoveObject ic4\obj,ic4\speed
If ic4\hp<1 Then
CloneObjectPosition explow,ic4\obj'siirretään räjähdys samaan paikkaan c4n kanssa
If KeyHit(CBKEYz) And ic4\speed=0 Then PlaySound pamaus
explow_time=30'räjähdysaika
ShowObject explow,ON'näytetään räjähdys
DeleteObject ic4\obj
Delete ic4
EndIf
Next ic4
If explow_time<0 Then ShowObject explow,OFF'jos räjähdysaika loppuu niin piilotetaan räjähdys
explow_time-1
Code: Select all
SafeExit 0
Code: Select all
if instr(commandline(),"-tulosta_helloworld") then
print "Hello, world!"
waitkey
endif
Code: Select all
munpeli.exe -tulosta_helloworld
mitä nuo upgs asepäivitykset ovat? tässä toinen tyhmä kysymys : miten laitetaan tuollainen hyökkäys itsellekin? kuin zombeilla että kun huidotaan viikatteella vihollisia niin niiltä lähtee samalla lailla hp tä kuin viholliset tuossa esimerkissäsi törmäävät heroon?KillBurn wrote:Tässä tekemässäni esimerkissä on energiat vihuilla katso siitä.siinä on paljon muutakin.rami123 wrote:tämä on aika tyhmä kysymys : miten tehdään vihuille healthi?Jos et ymmärtänyt niin, type vihuun luodaan kenttä Hp ja vihua luotaessa se asetetaan tiettyyn arvoon.Code: Select all
FrameLimit 40 SCREEN 800,600 'tyypit ja niiden kentät Type zombis'nimi Field obj'objecti Field hp'energiat Field dmg'vahinko Field speed'nopeus Field score'pisteet Field id'minkälainen zombie on EndType Type bullets'ammukset Field obj Field hp Field dmg Field speed Field id EndType Type upgs'asepäivitykset Field obj Field hp Field id EndType 'ladataan media gun_sound=LoadSound("media\shot.wav") upg_sound=LoadSound("media\whip.wav") enemy_sound=LoadSound("media\sheep.wav") map=LoadMap("media\cdm2.til","media\tileset.bmp") hero=LoadObject("media\soldier.bmp",32) zombi=LoadObject("media\guy.bmp",32) cow=LoadObject("media\cow.bmp",32) bullet=LoadObject("media\bullet.bmp",32) upg=LoadObject("media\bullet.bmp") topower=LoadObject("media\fireball.bmp") tospeed=LoadObject("media\bigbullet.bmp") medikit=LoadObject("media\tatti.bmp") ShowObject topower,OFF ShowObject tospeed,OFF ShowObject bullet,OFF ShowObject zombi,OFF ShowObject cow,OFF ShowObject medikit,OFF SetupCollision hero,map,1,4,2 hp=500'sinun energiat powupg=12'Aseen aloitus teho speedupg=5'aseen aloitus nopeus Repeat'''''''''''''''''''''''''''''' If hp>0 Then 'jos on energiaa niin suritetaan kaikki CloneCameraPosition hero MoveObject hero,UpKey()*6-DownKey()*4 TurnObject hero,LeftKey()*5-RightKey()*5 'Aseet'''''''''''''''''''''''''''''''''''''''' If KeyDown(CBKEYz) And reload<0 PlaySound gun_sound,40 newBullet.BULLETS= New(BULLETS) newBullet\obj=CloneObject(bullet) newbullet\dmg=powupg newbullet\speed=speedupg CloneObjectPosition newBullet\obj,hero CloneObjectOrientation newbullet\obj,hero MoveObject newBullet\obj,24 reload=15 SetupCollision newbullet\obj,map,1,4,2 EndIf reload-1 For iBullet.BULLETS= Each BULLETS If CountCollisions(ibullet\obj) Then ibullet\hp-32 MoveObject iBullet\obj,6'llikutetaan luotia Next iBullet 'Asepäivitykset'''''''''''''''''''''''''''''''' If uusi>220 newupg.upgS= New(upgS)'thdään uusi newupg\obj=CloneObject(upg) newupg\hp=100 newupg\id=Rand(1,3) If Newupg\id=1 Then PaintObject newupg\obj,topower If Newupg\id=2 Then PaintObject Newupg\obj,tospeed If Newupg\id=3 Then PaintObject Newupg\obj,medikit 'Asetetaan tavara kohtaan missä ei ole törmäystä For y=1 To MapWidth() For x=1 To MapWidth() If GetMap2(2,x,y)=0 Then PositionObject newupg\obj,Rand(-600,500),Rand(-600,600) Next x Next y uusi=0 EndIf uusi+1 For iupg.upgS= Each upgS'aloitetaan kaikkien päivitysten käsittely If ObjectsOverlap(iupg\obj,hero) Then iupg\hp=-1'jos törmätään niin tuhotaan tavara If iupg\hp<0 Then'jos tuhotaan tavara PlaySound upg_sound'soitetaan ääni If iupg\id=1 Then powupg+1'lisätään aseen thoa If iupg\id=1 Then speedupg+1'nopeutta If iupg\id=3 Then hp+50'lisää energiaa DeleteObject iupg\obj'poistetaan tavara Delete iupg'ja sen jasen EndIf Next iupg 'zombit'''''''''''''''''''''''''''''''''''''''' If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie newzombi.zombiS= New(zombiS) newzombi\obj=CloneObject(zombi) 'Asetetaan vihollinen kohtaan missä ei ole törmäystä For y=1 To MapWidth() For x=1 To MapWidth() If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600) Next x Next y newzombi\id=Rand(1,2) If newzombi\id =1'Ykkös zombi newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät EndIf If newzombi\id =2'kakkos zombi PaintObject newzombi\obj,cow newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös EndIf SetupCollision newzombi\obj,map,1,4,2 luo=0 EndIf luo+1 For izombi.zombiS= Each zombiS'Aloitetaan zombien läpikäynti 'Typerä tekoäly sidle=Rand(-20,20) If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle'jos kosketaan deinään, niin stepataan PointObject izombi\obj,hero'zombi tähtää pelaajaan If ObjectsOverlap(izombi\obj,hero) Then hp-izombi\dmg For ibullet.bullets=Each bullets If ObjectsOverlap(ibullet\obj,izombi\obj) Then izombi\hp-ibullet\dmg Then ibullet\hp=-1 If Distance2(iBullet\obj,hero)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus DeleteObject iBullet\obj Delete iBullet EndIf Next ibullet MoveObject izombi\obj,izombi\speed'liikutetaan zombia nopeutensa verran If izombi\hp<0 Then 'jos zombin energiat loppuu, niin tapetaan se ja annetaan pisteet PlaySound enemy_sound score+izombi\score DeleteObject izombi\obj Delete izombi EndIf Next izombi EndIf DrawGame'ettei teksti jää kartan alle Text 10,10,"HP "+hp Text 10,20,"score "+score If hp<0 Then Text 350,300,"GAME OVER" DrawScreen Forever