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...