Meeskond "Pacman": Difference between revisions
No edit summary |
|||
(17 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
*Rühma liikmed ja ülesanded | *Rühma liikmed ja ülesanded | ||
**Andrus Reedla - idee, programeerimine, mängu algne graafika | **Andrus Reedla - idee, programeerimine, mängu algne graafika | ||
**Andres Mill - idee, wiki, programmeerimine | **Andres Mill - idee, wiki, programmeerimine, heli | ||
** | **Peeter Paan - programmeerimine, graafika | ||
**Priit Siimo - programmeerimine, graafika, versioonihalduse tarkvara | **Priit Siimo - programmeerimine, graafika, versioonihalduse tarkvara | ||
Line 11: | Line 11: | ||
=Mäng= | =Mäng= | ||
* Install fail: | |||
** .rar: http://web.zone.ee/Pacman/Pac-Man.rar | |||
*zip: http://web.zone.ee/Pacman/ | ** .zip: http://web.zone.ee/Pacman/Pac-Man.zip | ||
*rar: http://web.zone.ee/Pacman/ | * Lähtekood: | ||
** .rar: http://web.zone.ee/Pacman/Pac-Man_kood.rar | |||
** .zip: http://web.zone.ee/Pacman/Pac-Man_kood.zip | |||
* | * Dokumentatsioon: http://web.zone.ee/Pacman/doc/default.htm | ||
* | |||
==Pacmani paigaldamise juhend== | ==Pacmani paigaldamise juhend== | ||
* Laed mängu alla aadresilt | * Laed mängu alla aadresilt http://web.zone.ee/Pacman/Pac-Man.rar või http://web.zone.ee/Pacman/Pac-Man.zip | ||
* Pakid allalaetud | * Pakid allalaetud mäng lahti. | ||
* Avad lahtipakitud mängu kausta ja avad sealt programmi setup.exe | * Avad lahtipakitud mängu kausta ja avad sealt programmi setup.exe | ||
* Kui su arvutis puudub .NET Framework 4, siis hakatakse kõigepealt paigaldama seda. | * Kui su arvutis puudub .NET Framework 4, siis hakatakse kõigepealt paigaldama seda. | ||
Line 36: | Line 35: | ||
**Klahv Esc - Mängu ajal avab resume menüü / Nupp High Scorest väljumiseks | **Klahv Esc - Mängu ajal avab resume menüü / Nupp High Scorest väljumiseks | ||
**Klahv C - High Score tühjendamine eelnevatest mängu tulemustest | **Klahv C - High Score tühjendamine eelnevatest mängu tulemustest | ||
*XBOXi pult: | *XBOXi pult: | ||
Line 51: | Line 48: | ||
=Meie Pacman= | =Meie Pacman= | ||
==Kirjeldus== | |||
Meie Pacmanil on üks map, aga 10 erinevat levelit. Paarituarvulistel levelitel 3, 5 jne saab Pacman endale ühe vastase juurde ja paaris arvulistel levelitel muutuvad kollid kiiremateks. Lisaks muutub igas levelis Pac-punktide eest saadav score’i suurus. Iga leveli Pac-punkti söömine on võrdne leveli number korda 10. Näiteks on käsil viies level, siis on iga viienda leveli Pac-punkti väärtus 5*10 ehk 50 punkti. Lisaks tavalisetel Pac-punktidele on laburündis kolmnurgad, mis annavad Pacmanile võime panna vastased kartma ning seisma, kui ta nendega kokku põrkub, mille eest teenib mängija 1000 punkti. Juhul, kui Pacman põrkub vastasega kokku ajal, kui koll ei karda teda, siis kaotab Pacman ühe elu ning kollid alustavad taassünniga ja Pacman jätkab sealt, kus ta surma sai. | |||
==Vaated== | |||
Mängul on neli vaadet. Esimene vaade on peamenüüvaade, kus on võimalik alustada uut mängu, näha punktitabelit ja väljuda mängust. Teine vaade on mänguvaade, kus on võimalik mängida Pacmani mängu. Kolmas vaade on resume-menüüvaade, mis avaneb siis, kui vajutada mängu ajal Esc klahvi. Sellest vaates on võimalik minna tagasi mängu juurde, vaadata punktitabelit, alustada uut mängu ning väljuda Pacmanist. Neljas vaade on High Score vaade, mida on võimalik avada peamenüüvaatest ja resume-menüüvaatest lisaks avaneb see vaade automaatselt peale mängu lõppemist. Punktitabelivaates on võimalik vaadata suurimaid tulemusi mängus ning kustutada klahvi c abil kõik tulemused. | |||
= | =Logi= | ||
= | ==26. september== | ||
Esimene koosolek, kus osalesid Andrus Reedla ja Andres Mill. Arutasime, mis mängu võiks seoses XNA projektiga teha. Sõelale jäid Xonix ja Pacman. Lõpuks valisime Pacmani ja lõime meeskonna Pacman, kuhu kuulusid algselt Andrus Reedla ja Andres Mill. | |||
= | ==27. september - 29. september== | ||
XNA Game Studio 4.0 paigaldamine ning Internetist erinevate näidete otsimine. Lisaks proovisime midagi ise teha. Andrus alustas kohe Pacmani tegemist. Pani ta ekraanil lihtsalt liikuma ning Andres proovis teha Eneta lehelt saadud õpetuse järgi mängu. | |||
29. septembril toimus 2 koosolek, kus Andrus näitab enda tehtud koodi ning jagab seda Andresega. Edasisel perioodil loovad Andrus ja Andres mängule esialgse kaardi (map), kus on laburündi seinad ja Pac-punktid, mida Pacman on võimeline sööma. Pacman oli võimeline bugisena laburündis liikuma (teatud kohtades liikus Pacman läbi seinte). Andrus tegi algse mängu graafika. Kõik, mis oli siiani programmeeritud, ei ole jaotatud klassidesse. | |||
= | ==04. oktoober== | ||
Meeskonnaga liituvad Peeter Paan ja Priit Siimo. Andrus tutvustab neile ideed ja kirjutatud koodi ning jagab seda Peeter ja Priiduga. | |||
==05. oktoober - 12. oktoober== | |||
Meeskonnaga liitunud Peeter ja Priit ajavad seni programmeeritud asjad klassidesse. Nende poolt loodud klassid on MainClass, ManguObjekt, MOLiigutatav, MOLAnim. Peeter parandab Pacmani bugi liikuda läbi seinte ära. Sama hakkas ka Andres tegema, kuid jättis asja pooleli, kuuldes, et Peeter tegeleb sellega. Andrus uuendab Pacmani ja tema liikumist. Priit tegeleb sisuhalduse süsteemi otsimisega, milleks saab esialgu Dropbox. | |||
==13. Oktoober== | |||
Peeter loob uue klassi Elud, paneb ühe kolli laburünti jooksma. Selleks tegi ta bugise AI, millega kaasnes kolli kinni jäämine ning koll sõi Pac-punkte, mille eest sai mängija ise punkte juurde. Peeter tegi funktsiooni, mis joonistab elud, aja ja punktid paremal pool olevasse kasti. | |||
==14. oktoober== | |||
Peeter ja Priit töötavad koos klassi Koll kallal, mis on sarnane klassiga MOLiigutatav. Juurde on lisatud nüüd korralikum AI, millel on kaks režiimi – random liikumine ja jälitamine, mis hakkab toimima siis, kui Pacman on 150px raadiuse läheduses kollile. Andrus ja Andres töötavad selle kallal, et kaarti (map) hakatakse lugema failist maps.txt. | |||
==16. oktoober - 21. oktoober== | |||
Peeter lisab MainClassi uue static väärtuse Content, mille abil saab igas klassis laadida tekstuure, loob uue klassi manguKontroller, mis tegeleb mängu pausidega, kollide tegemisega, pacmani tegemisega ning suremise kontrollimisega. Andrus ja Andres tegelevad sama klassi juures levelite ja nende vahetumisega – paarislevelites suureneb kollide kiirus ja paaritutes kollide arv. Priit tektitab uued funktsioonid Update ja Draw meetodis olevast koodist. | |||
==22. oktoober== | |||
Andrus tekitab menüü kaks vaadet – tehakse vahet, kas tegu on resumemenüüga (mäng pooleli) või peamenüüga. Andres lisab top-score vaate, mida kuvatakse kohe pärast mängu lõppu ning on võimalik kuvada nii peamenüüst kui ka resumemenüüst. Top-scores kuvatakse 10 parimat tulemust. | |||
==23. oktoober== | |||
Peeter tegeles kollide random liikumise parandamisega, eemaldatud on bug, mis võimaldas kollidel „keelpuda kokku“. Priit arendab veidi edasi Andrese ja Andruse poolt varem tehtud levelite muutustega. Lisaks muudab ta veidi score süsteemi. Nüüd saab punkte vastavalt levelile – 10 * leveli number. | |||
==24. oktoober== | |||
Peeter parandab AI-d, lisab kollidele kartmise režiimi, selleks lisab mapile kolmnurgad, mille söömine annab Pacmanile võime süüa kolle ning mille järel kollid jäävad seisma 10 sekundiks. Priit teeb menüüdele tausta ja teeb mängule XBOXsi puldi toe. Andrus parandab Pacmani punktide söömist, nüüd peab Pacman täpselt punkti peal olema, et seda süüa. Lisaks lisab Andrus võimaluse kustuta tulemused top-scorest. Andres teeb juurde klassi manguHeli, mis võimaldab mängida mõningaid helisid. | |||
== | ==25. oktoober== | ||
Algab koodi kommenteerimine, viimistlemine ning pisemate vigade eemaldamine. | |||
=Klasside kirjeldused= | =Klasside kirjeldused= | ||
Line 68: | Line 95: | ||
*Koll – Klass, mis tegeleb kollide ja nende liikumisega. | *Koll – Klass, mis tegeleb kollide ja nende liikumisega. | ||
*MainClass – Klassi eesmärk on hoida enimkasutatud muutujaid, selleks, et neid saaks lihtsalt kõikjalt kätte. | *MainClass – Klassi eesmärk on hoida enimkasutatud muutujaid, selleks, et neid saaks lihtsalt kõikjalt kätte. | ||
*manguHeli - Klass, mis tegeleb helide mängimisega. | |||
*manguKontroller – Klass, mis tegeleb pausi, Pacmani, kollide ja mängu seisu andmete kontrolliga. | *manguKontroller – Klass, mis tegeleb pausi, Pacmani, kollide ja mängu seisu andmete kontrolliga. | ||
*ManguObjekt – Klass, mis hoiab endas põhilisi andmeid, nagu näiteks asukoht kaardil. | *ManguObjekt – Klass, mis hoiab endas põhilisi andmeid, nagu näiteks asukoht kaardil. | ||
Line 75: | Line 103: | ||
*Pacman – Klass, mis tegeleb Pacmani liikumise, elementide söömisega ja joonistamisega. Põhifunktsionaalsus saadakse klassist MOLiigutatav. | *Pacman – Klass, mis tegeleb Pacmani liikumise, elementide söömisega ja joonistamisega. Põhifunktsionaalsus saadakse klassist MOLiigutatav. | ||
*Score – Klass, mis töötleb ja joonistab punktide vaadet. | *Score – Klass, mis töötleb ja joonistab punktide vaadet. | ||
=Kasutatud materjalid= | =Kasutatud materjalid= | ||
* http://www.vcskicks.com/code-snippet/rng-int.php | |||
* http://xna-uk.net/blogs/offbyone/archive/2010/01/21/sound-in-xna-3-1-part-i.aspx | * http://xna-uk.net/blogs/offbyone/archive/2010/01/21/sound-in-xna-3-1-part-i.aspx | ||
* http://www.eneta.ee/SiteCollectionDocuments/vs/Veebistuudium_arendus.pdf | |||
* http://en.wikipedia.org/wiki/Microsoft_XNA | |||
* http://google.com |
Latest revision as of 23:41, 4 February 2012
Rühma liikmed ja suhtlus
- Rühma liikmed ja ülesanded
- Andrus Reedla - idee, programeerimine, mängu algne graafika
- Andres Mill - idee, wiki, programmeerimine, heli
- Peeter Paan - programmeerimine, graafika
- Priit Siimo - programmeerimine, graafika, versioonihalduse tarkvara
- Suhtlus rühmaliikmete vahel
Suhtlemiseks kasutasime peamiselt Skype'is loodud rühma. Skype'is arutasime jooksvaid küsimusi ning küsisime vajadusel abi rühmaliikmetelt. Lisaks toimusid ka mõned koosolekud, kus arutasime rühmaliikmete pakutud ideid ning jagasime tööülesanded omavahel ära.Mängu failide vahetamiseks kasutasime alguses Dropboxi ja hiljem, et säiliksid programmist ka vanemad versioonid, TortoiseSVN´i ja MyVersionControl'i kooslust.
Mäng
- Install fail:
- Lähtekood:
- Dokumentatsioon: http://web.zone.ee/Pacman/doc/default.htm
Pacmani paigaldamise juhend
- Laed mängu alla aadresilt http://web.zone.ee/Pacman/Pac-Man.rar või http://web.zone.ee/Pacman/Pac-Man.zip
- Pakid allalaetud mäng lahti.
- Avad lahtipakitud mängu kausta ja avad sealt programmi setup.exe
- Kui su arvutis puudub .NET Framework 4, siis hakatakse kõigepealt paigaldama seda.
- Kui .NET Framework on arvutis olemas, siis vajuta Install nuppu ning seejärel on mäng paigaladatud.
Mängus kasutatavad nupud
- Keyboardil:
- Noolenupp ülese - Liikumine ülese
- Noolenupp alla- Liikumine alla
- Noolenupp paremale - Liikumine paremale
- Noolenupp vasakule - Liikumine vasakule
- Klahv Enter - Kinnitab menüüdes mängija poolt tehtud valiku.
- Klahv Esc - Mängu ajal avab resume menüü / Nupp High Scorest väljumiseks
- Klahv C - High Score tühjendamine eelnevatest mängu tulemustest
- XBOXi pult:
- Back nupp - Mängu ajal avab resume menüü / Nupp High Scorest väljumiseks
- Start nupp -Kinnitab menüüdes mängija poolt tehtud valiku.
- Nupp Y - Liikumine ülese
- Nupp A - Liikumine alla
- Nupp X - Liikumine vasakule
- Nupp B - Liikumine paremale
Klassikaline Pacman
Pac-Man esitleti esmakordselt Jaapanis 1980. aastal. Pacman on mäng, kus Pac-Man (kollane ümmargune elukas) liigub mööda laborünti ja sööb seal Pac-punkte. Kui kõik punktid on söödud, siis liigub Pac-Man järgmisesse tasemesse. Pac-punktid on erinevad. Osa Pac-punkte annab lihtsalt punkte punktisaldole juurde ning teine osa teeb Pac-Manist nn Super Pac-Mani, kes suudab teatud aja jooksul süüa oma vastaseid. Pac-Manil on klassikaliselt neli vastast - Blinky, Pinky, Inky ja Clyde -, kes liiguvad mööda laburünti eesmärgiga Pac-Man kätte saada. Kui vastane põrkab kokku Pac-Maniga, siis kaob Pac-Manil üks elu ning alustab mängu taassünniga. Kui Pac-Manil on kõik elud otsas on mäng läbi.
Meie Pacman
Kirjeldus
Meie Pacmanil on üks map, aga 10 erinevat levelit. Paarituarvulistel levelitel 3, 5 jne saab Pacman endale ühe vastase juurde ja paaris arvulistel levelitel muutuvad kollid kiiremateks. Lisaks muutub igas levelis Pac-punktide eest saadav score’i suurus. Iga leveli Pac-punkti söömine on võrdne leveli number korda 10. Näiteks on käsil viies level, siis on iga viienda leveli Pac-punkti väärtus 5*10 ehk 50 punkti. Lisaks tavalisetel Pac-punktidele on laburündis kolmnurgad, mis annavad Pacmanile võime panna vastased kartma ning seisma, kui ta nendega kokku põrkub, mille eest teenib mängija 1000 punkti. Juhul, kui Pacman põrkub vastasega kokku ajal, kui koll ei karda teda, siis kaotab Pacman ühe elu ning kollid alustavad taassünniga ja Pacman jätkab sealt, kus ta surma sai.
Vaated
Mängul on neli vaadet. Esimene vaade on peamenüüvaade, kus on võimalik alustada uut mängu, näha punktitabelit ja väljuda mängust. Teine vaade on mänguvaade, kus on võimalik mängida Pacmani mängu. Kolmas vaade on resume-menüüvaade, mis avaneb siis, kui vajutada mängu ajal Esc klahvi. Sellest vaates on võimalik minna tagasi mängu juurde, vaadata punktitabelit, alustada uut mängu ning väljuda Pacmanist. Neljas vaade on High Score vaade, mida on võimalik avada peamenüüvaatest ja resume-menüüvaatest lisaks avaneb see vaade automaatselt peale mängu lõppemist. Punktitabelivaates on võimalik vaadata suurimaid tulemusi mängus ning kustutada klahvi c abil kõik tulemused.
Logi
26. september
Esimene koosolek, kus osalesid Andrus Reedla ja Andres Mill. Arutasime, mis mängu võiks seoses XNA projektiga teha. Sõelale jäid Xonix ja Pacman. Lõpuks valisime Pacmani ja lõime meeskonna Pacman, kuhu kuulusid algselt Andrus Reedla ja Andres Mill.
27. september - 29. september
XNA Game Studio 4.0 paigaldamine ning Internetist erinevate näidete otsimine. Lisaks proovisime midagi ise teha. Andrus alustas kohe Pacmani tegemist. Pani ta ekraanil lihtsalt liikuma ning Andres proovis teha Eneta lehelt saadud õpetuse järgi mängu. 29. septembril toimus 2 koosolek, kus Andrus näitab enda tehtud koodi ning jagab seda Andresega. Edasisel perioodil loovad Andrus ja Andres mängule esialgse kaardi (map), kus on laburündi seinad ja Pac-punktid, mida Pacman on võimeline sööma. Pacman oli võimeline bugisena laburündis liikuma (teatud kohtades liikus Pacman läbi seinte). Andrus tegi algse mängu graafika. Kõik, mis oli siiani programmeeritud, ei ole jaotatud klassidesse.
04. oktoober
Meeskonnaga liituvad Peeter Paan ja Priit Siimo. Andrus tutvustab neile ideed ja kirjutatud koodi ning jagab seda Peeter ja Priiduga.
05. oktoober - 12. oktoober
Meeskonnaga liitunud Peeter ja Priit ajavad seni programmeeritud asjad klassidesse. Nende poolt loodud klassid on MainClass, ManguObjekt, MOLiigutatav, MOLAnim. Peeter parandab Pacmani bugi liikuda läbi seinte ära. Sama hakkas ka Andres tegema, kuid jättis asja pooleli, kuuldes, et Peeter tegeleb sellega. Andrus uuendab Pacmani ja tema liikumist. Priit tegeleb sisuhalduse süsteemi otsimisega, milleks saab esialgu Dropbox.
13. Oktoober
Peeter loob uue klassi Elud, paneb ühe kolli laburünti jooksma. Selleks tegi ta bugise AI, millega kaasnes kolli kinni jäämine ning koll sõi Pac-punkte, mille eest sai mängija ise punkte juurde. Peeter tegi funktsiooni, mis joonistab elud, aja ja punktid paremal pool olevasse kasti.
14. oktoober
Peeter ja Priit töötavad koos klassi Koll kallal, mis on sarnane klassiga MOLiigutatav. Juurde on lisatud nüüd korralikum AI, millel on kaks režiimi – random liikumine ja jälitamine, mis hakkab toimima siis, kui Pacman on 150px raadiuse läheduses kollile. Andrus ja Andres töötavad selle kallal, et kaarti (map) hakatakse lugema failist maps.txt.
16. oktoober - 21. oktoober
Peeter lisab MainClassi uue static väärtuse Content, mille abil saab igas klassis laadida tekstuure, loob uue klassi manguKontroller, mis tegeleb mängu pausidega, kollide tegemisega, pacmani tegemisega ning suremise kontrollimisega. Andrus ja Andres tegelevad sama klassi juures levelite ja nende vahetumisega – paarislevelites suureneb kollide kiirus ja paaritutes kollide arv. Priit tektitab uued funktsioonid Update ja Draw meetodis olevast koodist.
22. oktoober
Andrus tekitab menüü kaks vaadet – tehakse vahet, kas tegu on resumemenüüga (mäng pooleli) või peamenüüga. Andres lisab top-score vaate, mida kuvatakse kohe pärast mängu lõppu ning on võimalik kuvada nii peamenüüst kui ka resumemenüüst. Top-scores kuvatakse 10 parimat tulemust.
23. oktoober
Peeter tegeles kollide random liikumise parandamisega, eemaldatud on bug, mis võimaldas kollidel „keelpuda kokku“. Priit arendab veidi edasi Andrese ja Andruse poolt varem tehtud levelite muutustega. Lisaks muudab ta veidi score süsteemi. Nüüd saab punkte vastavalt levelile – 10 * leveli number.
24. oktoober
Peeter parandab AI-d, lisab kollidele kartmise režiimi, selleks lisab mapile kolmnurgad, mille söömine annab Pacmanile võime süüa kolle ning mille järel kollid jäävad seisma 10 sekundiks. Priit teeb menüüdele tausta ja teeb mängule XBOXsi puldi toe. Andrus parandab Pacmani punktide söömist, nüüd peab Pacman täpselt punkti peal olema, et seda süüa. Lisaks lisab Andrus võimaluse kustuta tulemused top-scorest. Andres teeb juurde klassi manguHeli, mis võimaldab mängida mõningaid helisid.
25. oktoober
Algab koodi kommenteerimine, viimistlemine ning pisemate vigade eemaldamine.
Klasside kirjeldused
- APacMan – Klass, kus laetakse sisse mängu elemendid ning joonistatakse need välja.
- Elud – Klass, mis tegeleb eludega ning nende joonistamisega.
- Koll – Klass, mis tegeleb kollide ja nende liikumisega.
- MainClass – Klassi eesmärk on hoida enimkasutatud muutujaid, selleks, et neid saaks lihtsalt kõikjalt kätte.
- manguHeli - Klass, mis tegeleb helide mängimisega.
- manguKontroller – Klass, mis tegeleb pausi, Pacmani, kollide ja mängu seisu andmete kontrolliga.
- ManguObjekt – Klass, mis hoiab endas põhilisi andmeid, nagu näiteks asukoht kaardil.
- Map- Klass, mis tegeleb Mapi joonistamisega.
- Menu - Klass, mis tegeleb menüüde olekutega.
- MOLiigutatav – Klass, mis tegeleb Pac-Mani liikumise ning tema kokkupõrgetega kollidega.
- Pacman – Klass, mis tegeleb Pacmani liikumise, elementide söömisega ja joonistamisega. Põhifunktsionaalsus saadakse klassist MOLiigutatav.
- Score – Klass, mis töötleb ja joonistab punktide vaadet.