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!
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 - 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.
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...
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.
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.
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.
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.
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.
Feliratkozás:
Bejegyzések (Atom)