Tetris Classic

Ostatní jazyky GameMaker Ostatní Tetris Classic

Sdracův Robotris zde nedávno rozpitvaný v rámci tutoriálu na XNA framework měl přiměl přemýšlet o Tetrisu jako o programátorské výzvě, ačkoli jsem tuto hru, která má jedny z nejjednodušších pravidel, mylně považoval za snadnou k naprogramování. Není totiž vůbec snadné naprogramovat jednoduchou hru. Několik dní jsem nosil v hlavě různé představy, jak se daná věc může realizovat, až jsem u jedné zůstal o něco déle. Uchopil jsem téma v Game Makeru pomocí datové struktury grid a rozhodl jsem se dokončit svůj gamemakerovský Tetris do natolik finální podoby, aby se hodil k vyzkoušení.

Ve své verzi mám poměrně konvenční grafiku ( tím je míněn i přídomek Classic ) a kostky jsou tradičního tvaru. Moderní kabát nezastírá svou předlohu a snaží se udržet ducha původního Tetrisu, jak jej znám z doby, kdy jsem nadšeně hrál jeho osmibitovou verzi. Mírně jsem změnil systém růstu skóre a oproti Robotrisu nemá tabulka schopnost zápisu na web. Přiznám se, že nevím, jak by to v Game Makeru bylo možné, kromě externích dll. Zrušil jsem dokonce i zápis do souboru, který je sice snadný, ale když jsem si uvědomil, jak bude tabulka naplněna něčím jako T1, TT001, T22 a podobně, sprostě jsem se na to víteco. Takhle alespoň nejde snadno zfalšovat výsledky :-) a kdyby o to byl nějaký extrémní zájem, můžu to časem dopsat.

Ovládání v průběhu hry by mělo fungovat i pro joystick 1, ale nijak zvlášť jsem to netestoval. Doporučuji klávesnici, kterou lze používat jednoruč ( pouze kurzorové kl. ) nebo oboruč s kombinací kurzor + SPACE. Myslím, že to je víceméně instinktivní.

F9 dělá snímky obrazovky a umožní zvěčnit zajímavé situace ze hry.

Nepřiložil jsem zdrojové kódy hned ze dvou důvodů. Jednak píšu dost nečitelně, pokud vysloveně neplánuji psát tutoriál a druhak používám ikony vlastní výroby, které ale nejsou všechny ve zcela finálních a bezchybných verzích. Takový postup rozhodně není hodný následování.

Výsledek se ovšem celkem povedl a je hratelný natolik, že jsem ho místy víc testoval než programoval. :-) Ostatně můžete posoudit sami.

Pokud se bojíte nápisů v jednoduché angličtině, stiskněte F1 a přečtěte si český návod.


Galerie

Hra byla vytvořena v roce 2012.

 

Stáhnout

Staženo 397x (4.87 MB)

 

  Aktivity (1)

Hru pro vás napsal TomBen
Avatar
-

Jak se ti líbí článek?
Celkem (3 hlasů) :
4.666674.666674.666674.666674.66667


 


Miniatura
Všechny články v sekci
GameMaker - Ostatní

 

 

Komentáře

Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Jsem rád, že jsem tě inspiroval k tvůrčí činnosti :) Jakým způsobem funguje ta grid? Máš taky hrací plochu jako pole nebo ponecháváš spadlé kostky jako objekty? A jak jsi udělal rotaci?

Odpovědět 14.10.2012 14:25
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

Ds_grid je datová struktura v gml, která má stejný význam jako pole.
Je prováděna efektivněji sadou rychlých funkcí, které dělají s ds_grid
některé základní operace. Datové struktury se neukládájí s F5 vestavěným
savem. Ovládání je trochu podobné způsobu, jak gml řeší práci se souborem.
Při vytvoření se přiřadí pointer, kterým se cpou funkce. Po práci bys měl
všechna ds prohnat destrukcí. Na něco je to dobré, ale má to své mouchy.

Všechno je tam jako pole. Objektem je hrací plocha, která jen zobrazuje
výsledek operací. Na rotaci jsem se vyprd, napsal jsem si editor a kostky
v něm naklikal. Teoreticky bych tím mohl kdykoli vytvořit atypické kostičky
např. pyramida, velké S a podobně.

Bohužel jsem ještě našel neošetřenou chybu - pokud nahraješ tak málo,
že se nezapíšeš do tabulky, hra se neposune nikam a jediné východisko
je klávesa R, která ovšem smaže i tabulku.

Odpovědět 14.10.2012 14:56
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Redaktor
Avatar
TomBen:

Oprava chyby je odeslána a snad už tam nic nechybí. :)

Odpovědět 14.10.2012 15:09
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Зайчик
Člen
Avatar
Odpovědět 14.10.2012 15:10
Коммунизм для нашего будущего!
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Зайчик
TomBen:

Díky, snažil jsem se. :)

Odpovědět 14.10.2012 15:11
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
samo007
Redaktor
Avatar
 
Odpovědět 14.10.2012 20:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.