Diskuze: Pohyblivé vícevrstvé pozadí

Ostatní jazyky GameMaker GameMaker Pohyblivé vícevrstvé pozadí

Avatar
Micinaua
Neregistrovaný
Avatar
Micinaua:

Zdravím, mám takový dotaz. Pracuji na 2D skákačce, ve které je nastavený view na hlavního hrdinu. Mým problémem je to, že potřebuji nějakým způsobem vytvořit několik vrstev pozadí, které by se pomalu posouvaly zároveň s pohybem hrdiny a zároveň cestovali s viewem hry. Např. že při pohybu hrdiny doprava, by v pozadí pomalu ubíhaly stromy a za stromy by ještě pomaleji ubíhaly hory... doufám že jsem to dostatečně popsal a je to alespoň trochu pochopitelné..

Prosím poraďte, já zatím na nic nepřišel.. :)

 
Odpovědět 25.11.2011 19:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Micinaua
David Čápka:

Přesně tohle jsem řešil, není nic jednoduššího, než si do roomu dát několik backgroundů. Potom je stačí v události pro šipky doprava a doleva u postavičky posouvat tímto způsobem:

background_x[0] -= 5;
(to by bylo pro první pozadí pro šipku doprava, pozadí 1 by se potom hýbalo rychleji a ty blíže ještě rychleji. Situace u šipky doleva je analogická se znamínkem +)

Nahoru Odpovědět 25.11.2011 20:56
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
Micinaua
Neregistrovaný
Avatar
Odpovídá na David Čápka
Micinaua:

Vynikající! Děkuji moc za tak rychlou reakci.. ;)

 
Nahoru Odpovědět 25.11.2011 21:29
Avatar
Micinaua
Neregistrovaný
Avatar
Odpovídá na David Čápka
Micinaua:

Ještě bych měl jeden dotaz: jak zajistit to, aby se pozadí přestalo hýbat, když view dosáhne okrajů místnosti? Předem děkuji ;)

 
Nahoru Odpovědět 26.11.2011 9:25
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Micinaua
David Čápka:

Čekal jsem ještě podobný dotaz :) Problém jistě bude i v případě, když si stoupnete před zeď a stiknete šipku, pozadí se bude hýbat, ale vy ne.

Asi bych si jednoduše vytvořil proměnnou old_viewx, která bude reprezentovat předchozí X souřadnici view. V Create události postavy bych jí nastavil na 0 (jinak to bude křičet, že jí nezná).

Potom stačí jen před posunutím pozadí zkontrolovat, zda se tyto proměnné nerovnají. Jakmile se view posune, hodnoty nebudou souhlasit, posuneme i pozadí a uložíme si novou hodnotu. Pokud jsou hodnoty stejné, view se od minulého kroku nepohlo a nesmí se hýbat tedy ani pozadí.

if (old_viewx != view_xview[0])
{
  background_x[0] -= 5;
  old_viewx = view_xview[0];
}
Nahoru Odpovědět 26.11.2011 9:54
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
Mici.naua
Člen
Avatar
Mici.naua:

Děkuji, frčí to jak má. :)

Můžu se jenom zeptat, existuje nějaká naučná literatura ohledně tvorby za pomocí těchto kódů? Jsem totiž v tvoření her amatér a zatím jsem využíval jenom ikonkového rozhraní drag-and-drop.. Chtěl bych se ale naučit více... :)

 
Nahoru Odpovědět 26.11.2011 10:19
Avatar
Nahoru Odpovědět 26.11.2011 10:30
Čím více času dostaneš, tím méně ho máš.
Avatar
Mici.naua
Člen
Avatar
 
Nahoru Odpovědět 26.11.2011 10:39
Avatar
Nahoru Odpovědět 26.11.2011 12:34
Čím více času dostaneš, tím méně ho máš.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Mici.naua
David Čápka:

V kódu lze udělat to, co pomocí ikonek, ale některé pokročilé příkazy v GM jsou JEN pomocí kódu. sczdavos napsal několikadílný tutoriál, který popisuje, jak pomocí kódu přepsat všechny ikonky v GM, pokud vás to zajímá, podívejte se na to. Ale musíte nejprve umět ikonky a není to úplně nutné, pokud děláte něco jednoduchého :)

Nahoru Odpovědět 26.11.2011 13:02
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.