Sarrera honen bidez aurrera egin dezazuen pare bat aholku utziko dizkizuet.
Talkak detektatzeko aldaketa txikia SweptController-ean
Swept Controler |
Swept ControllerMarka ezazue ForwardEvents eta horrela, gure pertsonaiak talkak detektatuko ditu eta haiei erantzun ahal izango die.
Horrekin soilik ez da nahiko!
CustomCollisionEventTracker osagaia ere gehitu behar zaio pertsonaiari.
Horrekin soilik ez da nahiko!
CustomCollisionEventTracker osagaia ere gehitu behar zaio pertsonaiari.
Level berriak sortu
Orain arte, Level bakar batean egon gara lanean. Bere izena berez Level delarik.(Aldatu izena Level1 izan dadin). Baina hau izango da gure jokuaren lehenengo mailan gaudenean kargatu behar dena. Hasteko interesgarria izango zen beste leiho bat agertzea gure jokuaren izena eta jolasteko modua azaltzen digularik. (StartLevel?)
Gainera, bai maila bat gainditu dugunean (WinLevel?) eta bai galdu dugunean (GameOverLevel?) beste leiho batzuk agertzea interesgarria izango zen. Hauetan, tekla bat sakatuz jolasa berriz hasi genezake eta beste tekla batekin (Esc) jokutik irtetzeko aukera eman.
Beste Level bat sortzeko bi modutan egin dezakezue:
1- Level berria hutsik egotea nahi baduzue, Add->Resources: Level aukeratu eta Izen egokia ipini ondoren Create sakatu.
2- Pantaila berria beste Level baten antzekoa bada, beharbada interesgarriagoa izango da "Library"-n Level etiketa sakatu (edo "Level" bilatu) eta dagokion Level-a aukeratu, bere gainean eskuinekio botoiarekin sakatu eta menuan Duplicate aukeratu. Ondoren, Level berriari izena aldatu.(Menu berean Rename)
Interesgarria izan daiteke edozein pantailan zaudela jokuatik irtetzeko aukera egotea adibidez ESC tekla sakatuz. Gero ipiniko dizuet hori nola egin dezakezuen....
Bizitza bat baino gehiago izango balitu, bizitza kopuruaren kontua daraman aldagaiaren balioari bat kendu. Aldagai horren balio berria zero bada, hau da, bizitza guztiak agortu baditu, lehen esandakoa egin, hau da, pertsonaia desagartarazi eta GameOverPantaila erakutsi. Bestela, edo ezer egin gabe jarraitu, edo berriro hasierako baldintza batzuetara eraman pertsonaia... Ideia ona izan daiteke BizitzaKopurua Property bezala definitzea eta beraz konfiguragarria izatea...
Pertsonaia desagertarazteko kodea hauxe da:
this.Owner.Destroy();
Kontuz pertsonaia desagertarazi eginez gero ez baduzue beste pantaila batera zuzenean pasatzen. Gehienek egin duzue kamerak pertsonaia jarraitzea eta pertsonaia ez badago, script horrek failatuko baitu!
Beste edozien lekutik, funtzio horiek erabiltzeko, this.LevelSettimgs...erabiliz egin daiteke.
Adibidez:
this.LevelSettings.GameLogic.PuntuKopurua +=-1;
this.LevelSettings.PuntuKudeaketa.PuntuKopuruaErakutsi();
1- Level berria hutsik egotea nahi baduzue, Add->Resources: Level aukeratu eta Izen egokia ipini ondoren Create sakatu.
2- Pantaila berria beste Level baten antzekoa bada, beharbada interesgarriagoa izango da "Library"-n Level etiketa sakatu (edo "Level" bilatu) eta dagokion Level-a aukeratu, bere gainean eskuinekio botoiarekin sakatu eta menuan Duplicate aukeratu. Ondoren, Level berriari izena aldatu.(Menu berean Rename)
Level desberdinak editatu
Level bat editatzeko, Library-n "Level" bilatu edo Level etiketan sakatu eta dauzkazun Level guztiak agertuko zaizkizu. Nahi duzuna aukeratu eta betiko moduan, Spriteak, SpriteText-ak edota nahi dituzun elementuak joan sartzen.Interesgarria izan daiteke edozein pantailan zaudela jokuatik irtetzeko aukera egotea adibidez ESC tekla sakatuz. Gero ipiniko dizuet hori nola egin dezakezuen....
Jokuaren hasierako pantaila zein izan behar den definitu
Horretarako Library-n, "Game" bilatu eta bere gainean arratoia ipini. Bere properties leihoan, DefaultGameSetup osagaian "StartingLevel" ezaugarrian, dagoen izenean sakatu eta dituzun Level guztien artean aukeratu ahal izango duzu zein izango den hasieran kargatu behar dena.Nola egin Level bat karga dadin kodearen bidez
this.Space.LoadLevel(Level.Find("LevelIzena"));//Noski LevelIzena aldatu!
Nola amaitu jokua kodearen bidez
this.GameSession.Quit();
Zer egin pertsonaia hiltzen denean
Gure pertsonaia, etsai batekin talka eginez gero, hil beharko da, hau da, desagertu, baina horretaz gain, bizitza bakarra badauka, GameOverLevel pantaila ere agertu beharko litzateke.
Bizitza bat baino gehiago izango balitu, bizitza kopuruaren kontua daraman aldagaiaren balioari bat kendu. Aldagai horren balio berria zero bada, hau da, bizitza guztiak agortu baditu, lehen esandakoa egin, hau da, pertsonaia desagartarazi eta GameOverPantaila erakutsi. Bestela, edo ezer egin gabe jarraitu, edo berriro hasierako baldintza batzuetara eraman pertsonaia... Ideia ona izan daiteke BizitzaKopurua Property bezala definitzea eta beraz konfiguragarria izatea...
Pertsonaia desagertarazteko kodea hauxe da:
this.Owner.Destroy();
Kontuz pertsonaia desagertarazi eginez gero ez baduzue beste pantaila batera zuzenean pasatzen. Gehienek egin duzue kamerak pertsonaia jarraitzea eta pertsonaia ez badago, script horrek failatuko baitu!
Non ipini puntuen kontagailuak, bizitzen kontagailuak eta jokuaren kudeakertarako aldagaiak
LevelSetting objektuari esleitutako ZilchScript batean definitu aldagai horiek klase aldagai modura.
Izan daiteke "GameLogic" izeneko ZilchScript bat non aldagai horiek definitu ditugun, e.a.
Adibidez:
this.LevelSettings.GameLogic.PuntuKopurua +=-1;
this.LevelSettings.PuntuKudeaketa.PuntuKopuruaErakutsi();
Zure jokalaria plataformatik doala barrurantz jausten bada...
Irakurri ondoko estekan dagoen informazioa, ea horrela lortzen dugun konpontzea...
Tilemapekin bereziki gertatzen bazaizue, froga egizue "Mergeable" ezaugarria aktibo izaten tilemapa egiten duzuen bitartean.
Beste aukera bat da zuen pertsonaiaren collider-a aldatzea eta box edo capsule collider bat ipintzea MultiConvexMeshCollider bat ipinita badaukazue...
Arratoiarekin klik egitean sprite batetan ... beste Level batera pasatu
Horretarako, lehendabizi, spriteari Reactive izeneko gehigarria ipini beharko diozu.
Ondoren, ZilchScript berri bat sortu, MouseControl adibidez, (eta gero ez ahaztu sprite horri esleitzea!) eta bertan Initialize funtzioaren barruan OnMouseUp ebentoak jaso nahi dituzula adierazi:
Zero.Connect(this.Space, Events.MouseUp, this.OnMouseUp);
Ondoren, OnMouseUp funtzioa idatzi beharko duzu eta barruan gertatzea nahi duzun hori programatu, honela:
function OnMouseUp(event : ViewportMouseEvent) { //Kasu honetan, "Level1" deritzon Levela kargatuko dugu ...
this.Space.LoadLevel(Level.Find("Level1"));
}
iruzkinik ez:
Argitaratu iruzkina
Idatzi zure komentarioa. Laster argitaratuko dut. Mila esker!