Ügyességi játékok programozása
Pythonnal és Pygame-mel

Mielőtt nekivágnál...

Ha már tisztában vagy vele, hogy miért akarsz megtanulni programozni, és csak a hogyanját szeretnéd megtanulni, akkor átugorhatod ezt a részt, és kezdheted egyből azzal, hogy felinstallálod a szükséges szoftvereket.

Azért vagy itt, mert saját játékot akarsz írni? Kiváló! Itt van néhány videó azokról a játékokról, amiket diákok alkottak a kurzus végén.:

Videó: 2013-as őszi Játékprojektek
Videó: 2012-es őszi Játékprojektek
Videó: 2012-es tavaszi Játékprojektek

Amikor nekikezdesz programozni tanulni, hamarosan észreveszed, hogy olyan ez, mintha dolgoznál. Mindenki tudja, hogy sokkal egyszerűbb lenne átugrani a munkát és a Warcraft-ban, az Eve Online-on, vagy valamelyik másik játékban aranyat termelni, nemde? Nos, miért tanuljunk akkor programozni? Miféle előnnyel jár ez az ember számára?

0.1 Tanulj meg játékot készíteni és fizetést kapni érte

fig.money
Figure 0.1: Pénzeszsákok

Megtanulni játékot készíteni és fizetést kapni érte? Oké, Én nem fizetek ezért, de ha megtanulsz programozni, akkor elég sok ember fog érte. Itt egy recept arra, hogyan húzhatsz hasznot ebből:

  1. Tanulj meg játékotprogramot írni.
  2. Szerezz magadnak élményt azáltal, hogy elkészíted a saját játékodat.
  3. Jelentkezz állláshírdetésre.
  4. Profitálj!

Nemet mondanál erre a tervre???

Gondolkozz kicsit. Játszhatsz játékokkal, de ezt bárki megteheti. Jónak lenni egy videójátékban, szerintem nem nagy életcél, ha belegondolsz. Vagy megtanulhatsz játékokat készíteni. Ennek már több értelme van.

Miközben játékprogramot készíteni tanulsz, mondd el a szüleidnek és a kollegáidnak, hogy te számítástechikát tanulsz. Jobban hangzik.

0.1.1 Minek tanuljunk Számítástechnikát?

Fordítsuk le mindezt a pénz nyelvére. Az amerikai Főiskolák és Munkaadók Nemzeti Szövetsége(NACE) szerint a második legjobban fizetett diploma a mérnök-informatikus, a negyedik legjobban fizetett a számítástechnikus (kutató szak), és a nyolcadik az informatikus. A legtöbb hasonló diploma is technológiával kapcsolatos, valamint szoftverekkel:

Legjobban fizetett alapképzéses (BA diplomák)
Mester (MA) diplomák Átlagos fizetési ajánlat
olajmérnök $93,500
mérnök-informatikus $71,700
vegyészmérnök $67,600
számítástechnikus $64,800
repülőgép-mérnök $64,400
gépészmérnök $64,000
villamosmérnök $63,400
információs rendszerek menedzsmentje $63,100
mérnök technológus $62,200
felsőfokú pénzügyi $57,400

(Az adatok a NACE 2013 áprilisi Fizetési Felméréséből származnak.)

A mérnök-informatikus feladata, hogy integrálja a számítógépes programokat a hardverrel. Manapság,- a mérnöki munkaerő piacon, - a legtöbb ilyen jellegű munka igényel valamennyi programozói ismeretet is.

Mi az a számítástechnikus? Ez egy olyan diploma, amit olyan embereknek találtak ki, akik szeretik a számítógépeket és technológiát egyaránt, de nem igazán akarnak programozni. Reméljük, ez nem te vagy, mivel a könyv célja a programozás. A programozás móka, és ugyan ki akarná megcélozni csak a tizedik legjobban fizető állást a listán?

Miközben játékprogramozást tanulsz, a legjobban megfizetett négyéves diploma egyik tárgyát tanulhatod. És legyünk őszinték, azok a mérnök diplomák sokszor öt évet vesznek igénybe. A mérnök informatika a karrier szempontjából jó befektetés.

Azonban nem csak az IT diplomák kapnak magas fizetési ajánlatot, ezek a legkeresettebbek akkor is, ha még nem fejezted be a tanulást. A NACE felmérése szerint több, mint 56 százaléka a major diplomásoknak kap egy munkaajánlatot, miközben a szakot végzi. Ezért van az, hogy kevés hallgató tanul olyasmit, amire nagy a kereslet. Ahhoz, hogy megértsük azt, hogy a matematika és a mérnök informatika munkák milyen hasonlóak, nézzük meg az alábbi ábrákat, Ábra 0.2 és Ábra0.3.

