IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Nekonečný sprite - GameMaker

Následující tutoriál vám ukáže jak udělat iluzi nekonečně dlouhého spritu. Možnosti využití jistě vymyslíte samy. Dalo by se to využít jako dekorativní pruhy v menu, skrolující nápisy...
Takže co všechno budeme potřebovat? Hlavní je sprite. Sprite musí být větší, nebo stejně velký jako je room. Sice píšu větší, ale stačí když větší ve směru pohybu; tj. pro vodorovný pohyb širší a pro svislý pohyb vyšší. Origin spritu nastavíme libovolně. Ovšem z důvodu pozicování v Room Editoru bude nejlepší origin vycentrovat. Dále budeme potřebovat jeden objekt - obj_scroll. Objektu přiřadíme náš sprite.

Následující kód je určen pro vodorovný posun!
V Create nastavíme rychlost pohybu:

hspeed = 5;//rychlost je libovolná

A do Stepu vložíme následující kód:

if(hspeed > 0){
   if(x>=room_width+sprite_xoffset)
      x -= 2*sprite_width;
} else {
   if(x<=-sprite_width+sprite_xoffset)
      x += 2*sprite_width;
}

Pokud víte, že hspeed bude stálá , je možné vynechat jednu větev podmínky. Nepatrně se tím sníží náročnost kódu.

Následující kód je určen pro svislý posun!
V Create nastavíme rychlost pohybu:

vspeed = 5;//rychlost je libovolná

A do Stepu vložíme následující kód:

if(vspeed > 0){
   if(y>=room_height+sprite_yoffset)
      y -= 2*sprite_height;
} else {
   if(y<=-sprite_height+sprite_yoffset)
      y += 2*sprite_height;
}

Pokud víte, že vspeed bude stálá, je možné vynechat jednu větev podmínky. Nepatrně se tím sníží náročnost kódu.

To nejdůležitější přijde nakonec. Umístění instancí do roomu. V room editoru musíme umístit dvě instance objektu obj_scroll a to takovým způsobem, aby vyplnily celou šířku/výšku roomu. Toho nejlépe dosáhneme tak, že obě instance budou na krajích přesahovat mimo room.

Je absolutně nezbytné, aby obě instance přesně lícovaly; tj. nesmí mezi nimi být mezera, ani se nesmí překrývat! To by melo za následek nevzhlednou mezeru.


 

Všechny články v sekci
GameMaker - Efekty
Článek pro vás napsal sutr90
Avatar
Uživatelské hodnocení:
2 hlasů
Aktivity