Váš Pacman

Ostatní jazyky GameMaker Bludišťovky Váš Pacman

Dnes si vytvoříme našeho vlastního Pacmana. Zde nebo v balíčku, který je ke stažení si můžete stáhnout potřebné sprity v balíčku pak i hudbu.

Nejlprve si přidáme sprity Pacmana (nezapomeňte zaškrtnout remove background):

Vytvořte si ve spritech nejlépe složku pacmans do které tyto sprity dejte ať je v tom nějaký systém.

Je důležité změnit každému spritu (pacmanovy a později i duchům) masku kvůli kolizi se zdmi a solid objekty vůbec. Proto vždy dejte modify mask zvolte rectangle a full image. Tím se vám vypne precise collision checking a všechny objekty bude hra vidět jako čtverce, tím se zjednodušší kolize a nebude docházet k zasekávání objektů ve zdech.

Otevřeme si objekt pacman a defaultní sprite mu dáme pacman_stand. Do create přidáme set variable kde nastavíme image_speed na 0.5, aby mlel pusou trošku pomaleji :)

Poté přidáme eventy left, right, up a down. Přičemž do každého z nich přidáme akce -> kontrola kolize kde nastavíme x na - 4 (touto rychlostí se bude pacman pohybovat), pouze pro solid a zaškrtneme relative. přidáme blok kam umístíme start moving in directory -> kde zaškrtneme šipku dle spěru a rychlost bude 4. A změníme sprit podle směru.

Do eventu outside room přidáme pouze wrap both directions

Do game start set lives to 3 , score to 0

Pak přidáme Score Caption Zde nastavíme výpisek score a životů který bude v programu nahoře v okně. Show score : show , score caption : Score :, show lives: show, lives caption : Zivoty : Show – znamená že se zobrazí, don’t show že se nezobrazí, caption je co se vypíše (doporučuji nepoužívat diakritiku) Poté potvrdíme.

A ještě přidáme event No more lives kam umístíme show hight score table a end the game.

Hru si můžete vyzkoušet přidáním roomu a umístěním pacmana do něj.

Nyní přidáme sprite zdi a vytvoříme solid objekt s tímto spritem. Do pacmana přidáme kolizi s tímto objektem a nastavíme mu na prostřední čtvereček a sprite změníme na stand.

Teď přidejte sprite jídla a hvězdičky a můžete i bonusové lízátko. Vytvořte objekty s těmito spritama a zatím v nich nic nenastavujte. Do pacmana přidejte event kolizi s jídlem, kde budeme kontrolovat počet -> kvůli výhře zařizovat přesun do dalšího levelu, přidávat skóre atd.

Vytvořte si nějakou mapku kam umístěte jídlo a pacmana a vyzkoušejte si hru.

Nyní přidáme duchy. Pro jednoduchost nám stačí jen tyto dva sprity.

Vytvořte si dva objekty -> ghost nebo monster a scared.

V monster do create přidejte start moving in a direction kde poklepte na levou, pravou, horní a dolní šipku a nastavte rychlost na 4 to samé udělejte v kolizi se stěnou. Do outside room přidejte wrap screen a nastavte hloubku (depth) na -2 ať nechodí pod jídlem.

Do scaret přidejte alarm ve kterém se bude měnit instance na původního ducha.

Do pacmana přidejte kolizi s hvězdičkou a přidáme nějaký zvuk (beeb používám), smažte instanci (other), změňte instanci (object duch) na scared a nastavte alarm v objektu scared na 160.

Přidejte ještě kolizi s duchem kde přehrajte zvuk dead, vložte sleep asi na vteřinu a půl, akci jump tu the start position (pro pacmana a příšeru která ho zabila -> other) změňte pacmanovi sprite na stand a odečtěte jeden život (set lives relative to -1).

V kolizi se scared přehrajte (catch), na other použijte jump to the start position a změňte jeho instanci zpět na ducha. Ke skóre přičtěte 100.

Nyní si otevřete bonusové lízátko. Do create přidejte akci jump to position a třeba do x napište -1000 ať vyskočí někam pryč. nastavte alarm 0 na 500. Do tohoto alarmu dejte akci jump to start a nastavte alarm 1 na 200. Do alarm 1 přidejte stejné akce jako jsou v create. A do posledního eventu kolize s pacmanem přidejte play sound bonus, set score relative to 200 a jump to position -1000 a alarm 0 zase nastavte na 500.