fig.code_graphics1
Figure 0.2: STEM/Számítástechnikai tudományokat végzettek és munkaerőpiaci helyzetük. Forrás: code.org
fig.code_graphics2
Figure 0.3: Számítástechnikai munkák áttekintése. Forrás: code.org

Mi a helyzet a kétéves iskolákkal, ahol programozni tanulnak? A kétéves iskolák olcsó alternatívát jelentenek egy négyéves főiskolával szemben. Az út olcsóbb. De, szerintem a következő adatok egyfajta figyelmeztetést jelenthetnek, márha kétéves iskolába szándékoznál menni:

Átlagos fizetés iskolai szint szerint
szakma/technikum$65,408
valamilyen kurzus$75,701
gimnázium$79,370
katonai iskola$84,131
főiskolai diploma (4 éves)$85,815
mester diploma$97,811
doktori diploma$113,600

A Dice.com felmérése szerint, azok az emberek, akiknek egy kétéves képzésből adódó végzettségük van, 20 ezer dollárral kevesebbet keresnek, mint azok, akik a négyéves képzésből kerülnek ki. Tény, hogy rosszabbul jártak, mint azok, akiket négy év után kivet magából a főiskola. Ugyanúgy, mint azok, akik csak gimnáziumba jártak. Nos, gyerünk a négyéves iskolába, és teljesen kerüld el a kétéves képzéseket. (Az adatok a 2012/13-s Dice Technikai szakmák fizetési felmérés alapulnak. Megjegyzem, hogy a felsorolt fizetések nem az átlagos kezdő fizetések. A számok az összes munkavállaló átlagos fizetését jelenítik meg, a tapasztalatot nem mérték.) Természetesen, én úgy gondolom, hogy a Simpson College-nak van a legjobb főiskolai informatikai tanszéke a Középnyugaton.
http://simpson.edu/computer-science

0.1.2 Hozd ki a legtöbbet ebből a kurzusból!

Nem lehetsz a legjobb baseball játékos gyakorlás nélkül.

Értékesen szeretnéd eltölteni az idődet a kurzus alatt? Akkor válaszolj a fejezetek kérdéseire! Nehogy átugord őket! Ezek szükségesek ahhoz, hogy megérthesd az anyagot.

Csináld meg a labor gyakorlatokat! Ez még fontosabb. Ha úgy akarod megtanulni az anyagot, hogy csak elolvasod, az körülbelül annyira hasznos, mintha képzett kosárlabda játékos szeretnél lenni könyvek elolvasása révén.

Gyakorolj! Találkozhatsz olyan emberekkel, akiknek nem kell gyakorlás. Ez nem fair. Vagy te vagy okosabb, mint mások, de ők meg jobbak nálad, mert többet gyakorolnak. Ez sem fair. Ilyen az élet. Használd ki ezt a felismerést: gyakorolj.

Felvetted kurzusként? (a szerzőnek kurzusa van a tárgyból a Simpson College-ban - a ford.) Nagyszerű! Mennyi időt tudsz megtakarítani, ha csak bemásolod a válaszokat és laborokat az internetről? Vehetnél magadnak egy edzőterem bérletet is és elküldhetnél vele valaki mást, hogy edzen. Ez a kettő ugyanaz.

De most komolyan, mi a jószagúért kell lemásolni valaki más munkáját? Ha nem akarsz dolgozni vele, akkor hagyd az egészet, és eredj kitölteni egy McDonald's-os jelentkezési lapot.

Ha az olvasás nem a te stílusod, akkor is van megoldás, mivel az információk nagy része elérhetők videókon keresztül. Átugorhatod az egész szöveget, és egyszerűen végignézheted a kurzust egy Youtube lejátszási listán:
http://www.youtube.com/playlist?list=PL1D91F4E6E79E73E1
Mindazonáltal nem tudod megtanulni a dolgokat belefektetett munka nélkül. Olvass! Kérdezz! Csináld meg a labort! Kérdezz! Töltsd ki a munkalapokat! Kérdezz! Nézd meg a videókat! És kérdezz a tanárodtól!

0.1.3 Küldj nekem visszajelzést!

