A következő címkéjű bejegyzések mutatása: játék. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: játék. Összes bejegyzés megjelenítése

Játékok készítése a pygame keretrendszerrel - 2. rész

Az előző bevezető rész után térjünk át most sokkal gyakorlatiasabb vizekre. Ismerkedjünk meg mélyebben a pygame.Surface objektumával.

Ahogy említettem már, a Surface egy olyan objektum, amely egy felületet reprezentál, amire rajzolhatunk. De nem csak rajzolhatunk rájuk, hanem betölthetünk képállományokat "beléjük", ezzel a játék egyes elemeit nem vagyunk kénytelenek a pygame nehézkes és soványka rajzolóképességeivel előállítani, hanem használhatunk komoly grafikai szoftvereket ezek elkészítésére.

Javaslom mindenkinek az Inkscape használatát, mert vektoros (emellett ópenszósz és ingyenes), így ha később változtatni akarunk a felbontáson, egyszerűen más mérettel exportáljuk ki a rajzainkat.

Fejlesszül tovább pattogó labdánkat, és csináljunk egy jobban kinéző labdát!

Játékok készítése a pygame keretrendszerrel - 1. rész

A játékok készítés komoly feladat több szempontból is. Először is a játékok intenzív interakciót követelnek meg a felhasználóval, hasonlóan a grafikus felületű szoftverekhez. A játék típusától és a játékmenettől függően megfelelően jól kell kinéznie, hogy közönséget kapjon, ezenkívül a játékoknak egy bizonyos szintű mesterséges intelligenciát kell nyújtania (gondoljunk akár egy szimpla amőbára). A játékoknak szórakoztatónak kell lenniük, mindamellett megfelelő kihívást kell nyújtania a játékosoknak. Ezek igen összetett követelményrendszert jelentenek.
A komoly és látványos játékok sosem egy ember munkájának az eredményei, hiszen a megalkotásukhoz szükséges szakmai ismeret annyira szerteágazó (nem beszélve az emberek saját adottságairól, tehetségéről), hogy azokat megfelelő szinten elsajátítani egy embernek egy életre szóló feladat - és akkor még semmit sem csinált. Ezeket a játékokat több emberből álló csapatok készítik (producer, designer, artist, coder, marketinges, webfejlesztő, és sok esetben PR-os is kell) igen nagy ráfordításokkal.
Ha valaki a játékiparban szeretne dolgozni, mindenképpen ki kell választania magának egy testhez álló szakirányt, majd keresnie vagy építenie kell egy csapatot. A játékfejlesztés kemény munka, ami lassan térül meg, hiszen néha egy játék fejlesztése több évig is eltart, addig finanszírozni kell a készítők bérét, és a fejlesztés infrastruktúráját.

pyFlood - logikai játék készítése színekkel

A napokban a Google Plus-on elérhető FloodIt! játék inspirálása nyomán elkészítettem saját verziómat pyFlood néven.
Nézzük át a kódját, hogy is működik...

Készítsünk HANGMAN játékot! - 5. befejező rész

 Sokak szerint a Tk felület idejét múlt, vagyis nem "trendi". Halomra dícsérik viszont ugye a gtk és a Qt képességeit. Én ugyan nem egészen értek egyet, mert  az kétségtelen, hogy a Qt egy hihetetlenül gazdag grafikus keretrendszer, a Tk felülettel is kiváló alkalmazásokat alkothatunk, úgy vélem minden eszközt használjunk a megfelelő feladatra.A Tkinter előnye, hogy egyszerű, ezért egyszerűbb dolgokhoz jóval könnyebben tudunk a segítségével guit faragni, mint pl. a Qt-val. Az egyszerűsége viszont rögtön a hátrányára válik, amint egy bonyolult felületet akarunk vele megvalósítani, ráadásul nincs gui szerkesztője mint a gtk-s Glade vagy a Qt-s Qtdesigner.
Láthatóan hangman programunk nem egy fene bonyolult valami, de az érdekesség kedvéért elkészítettem Qt alapokon is. Jelen előnye számunkra mindössze annyi, hogy a Qt "vászon" a Tk megfelelőjével szemben képes a grafikai elemek élsimítására, így sokkal szebben jelennek meg az akasztott alak vonalai.

Készítsünk HANGMAN játékot! - 4. rész

Programunk akkor lesz korszerű, ha nem konzolos módon működik, hiszen manapság már a tenyerünkben fogott telefonok is grafikus desktoppal rendelkeznek. Az egyszerűség kedvéért használjuk a már tárgyalt Tkinter modult, és készítsük el Hangman játékunk grafikus változatát.

Kockadobás probléma

Minap belefutottam egy érdekes esetbe. Sokfajta megoldást találhatunk a dologra, én ennél maradtam.

A probléma:
Egy rpg-szerű játék karaktergenerálásához a karakter tulajdonságait kockadobással kell megállapítani. Ehhez hatoldalú kockát használnak, de a dobálgatási idő lerövidítése érdekében egy kis program nyújtana segítséget.
Minden tulajdonság kockadobásos értékét úgy kapjuk, hogy dobunk 4x a kockával, a legkisebb dobást eldobjuk, majd a maradék hármat összeadjuk.

Készítsünk HANGMAN játékot! - 3. rész

Többnyelvűsítsük a HANGMANünket! A 21. században illő, hogy egy program képes legyen több nyelven is megjelenni. Elég sokféle dolgot találhatnánk ki erre a feladatra, de linux berkekben a GNU gettext megoldás terjedt el, ami talán nem a legjobb, de mindenestere közismert, könnyen implementálható, ráadásul szinte az összes elterjedt programozási nyelvhez létezik modulja, osztálya, akármilye.

Készítsünk HANGMAN játékot! - 2. rész

Folytassuk a kis hangman játékunkat! Az 1. részben elkészítettük a konzolos/terminálos változatunkat, ami működik megy szépen, de mégsem egy "rendes" konzolos program...

Hogy miért? Minden konzolos, linuxos program kezel paranccsori paramétereket, ha mást nem, akkor a --help és a --version opciókat. A --help vagy -h a program vagy parancs használatát írja le röviden, a -v vagy --version pedig a nevét és verziószámát írja ki.

Készítsünk HANGMAN játékot! - 1. rész

A legjobb tanulási módszernek azt tartom ha élő példán keresztül sajátítunk el valamit. Mivel a számítógépet használók az esetek nagy-nagy részében először a játékprogramokkal ismerkednek meg, talán a programozás elsajátításának is legjobb módja, ha egyszerű játékprogramocskák megírásával kezdünk neki.

Kezdésként a jól ismert Hangman játékot fogjuk elkészíteni, de objektumorientált szemlélettel. Az első működő változat linux terminálon fog futni, az utolsó viszont a népszerű Qt GUI-toolkit felülettel jelenik majd meg.