Hru si vyzkoušejte. Pacman je zdá se hotový, avšak ještě zdokonalíme inteligenci duchů přidáním objektu crossroad (kterému napamujte nějaký sprite) bude mít za úkol náhodně vybrat cestu při narazení na křižovatku. Odškrtneme mu visible a do ducha přidáme kolizi s tímto objektem. Bude zde podmínka která kontroluje jestli je duch přesně v prostředku křižovatky (check grid) . Kde nastavíme snap na 32x32 (podle velikosti všech spritů). A pod tuto podmínku přidáme start moving in a direction kde zaškrtneme zase šipky vlevo, vpravo, nahoru, dolů.

Tento objekt vložte na místa kde se dá jít více směry a není naproti zeď (křižovatky ve tvaru T nebo X). Pacman je hotov.


 

Stáhnout

Staženo 821x (150.69 kB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker

 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

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


 


Miniatura
Všechny články v sekci
GameMaker - Bludišťovky

 

 

Komentáře
Zobrazit starší komentáře (19)

Avatar
lejzrman
Neregistrovaný
Avatar
lejzrman:

hustí dík ale mě něak nejde ten měnič pošli radu dík8-);)

 
Odpovědět 11.4.2011 21:51
Avatar
sczdavos
Šéf
Avatar
Odpovídá na lejzrman
sczdavos:

Ahoj,
mohl by jsi mi popsat problém podrobněji nebo mi na email zaslat zdrojový kód abych se mohl podívat problému na kloub s potřebnými informacemi?

Odpovědět 12.4.2011 21:51
Čím více času dostaneš, tím méně ho máš.
Avatar
koblih
Neregistrovaný
Avatar
koblih:

Mě se pacman vždycky zadrhne když jdu kolem zdi , jak to mám přesně napsat do toho execute codu napsal ? Do eventu right jsem napsalx += 20
do left x -= 20 do up y -= 20 a do down y += 20 ale pořád to nefunguje;(.

 
Odpovědět 5.9.2011 20:28
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na koblih
David Čápka:

Tutoriál byl updatovaný, je nyní jednodušší a bez kódu, zkus si to podle něj udělat znovu nebo si stáhni dole výsledek :)

Odpovědět 5.9.2011 21:41
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
lukasjelinek
Neregistrovaný
Avatar
lukasjelinek:

Cojeto solid ??

 
Odpovědět 11.1.2012 19:00
Avatar
Darkmagic
Redaktor
Avatar
Odpovídá na lukasjelinek
Darkmagic:

Solid znamená pevný, samostatný objekt. Je to vlevé liště editovaného objektu, a pro takové kolize je to nutné zaškrtnout.

Odpovědět 11.1.2012 19:07
Nejhorší je, když myslíš, že víš
Avatar
Odpovídá na lukasjelinek
David Jančík [sczdavos]:

Dobrý večer,
solid určuje zda je objekt pevný či nikoli. Nastavuje se například pro zeď či nějaké zarážky. Důležitá změna je při kolizi -> pokud je objekt se kterým postavička koliduje solid postavička je stále vracena o pixel před kolizi takže to vypadá, že se zastavila. Pokud zarážka není solid proběhnou pouze akce v eventu kolize a postavička zarážkou normálně projde.

Odpovědět 11.1.2012 20:01
Čím více času dostaneš, tím méně ho máš.
Avatar
ivopolasek
Člen
Avatar
ivopolasek:

prosím pomoc, při pohybu pacmana (držení klávesy) mi pacman nemele hudou, co mám špatně, nebo co mám změnit??

Odpovědět 20.2.2013 15:43
prosím pomoc...
Avatar
TomBen
Redaktor
Avatar
Odpovídá na ivopolasek
TomBen:

Pravděpodobně v ikoně change_sprite nemáš speed nastavený na 1.
Případně můžeš mít špatně udělaný sprite.

Odpovědět 20.2.2013 17: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
polemes
Redaktor
Avatar
polemes:

Dobra hra (docela ;) )

Odpovědět  -1 23.5.2015 21:22
5 + 5 = 1010
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 10 zpráv z 29. Zobrazit vše