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

Az előző két rész itt érhető el:
Játékok készítése a pygame keretrendszerrel - 2. rész
Játékok készítése a pygame keretrendszerrel - 1. rész

Ebben a részben a strandlabda programunkat fejlesztjük tovább újra. Ha valaki kipróbálta az előző rész végén olvasható javaslatomat, és betett egy újabb labdát a programba, akkor örömmel nézhette, hogy nem egy, hanem két lapda pattog az ablakban, ha netán volt annyira önálló, hogy többet is hozzáadjon, akkor több is repked ide-oda :D

Nos, szomorúan kell azonban konstatálnunk, hogy a labdák csak a falról pattannak vissza, egymásról nem :( Most ezen fogunk változtatni!

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.

Függvényekről

Végignéztem a bejegyzéseket, és meglepődtem, hogy még nem írtam semmit a függvényekről. Nos, ezt sürgősen pótolni akartam!

Elöljáróban annyit, hogy ugye nem felejtjük el, hogy pythonunkban minden objektum, ezért a függvényeink is azok, viszont a "főprogramunk" is objektum, ezért minden toplevel szinten kreált függvényünk egyben metódus is. Aki nem tudja mi az a metódus, ne foglalkozzon vele, hamarosan ejtünk róla szó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.