UpiPang Blog

2006.VI.21

Játszható verzió készült

Nos, elértünk egy fontos mérföldkövet: az első játszhatónak mondható változat elkészült:

  • Belekerült a hatszögletű és nagyot pattanó golyók családja. Éljen az objektumorientáltság: a Hexa osztály kódja szinte üres, mert a legtöbb tulajdonságát a Ball osztálytól örökli.
  • Felülről, mint az áldás, potyognak a golyók bizonyos időközönként. Még nincsenek különböző szintek, de a mostani nehézség szerintem kb a 20. szintnek felel meg. A bejövőfélben lévő golyókat a DarkBall oszály valósítja meg: szépen, apránként bearaszolnak a golyók, hogy aztán boldoggá tegyék a játékost. A DarkBall nem a Ball osztályból, hanem GameObject-ből származik, mivel a már pattogó golyókkal nincs közös tulajdonsága (pl nem lehet kilőni). A DarkBall élete végén legyárt egy Ball vagy Hexa objektumot.
  • Van keretünk és háttérképünk is! Így már egész jól néz ki a képernyő.
  • Minden golyónak pontosan egy apróléka "mágikus": ha kilövöd, kapsz 2 másodpercet, amíg a golyók nem támadnak. Ez idő alatt az új GamePause osztály kijelzi, hogy még mennyi időd van hátra.

A sok változtatás egy csomagban letölthető: upload:upipang5/upipang.tar.bz2 ; Windowsosok forduljanak a szokásos zip file-hoz.

Tagek:
 
Utoljára módosította UPi 2006.VI.21 12:38-n; 0 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Kipróbáltuk. Működik!

Ulmar, Surbá és jómagam kipróbáltuk az UPiPang többszemélyes változatát.

Jó. Működik.

  • Többen is játszhatnak egyszerre (nem ezért kezdtem el ezt az egészet programozni?) Egész jól néz ki, amikor 7 játékos kavar fel-alá a pályán, és telítik a levegőt szigonyokkal...
  • Egyelőre 49 szint van. Ezek eltérnek sebességben, a potyogó golyók sűrűségében és összetételében.
  • Pontszámok vannak. Meg életek. Ha ez utóbbi elfogy, a játék újraindul.
  • Elhalálozáskor a játékos kipottyan a képernyőből. Ez egész vicces.
  • Van már gamepad támogatás is.

Linuxosok örüljenek neki: upload:upipang6/upipang.tar.bz2

Windowsosoknak meg ott a zip file a szokásos helyén.

Tagek:
 
Utoljára módosította UPi 2006.VI.21 23:33-n; 5 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

2006.VI.22

Menü is kell

A tegnap esti partin a gombokat meg játékosok számát úgy állítottuk be, hogy szépen beírtam a program kódjába, amit kellett. Ez így házon belül a tökéletes megoldás, de azért 100%-osnak nem nevezném.

upipang7/tn_menu.jpg

Úgyhogy fogtam magam, és faragtam hozzá egy menüt, ahol mindezeket be lehet állítani. Azt akartam, hogy a menü minél minimálabb legyen méretben és infrastruktúrában egyaránt. Úgyhogy először elkezdtem írni függetlenül a program többi részétől, hogy izolált legyen, de aztán rájöttem: '''ha már úgyis itt van a GameObject-es infrastruktúra, akkor akár használhatnám a menühöz is. Utána pedig rögtön rájöttem, hogy akkor semmiből nem áll megcsinálni, hogy a menüben legyenek pattogó labdák a háttérben, úgyhogy lettek.

A MenuItem egy olyan GameObject, ami egy szöveget ír ki, és ahhoz is méretezi magát. Mindig egy ilyen objektum van kiválasztva, az még egy kék hátteret is rajzol magának (ez a legkönnyebb megoldás).

Egy probléma volt: a golyók folyton belógtak a szövegek elé. Hiába raktam elején a szöveget a @GameObjects tömb tetejére (azok rajzolódnak "legfelülre"), a golyók mindig beelőzték őket idővel. A következő egy sort tanulságképpen megosztom, hogy néha mennyire egyszerű megoldás van ilyesmikre:

  while (ref($GameObjects[$#GameObjects]) ne 'MenuItem') { unshift @GameObjects, (pop @GameObjects); }

Ez emberi nyelven annyit tesz: ha a legutolsó eleme a @GameObjects tömbnek nem MenuItem típusú, akkor tedd át a tömb elejére.

Problem Solved!

A menün és kívül a további változások:

  • Beépítettem a játékba Sadam zenéjét, nagyon jól illik hozzá. Kösz Ádám!
  • Némi takarítgatást végeztem a kódon.
  • A labdák sűrűbben jönnek, ha több a játékos.
  • "P" gombbal meg lehet állítani a játékot.

Rövid pislantás a TODO listámra:

  • Super Ball (kills everything or pauses for 8 seconds)
  • Gray Ball of Death (cannot be killed except with Super Ball)
  • Color the border during death sequence
  • Music, sound effects
  • More levels, game balance for multiple players
  • Extra life at 200.000 points
  • Message while paused
  • Smaller playfield height

A legújabb változat megtekinthető itt: linuxosoknak upload:upipang7/upipang.tar.bz2 ; windowsosoknak upload:UpiPang.zip

Tagek:
 
Utoljára módosította UPi 2006.VI.22 15:11-n; 1 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Mi legyen a neve a gyereknek??

Ezennel szavazást írok ki: Mi legyen a program címe? (Az UpiPang amolyan átmeneti, "working title"..)

Saját ötletem: Pang Zero

Tagek:
 
Utoljára módosította UPi 2006.VI.22 14:24-n; 1 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Az utolsó simítások

upipang8/tn_screenshot.jpg

Néhány változtatás még búcsúzóul: Van két új speciális labda. Az egyik a Szuper Labda, ami vagy 8 másodperc időt ad (amikor zöld), vagy elpusztítja az összes labdát (amikor arany). Gonosz ikertestvére, a Halál Labda (fekete színű) elpusztíthatatlan: ha eltalálod, akkor két ugyanolyan lesz belőle! Kétféleképpen lehet tőle megszabadulni: vagy megvárod, amíg magától meghal (ha fél percig nem piszkálják, akkor ez történik vele), vagy a Szuper Labda arany változatával le lehet szedni.

Egyelőre ennyi, szombaton megyek edzőtáborba, holnap pedig már nem fogok UpiPangBlogot írni.

Mindenkinek jó Pangelést kívánok!

Linux: upload:upipang8/upipang.tar.bz2 ; Windows upload:UpiPang.zip

Tagek:
 
Utoljára módosította UPi 2006.VI.22 22:25-n; 0 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.