» Poradna » Zpět na dotaz

RE: hra v Delphi

Nargon  |  7. 5. 2013 19:27:35  |  Odpovědí: 0

Tak s myšlením ti možná trošku pomůžu. Takové ty "hlavní" stavební prvky: 1) herní plocha - Bude to dvourozměrné pole, jehož buňky budou nabývat 4 hodnot (nic, zed, had, jidlo) 2) had - Bude to jednorozměrné pole (nebo spíše dynamické pole co se může natahovat) a prvkem tohoto pole budou souřadnice (X,Y) toho jednoho článku hada v té herní ploše. Na indexu 0 (ikdyž ted nevím delphi to možná indexuje od 1, takže prostě na začátku) bude jeho hlava, a postupně bude růst směrem k vyšším indexům. 3) Pohyb hada - Vždy když se had pohne o 1 pozici, tak nejprve zkontroluješ zda poslední a předposlední článek hada nejsou na stejné souřadnici, pokud ne tak z herní plochy smažeš článek hada na souřadnici, která je uložená na konci toho "hadího pole" (tj jeho ocas), následně to pole projdeš od posledního prvku do druhého prvku. A v tom cyklu budeš kopírovat souřadnice z předchozího indexu na ten aktuální. (nelze to dělat od začátku - od hlavy, to by sis vše přepsal stejnou hodnotou) To posune téměř celého hada až na hlavu. A pak podle "proměných" určujících směr určíš novou pozici pro hlavu a zapíšeš jí do hadího pole na první index. Pak v herní ploše zkontroluješ zda na souřadnicích nové hlavy něco není a podle toho se zachováš. (když nic nebude, umístíš tam hlavu, když tam bude zed nebo jiná část hada, tak game over a když tam bude jídlo, tak tam zase umístíš hlavu a navíc protáhneš tělo hada o 1 článek (stačí když ten poslední článek zkopíruješ se stejnou souřadnicí a dáš ho na konec toho pole). 4) Reakce na klávesy - Doporučuju proměnou kde bude uložený směr pohybu hada. a při stisku šipky zjistit co se stisklo a podle toho tu proměnou nastavit. 5) Snědení jídla - když při pohybu hada dojde ke snězení jidla, tak je nutné vygenerovat nové na náhodných souřadnicích a umístit ho do herního pole. A náhodně souřadnice generovat tak dlouho dokud se netrefíš do místa, kde je "prázdno". Případně třeba vyhlásit výhru, pokud pro postup do dalšího kola stačí sníst X kousků. 6) Timer - celou hru bude pohánět timer (nebo nějaký časovač), který s intervalem cca 0,5s (změnou intervalu lze regulovat rychlost pohybu) bude spouštět tu funkci na pohyb hada. Tohle je imho takový ten "základ enginu" co bude potřeba. Jakým způsobem budeš zobrazovat herní plochu a jak budeš detekovat zmáčklé klávesy nechám na tobě. Ale když to co jsem tu popsal převedeš do kódu, tak budeš mít funkční prototyp. Pak to můžeš vyšperkovat třeba tím, že budeš mít různé mapy nějakých tvarů, nebo třeba přecházení mezi horní/dolní a levou/pravou hranou. případně zvuky, atd.

Jméno:
 

E-mail (nepovinné, adresa bude v zabezpečené podobě zobrazena u přezdívky):

:-D :-)) :-) ;-) :-P :-| :-/ :-( 3-[ :-O B-]

Pravidla diskuzí v Poradně webu Živě.cz

Zasláním příspěvku do Poradny souhlasíte s těmito pravidly:

  • Podmínky užívání služby informační společnosti
  • Informace o zpracování osobních údajů
  • Příspěvky se musí týkat tématu otázky.
  • Příspěvky nesmí obsahovat vulgární výrazy a slovní útoky na jiné osoby. Příspěvky nesmí poškozovat web Živě.cz ani jeho provozovatele.
  • Je zakázáno vkládat do příspěvků odkazy na stránky nabízející obsah porušující autorská a jiná práva.
  • Příspěvky nelze využívat k propagaci.
  • Příspěvky, které porušují pravidla diskuzí, budou odstraněny. Případně budou upraveny tak, aby neporušovaly pravidla diskuzí. V textu bude následně uvedeno, že příspěvky byly ze strany moderátorů upraveny.
  • Právo moderovat Poradnu mají pouze zástupci vybraní redakcí Živě.cz. Základní kontrola příspěvku probíhá ještě před jeho zveřejněním.
  • Živě.cz je soukromý web a provozovatel má při řešení sporů, které se týkají příspěvků v Poradně, vždy konečné slovo.

Kdy vám můžeme smazat příspěvek?

  • Když budete vulgární.
  • Když budete slovně útočit na ostatní.
  • Když se nebudete držet tématu dotazu.
  • Když budete poradnu zneužívat pro reklamu.
  • Když záměrně zneužijete cizí přezdívku.
  • Když budete porušovat zákony.
  • A když budete na takové příspěvky reagovat, protože se vždy mažou včetně odpovědí ve stromu.