Nekonečný sprite - game maker
Nasledujúci tutoriál vám ukáže ako urobiť ilúziu nekonečne
dlhého Spritu. Možnosti využitia určite vymyslíte samy. Dalo by sa to
využiť ako dekoratívne pruhy v menu, skrolující nápisy ...
Takže čo všetko budeme potrebovať? Hlavné je sprite. Sprite musí byť
väčšia, alebo rovnako veľký ako je room. Síce píšem väčší, ale
stačí keď väčšie v smere pohybu; tj. pre vodorovný pohyb širšie a pre
vertikálny pohyb vyššia. Origin Spritu nastavíme ľubovoľne. Avšak z
dôvodu pozicovanie v Room Editore bude najlepší origin vycentrovať. Ďalej
budeme potrebovať jeden objekt - obj_scroll. Objektu priradíme náš
sprite.
Nasledujúci kód je určený pre vodorovný posun!
V Create nastavíme rýchlosť pohybu:
hspeed = 5;//rychlost je libovolná
A do Stepu vložíme nasledujúci 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; }
Ak viete, že hspeed bude stála, je možné vynechať jednu vetvu podmienky. Nepatrne sa tým zníži náročnosť kódu.
Nasledujúci kód je určený pre zvislý posun!
V Create nastavíme rýchlosť pohybu:
vspeed = 5;//rychlost je libovolná
A do Stepu vložíme nasledujúci 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; }
Ak viete, že vspeed bude stála, je možné vynechať jednu vetvu podmienky. Nepatrne sa tým zníži náročnosť kódu.
To najdôležitejšie príde nakoniec. Umiestnenie inštancií do roomu. V room editore musíme umiestniť dve inštancie objektu obj_scroll a to takým spôsobom, aby vyplnili celú šírku / výšku roomu. Toho najlepšie dosiahneme tak, že obe inštancie budú na krajoch presahovať mimo room.
Je absolútne nevyhnutné, aby obe inštancie presne lícovali; tj. nesmie medzi nimi byť medzera, ani sa nesmie prekrývať! To by malo za následok nevzhľadnú medzeru.