Rozvoj školy NRW - programovanie s GLOOP - výučbové projekty - združenia
Orientačná oblasť (skokové štítky)
- OOP s GLOOP
- Rýchly štart
- Výučbový projekt
- úvod
- Postupné programovanie
- Kontrolné štruktúry
- Vlastné triedy
- Združenia
- Dedenie
- dokumentácia
- inštalácia
- FAQ
- Kontaktná osoba
- Licencia
CMS_VALUE [3]
Zatiaľ čo vlastné triedy už boli zavedené a vybavené jednoduchými vzťahmi, nasledujúca časť sa zaoberá tokom údajov medzi niekoľkými objektmi. Doteraz mali objekty prístup k iným objektom, iba ak ich vytvorili sami. To už nestačí na zložitejšie problémy. Ak má mať objekt prístup k tomu, ktorý nebol vytvorený sám, musí byť v konstruktore alebo v metóde odovzdaný zodpovedajúci odkaz ako parameter. To znamená, že k rovnakému objektu je možné pristupovať z rôznych umiestnení pomocou rôznych identifikátorov. To si vyžaduje, aby študenti hlbšie porozumeli referencii, ktorú má rozvíjať nasledujúci modul.
materiálov:
- Úvodná fáza UV IV.1 (odkaz)
Sekvenčná scéna
Tento modul sa spúšťa pomocou nápadu klasickej hry. Má sa naprogramovať hra, v ktorej je v dolnej časti obrazovky viditeľné malé UFO a ktoré je možné pomocou klávesov so šípkami hráč posúvať doľava a doprava.
Asteroidy teraz prilietajú zhora, čomu sa treba vyhnúť. Ak je UFO zasiahnuté asteroidom, hra sa skončila.
Hra by mala byť pôvodne implementovaná iba s tromi asteroidmi. Ďalej sú všetky objekty v rovine XY, t. J. Sú modelované dvojrozmerne.
Obrázok 1: Plánovací náčrt herného projektu UFO
Analýza tohto problému rýchlo vedie k výsledku, že UFO sa skladá z niekoľkých objektov GLO, ktoré sa musia synchrónne pohybovať, ak sa UFO vyhne. Takéto zloženie je už známe.
Problém tu spočíva v detailoch, ak sa niekto spýta, ako by sa mala uskutočniť zrážka medzi UFO a asteroidom. Jedným z možných prístupov je spočiatku vylúčiť tento problém a implementovať iba kontrolu nad UFO a pohyb asteroidov. Zodpovedajúce modelovanie bez kolízie potom vyzerá takto:
Obrázok 2: Modelovanie jednoduchého prototypu bez kolízie
Zodpovedajúci program si môžu študenti vytvoriť sami alebo ho vytvoriť ako prototyp a analyzovať ho.
Je dobré rozšíriť program tak, aby sa asteroid, ktorý migroval zospodu z obrazu kamery, umiestnil do novej polohy za horný okraj rozsahu detekcie kamery, aby mohol opäť letieť smerom k UFO. . Týmto spôsobom je možné simulovať nepretržitý prúd prekážok iba s tromi objektmi.
Resetovanie asteroidu je možné zadať externe príslušnej súkromnej metóde.
Okrem toho je ešte potrebné uskutočniť zrážku. Každý asteroid by mal dostať prístup k UFO, aby mohol skontrolovať kolíziu a v prípade potreby aj metódu explodovať () UFO môže volať. Za týmto účelom je v konštruktore asteroidu odovzdaný odkaz na UFO a je ním uložený. Rozšírené modelovanie potom vyzerá takto:
Obrázok 3: Modelovanie jednoduchého prototypu s kolíziou
Metódy obnoviť pôvodné nastavenia() a splnené () sú súkromné metódy triedy asteroid a sú v Move () z asteroid zavolal. Metóda splnené () testuje kolíziu s UFO a vráti hodnotu pravda, ak existuje. Metóda Move () z asteroid potom vybuchne UFO.
Obrázok 4: Hra UFO v dvoch rozmeroch
Asteroid pri rozhodovaní, či dôjde ku kolízii, použije Pytagorovu vetu na výpočet vzdialenosti medzi ňou a UFO. Za týmto účelom musí pomocou metód nájsť polohu UFO gibX () a gibY () môže sa opýtať. Ak je vzdialenosť pod určitou prahovou hodnotou, predpokladá sa kolízia.
Na tomto mieste treba poznamenať, že ide o objekt typu UFO je teraz možné získať prístup z dvoch rôznych miest. Ďalej sa používajú dva odkazy, ktoré môžu mať dokonca rovnaký identifikátor, pretože sú v rôznych triedach.
Ak je hra s UFO dokončená týmto spôsobom, prvým krokom v expanzii by mohlo byť jej rozšírenie do tretej dimenzie. Kamera je naklonená o 90 stupňov a pohyb UFO okolo metód posunúť nahor () a posunúť nadol () rozšírené. Umiestnenie asteroidov sa tiež rozšíri o jednu dimenziu, rovnako ako je potrebné previesť výpočet vzdialenosti medzi asteroidmi a UFO na tri dimenzie.
Pretože teraz je tu podstatne viac priestoru na vyhýbanie sa, počet asteroidov by sa mal zvýšiť pomocou poľa. Výsledkom môže byť simulácia ako na obrázku 5.
Obrázok 5: Hra UFO v troch rozmeroch
Je samozrejme možné zahrnúť aj zmenu rýchlosti hry, umožniť niekoľko zmeškaní pred ukončením hry alebo pridať laser, pomocou ktorého môžu byť asteroidy vyhodené z ich obežnej dráhy.
prehlbovanie
S cieľom prehĺbiť princíp viacnásobného odkazovania na objekty je k dispozícii niekoľko projektových nápadov, ktoré sú založené na podobnom modelovaní ako hra o UFO.
Alternatívou je projekt chytania lopty. Tri lopty sa pohybujú po štvorcovom ihrisku. Keď sa dostanú na okraj poľa, zmeňte smer tak, aby neopúšťali pole. Hráč ovláda malú lapačku cez hracie pole a má spôsobiť kolíziu s loptičkami a týmto spôsobom ich „chytiť“. Ak sa guľka zachytí, zmizne. Keď sú chytené všetky lopty, hra sa skončila.
Chytajúci box je ovládaný hráčom tak, aby mohol pomocou klávesnice určiť nový smer pohybu boxu. Box potom sám beží ďalej príslušným smerom. Ak hrozí opustením poľa, automaticky tiež zmení smer.
Obrázok 6: Plánovací náčrt projektu Kugelfangen
Modelovanie tohto projektu by malo zahŕňať triedy Pasca na guľky, Guľka, box a zápalkové pole zahrnúť. Modelovanie v kontexte knižnice pier a myší alebo v prostredí Greenfoot sa zvyčajne zaobíde bez triedy zápalkové pole, pretože interpretujú obrazovku ako hracie pole. Pretože knižnica GLOOP nemá obrazovku, musí sa tu vyvinúť samostatná trieda. Možné modelovanie by mohlo vyzerať takto:
Obrázok 7: Modelovanie projektu úlovku lopty
Vytvorením objektu triedy Pasca na guľky hra sa začína. Vytvorí všetky ostatné objekty a zavolá metódu pre krabicu a tri guľôčky v animačnej slučke presunúť () na. Metóda v závislosti od položky na klávesnici setMovement () zavolal box. Nový smer pohybu skrinky sa na ňu prenáša pomocou dvoch parametrov pVX je zložka pohybu v smere X a pVZ zložka pohybu v smere Z. Hra je teda vymodelovaná do roviny XZ. Pri pohybe box aj lopta kontrolujú, či dosiahli hranu hracieho poľa. Za týmto účelom môžu získať prístup na hracie pole a dopytovať sa po jeho šírke a hĺbke. Lopty tiež kontrolujú, či nedošlo ku kolízii s boxom a či nie sú neaktívne alebo neviditeľné.
Hra končí, keď sú všetky lopty neaktívne.
Nasledujúci zdrojový kód predstavuje metódu pohybu lopty:
Metóda zdrojového kódu pohybu guličiek
Hotový výsledok môže potom vyzerať ako na obrázku 8.
Obrázok 8: Modelové riešenie projektu Kugelfangen
Samozrejme, pomocou poľa možno ľahko vytvoriť viac ako tri loptičky. Tiež je možné upraviť pravidlá hry. Napríklad krabica nemohla pri opustení poľa automaticky zmeniť smer, ale spadnúť cez okraj a tým ukončiť hru. Môže byť tiež nainštalovaný počítadlo bodov. Keď sa dosiahne určitý počet bodov, hra by sa potom mohla skončiť. Pred dosiahnutím tohto počtu bodov sa stále objavujú nové gule.
Okrem týchto dvoch projektov existuje veľké množstvo ďalších možností na precvičenie objektových vzťahov tohto typu. Napríklad auto mohlo jazdiť lesom alebo biliardový stôl mohol byť vybavený tikajúcimi loptičkami.
Obrázok 9: Vedenie vozidla a biliard ako ďalšie možnosti špecializácie
- QUA-LiS NRW
- Odborného vzdelávania
- Štandardné zálohovanie
- ďalšie vzdelávanie
- Ochrana dát
- odtlačok