Diskuze: Pohyb místností pomocí sledování objektu

Ostatní jazyky GameMaker GameMaker Pohyb místností pomocí sledování objektu

Avatar
Daniel Bernátek:

Zdravím,
je možné a jak, aby místo pohybování se místností myší, se místnost pohybovala podle objektu ve hře? Přesněji... Mám raketu a chci, aby tím jak létala vesmírem se pohybovala i mapa a nemusel bych tak dělat hromadu místností. Něco jako je mouse_x a mouse_y tak kdyby bylo třeba object_x a object_y :-D

 
Odpovědět 9.11.2014 12:28
Avatar
Šimon Raichl
Redaktor
Avatar
Šimon Raichl:

taky že jo, ale object.x a objekt.y, jsetli tě správně chápu.

 
Nahoru Odpovědět 9.11.2014 13:49
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Daniel Bernátek
TomBen:

K tomu se používají views (pohledy). Jsou v menu úpravy místnosti. Místnost uděláš velkou, view nastavíš na velikost běžného okna. Pak stačí zadat ve view sledování objektu ( object following ) a Game Maker bude všechno dělat za tebe. Jinak má samozřejmě každý objekt svoje souřadnice, jak už píše Šimon Raichl. Tohle jsou ovšem všechno základy pro úplné začátečníky.

Nahoru Odpovědět 9.11.2014 17:37
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
Odpovídá na TomBen
Daniel Bernátek:

Děkuji, moc jsi mi pomohl. Má to ovšem háček. Mám totiž objekt Raketa 4x a sice letící nahoru, dolu, doleva a doprava, aby se object "otáčel". Jak mohu vyřešit toto? Nějaký způsob jak nastavit otáčení objektu na základě stisknuté klávesy, tak abych mohl mít pouze jeden objekt, který dám do Object following? Díky

 
Nahoru Odpovědět 12.11.2014 15:41
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Daniel Bernátek
TomBen:

Otáčej raketu runtime při vykreslování a není důvod mít víc než jeden objekt.

Nahoru Odpovědět 14.11.2014 17:36
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
Daniel Bernátek:

Vím, že teď budu za úplného vola, tak se omlouvám, ale jak to udělat? :-D S GameMakerem pracuji již poměrně dlouho a zvládám i mnohem těžší věci, ale s tímhle jsem se prostě ještě nesetkal... Byl jsem zvyklý používat 4 objekty. Trošku jsem hledal, ale nenašel, stačí mě nakopnout, na zbytek už snad přijdu.
Díky

 
Nahoru Odpovědět 15.11.2014 12:19
Avatar
Druid
Redaktor
Avatar
Odpovídá na Daniel Bernátek
Druid:

Tak, nevím jak si to představuješ nebo jak to chceš mít řešený. Ale já bych to udělal takhle:

Vytvořil bych si objekt raketka a sprity jak raketka letí nahoru a doprava. Do ní bych vložil create event a do create eventu ikonku s kódem.

Do kódu bych zapsal:

spd=5 //(proměnná pro rychlost)
key_left=vk_left //doleva
key_right=vk_right //doprava
key_up=vk_up //nahoru
key_down=vk_down //dolu

Pak bych vložil step event, a do něj zase ikonku s kódem a tam jebneš něco jako http://pastebin.com/0L5f2fBm

(pokusil jsem se to co nejlépe popsat, takže se omlouvám pokud ti to přijde psaný jako pro blbečky :D )

Nahoru Odpovědět 15.11.2014 14:06
Život je tak trapný bože, jak uprdnutí do soulože.
Avatar
Druid
Redaktor
Avatar
Druid:

V tom pastebinu mám malinko pomíchaný xscale a yscale :D Ale myslim že to pochopíš a opravíš :D

Nahoru Odpovědět 15.11.2014 14:09
Život je tak trapný bože, jak uprdnutí do soulože.
Avatar
Dominik Hošic
Redaktor
Avatar
Odpovídá na Daniel Bernátek
Dominik Hošic:

Viděl jsem tu tvojí raketu a ten pohyb tam byl fakt něco :D, proto jsem ti napsal ukázku, jak bys to mohl udělat mnohem lépe.

if(speed > 0.5)
{
    sprite_index = spr_rocket_move;

    if(keyboard_check(vk_left) || keyboard_check(ord("A")))
    {
        image_angle += speed / 2;//otočení spritu raketky
        direction += speed / 2;//změna směru raketky
    }

    if(keyboard_check(vk_right) || keyboard_check(ord("D")))
    {
        image_angle -= speed / 2;//otočení spritu raketky
        direction -= speed / 2;//změna směru raketky
    }
}
else
    sprite_index = spr_rocket;

if(keyboard_check(vk_up) || keyboard_check(ord("W")))
{
    if(speed <= 10)
        speed += 0.1;
}

if(keyboard_check(vk_down) || keyboard_check(ord("S")))
{
    if(speed > 0.5)
        speed -= 0.1;
}

Projekt ke stažení(pro Game Maker Studio): https://s25.solidfilesusercontent.com/…etka.gmx.zip

Exe ke stažení(Ani nevím proč to sem dávám :D):
https://s21.solidfilesusercontent.com/…-1.0.0.0.exe

Nahoru Odpovědět 15.11.2014 15:44
Klient: Nefunguje mi internet co s tím uděláte? Operátor: a co vidíte na monitoru? Klient: No signal...
Avatar
TomBen
Redaktor
Avatar
TomBen:

Lidi, máte ty kódy takové nějak neúhledné. :-)

Viděl bych to nějak takhle:
https://www.dropbox.com/…v/Rocket.gmz?dl=0

Nahoru Odpovědět 15.11.2014 15: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.
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 10.