Ez az a tananyag, amit én használok a Simpson College főiskolai kurzusán:
Számítástechnika 150 A számítástechnika alapjai I
Van egy nyomtatott és egy online verziója az anyagnak. Az online verzió megtalálható az alábbi címen:
http://ProgramArcadeGames.com
A célja ennek a szövegnek, weboldalnak, munkalapoknak, laboroknak, és videóknak, az hogy megtanítsák a számítástechnika alapvető koncepcióit, és elindítsák a tanulókat azon a lehető leggyorsabb úton, melynek végén megírják a saját játékprogramukat.

Szeretnéd megtartani az ingyenes anyagokat?
Küldj egy levelet nekem!

Ha magántanulás vagy másik kurzus elvégzéséhez használod, kérlek írj egy levelet. Minél több ember használja ezeket az anyagokat, annál több erőfeszítést teszek majd én is azért, hogy fejlesszem.

Olyat is hallottam, hogy néhány középiskola használja ezeket az anyagokat. Ha te egy ilyen középiskolai tanuló vagy, és tetszik neked ez a tananyag, nyugodtan kövess minket a Simpson College-ban. Szeretnénk adni egy esélyt arra, hogy veled dolgozhassunk. Lépj kapcsolatba velem, vagy a felvételi osztállyal további információk reményében.

Ha bármilyen hibát, vagy hiányosságot észlelnél a könyvben, kérlek küldj egy e-mailt. Szeretném, ha ez olyan jó tananyag lenne, aminnyire csak lehetséges.

Dr. Paul Vincent Craven
Tanszékvezető, Computer Science Department
Simpson College, Indianola, Iowa, USA
paul.craven@simpson.edu

0.2 Hogyan installáljuk és kezdjünk dolgozni a Pythonnal

Ahhoz, hogy elkezdhessünk dolgozni, két programot kell telepítenünk, a Pythont és a Pygamet. A Python lesz a programnyelv, amiben programozni fogunk, és a Pygame lesz a parancsok könyvtára, ami segít nekünk abban, hogy egyszerű módon tudjunk játékokat írni

0.2.1 Windows-os telepítés

Videó: Python és Pygame feltelepítése

Ha olyan számítógépen dolgozol, amin már rajta van a Python és a Pygame, akkor ezt a részt át is ugorhatod. De, ha szeretnéd a Pythont és a Pygamet hozzáadni a Windows-os gépedhez, akkor se aggódj. Nagyon könnyű lesz.

  1. Futtasd a Python telepítőt, amit letölthetsz innen:
    ProgramArcadeGames.com/python-3.3.3.msi
  2. Futtasd a Pygame telepítőt, amit letölthetsz innen:
    ProgramArcadeGames.com/pygame-1.9.2a0.win32-py3.3.msi

Ha már mindent feltelepítettél, akkor kezdj el dolgozni a Pythonnal úgy, hogy kiválasztod az Integrált Fejlesztői Környezetet (IDLE), ahogyan azt az ábra is mutatja:0.4

fig.starting_python_idle
Figure 0.4: Kezdő Python

Az eredeti fájlok, amiket itt látsz, a Python letöltési oldalról valók
http://www.python.org/download/
...és a Pygame fájlok eredetileg innen származnak:
https://bitbucket.org/pygame/pygame/downloads

Megjegyzés: Sokféle Python és Pygame verzió létezik. Megnehezítheti a dolgokat, ha nem a helyes verziót használjuk. Én azt tanácsolom, hogy használd a linkeket, amiket megadtam, minthogy a Python vagy Pygame oldalakra menj. A Pygame a legidegesítőbb, mivel sokszor nincs frissítve, és a jelenlegi Python verzióval nem működik együtt fent megtalálható Pygame verzió. A leírás alapján, a legjobb letöltési oldal a Pygame-hez, a bitbucket.org oldal, ami a Pygame forráskódját is tartalmazza. A Pygame.org oldal nem a legjobb forrás ahhoz, hogy megtaláljuk a legfrissebb Pygame verziót.

0.2.2 Mac telepítés

Python és Pygame fut a Mac alatt is. Sosem csináltam oktatóanyagot Mac alatt. A fejfájások elkerülése végett, ami a korábbi tanulóim tapasztalata volt, amikor Pygamet akartak futtatni Mac alatt, azt tanácsolom, hogy inkább a Windows alatt emuláljátok.

0.2.3 Unix telepítés

A Unix és a Unixhoz hasonló disztribúciók Pygame csomaggal szoktak jönni, vagy könnyen feltelepíthetőek rá. Ha szeretnéd összehasonlítani a forrásokat, akkor én ezt az oldalt ajánlom:Linux Mint:

