If objectsoverlap (viikate,izombie\obj) then izombie\hp-1rami123 wrote: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
Älkää nyt ihan kaikkea kysykö.
Ja ne asepäivitys jutut on niitä tavaroita varten.