# szükséges csomagok letöltése:
sudo apt-get install mercurial libsdl1.2-dev libsmpeg-dev
sudo apt-get install libasound2-doc libglib2.0-doc python3-dev
sudo apt-get install libsdl-ttf2.0-dev  libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev
sudo apt-get install libavformat-dev libswscale-dev

# a fenti kódot klónozni:
hg clone https://bitbucket.org/pygame/pygame

# feltelepítés:
cd pygame
sudo python setup.py

Amire oda kell figyelni UNIX platform alatt, az az, hogy a te Python verziód lehet, hogy 2.x, és a kód nem fog úgy működni rajta, mint a példákban a könyvemben. Bizonyosodj meg róla, hogy a Python 3.3.x-t használod!

0.2.4 Az opcionális Wing IDE

A Python egy szerkesztővel és egy fejlesztői környezettel érkezik. Sajnos, ez nem a legjobb. Az én diákjaimnak az alábbi problémáik szoktak lenni, amikor a szabvány Python szerkesztőt használják:

Egyes számú panasz: Amikor több fájllal dolgozol, akkor nagyon nehéz nyomon követni az összeset. Nagyon könnyű elfelejteni a mentést, mielőtt a programot futtatnád. Ilyenkor a régi kód alapján fut le a program, ami elég zavaró bír lenni.

fig.bad_idle
Figure 0.5: Python Program Hanging in IDLE

Kettes számú panasz: Ha van egy programhiba, ami grafikai, akkor a Python program összeonlik, és felfüggetsztődik. Miután a program összeonlott, nehéz lezárni. A hibaüzenet, ami leírja, hogy mi történt, sokszor eltemetődik, és nehéz megtalálni, mi volt a probléma valódi oka.

A Wing nevű szerkesztő megoldást kínál az első panaszra, mivel tabulátorokkal lapozható szerkesztője van, mellyel minden fájl elérhető. Valamint elment minden fájlt, mielőtt lefuttatná azokat. Egy program fut a Wing debugger alatt, ami nem függesztődik fel a program lefagyásakor, ahogyan azt a kettes számú panasz leírta, hanem a szerkesztő azonnal a hibás sorra ugrik.

fig.good_wing
Figure 0.6: Python Program Hanging in Wing IDE

Mégha ez azt jelenti, hogy egy harmadik dolgot is telepítened kell, én erősen ajánlom, hogy a Wing szerkesztőjét használd. Van egy ingyenes verziója, a Wing IDE 101, ami itt található:
wingware.com/downloads/wingide-101/

Ugyan nem szükséges nagy csinnadrattát csinálni az üzleti verziójának, mindazonáltal az is nagyon jó. A program gyakran segít automatikus kitöltésekkel, és változónevekkel, ahogyan gépelni kezded őket. Ha van egy kis felesleges pénzed, akkor időt spórolsz magadnak azzal, hogy megvásárolod a fizetős verziót.

A weboldal videóiban használom a Python alapértelmezett szerkesztőjét és a Wing szerkesztőjét is. Ezeken kívül még számos egyéb szerkesztő elérhető:

Elég sok fejlesztő szokott azon vitatkozni, hogy "melyik szerkesztő a legjobb", de szerintem ez a kérdés olyasmi, mintha azon vitatkoznánk, hogy "melyik a legjobb vallás". A legokosabb dolog, ha lesz egy kedvenced, és ezt a kérdést hanyagolod.

0.3 A fájlkiterjesztések megtekeintése

Video: How to show file extensions

Jó ötlet, ha beállítod a Windowson, hogy láthasd a fájlkiterjesztéseket. Egy fájl általában ehhez hasonlóan néz ki Book report.docx. Ahol a .docx megmondja a számítógépnek, hogy ez egy Microsoft Word kompatibilis dokumentum. Az alapbeállítás a Windowsban elrejti a .docx kiterjesztést más programok elől. Ha programozol, akkor ez az alapbeállítás idegesítő lehet.

A windows 7 mutatja a fájl kiterjesztéseket, amikor megnyitod a számítógép irányítópultján. Keresd meg a "Mappa opciókat", azután klikkelj a "Nézet" tabulátorra, és utána állítsd át a "Az ismert fájltípusok elrejtését".

A Windows 8-nál, csak nyiss meg egy fájl böngészőt, nyomd le a Windows-E gombot. Azután klikkelj a "Nézet" tabulátorra, majd bizonyosodj meg róla, hogy "Fájlnév kiterjesztések" ellenőrizve vannak.


You are not logged in. Log in here and track your progress.