orbit object

Pokud si nevíte s něčím rady ohledně tvorby v Game Makeru - pište sem!
Odpovědět
BboyScary
Příspěvky: 221
Registrován: listopad 2, 2011, 6:33 pm
Facebook: https://www.facebook.com/BB-Scary-produkce-1161668
Bydliště: Kopřivnice

orbit object

Příspěvek od BboyScary » leden 13, 2017, 5:11 pm

Zdravím. chci ve své hře udělat kouzlo, kde vyšlu 4 objekty(např obj_orbit), které budou kolem mě obíhat ve stejné vzdálenosti od sebe. Neumím však nastavit každému zvlášť startovní pozici.

Objekt který obíhá:
create event

Kód: Vybrat vše

target = obj_player;
speed = 5;
length = 120;
place = 0;
step event

Kód: Vybrat vše

x = target.x + lengthdir_x(length, place);
y = target.y + lengthdir_y(length, place);
place += 5;
Tohle mi zajistí, aby objekt obíhal kolem obj_player. Když mu do create eventu dám jinou hodnotu za proměnou place tak má jinou startovní pozici, ale když jich tam mám více a každému dám jinou hodnotu tak se stejně všechny objeví na stejném místě.

zkoušel jsem např.

Kód: Vybrat vše

with (instance_create(x, y, obj_orbit)) {obj_orbit.place = 0};
with (instance_create(x, y, obj_orbit)) {obj_orbit.place = 90};
nebo

Kód: Vybrat vše

(instance_create(x+ 50, y, obj_orbit);
(instance_create(x-50, y, obj_orbit);
zkoušel jsem i další proměnou, kterou jsem dosazoval místo čísla a za ní připočetl (place = place_start;)
a pak dosadil with (instance_create(x, y, obj_orbit)) {obj_orbit.place_start = 0

Nic z toho nepomohlo. Mohl by jste mi zkusit někdo poradit? Pokud by mi to fungovalo, tak bych to ve hře použil víckrát než na jedno kouzlo.

Uživatelský avatar
katarina.ptg
Příspěvky: 37
Registrován: prosinec 7, 2016, 5:35 pm
Facebook: https://www.facebook.com/katarina.ptg

Re: orbit object

Příspěvek od katarina.ptg » leden 13, 2017, 9:33 pm

Kód: Vybrat vše

var i;
for (i = 0; i < 4; i += 1)
   {
   var createOrbit = instance_create(x, y, obj_orbit);
   createOrbit.place = i*90;
   }

BboyScary
Příspěvky: 221
Registrován: listopad 2, 2011, 6:33 pm
Facebook: https://www.facebook.com/BB-Scary-produkce-1161668
Bydliště: Kopřivnice

Re: orbit object

Příspěvek od BboyScary » leden 14, 2017, 2:33 pm

Tak tohle funguje úplně perfektně. Já jsem to udělal přes alarmy, že každý step se přidal jeden objekt a funguje to ale ten tvůj kód dost usnadňuje práci a je lehčí. Můžu ho tedy použít do své hry?

Uživatelský avatar
katarina.ptg
Příspěvky: 37
Registrován: prosinec 7, 2016, 5:35 pm
Facebook: https://www.facebook.com/katarina.ptg

Re: orbit object

Příspěvek od katarina.ptg » leden 14, 2017, 3:54 pm

Samozrejme ;)

Uživatelský avatar
DDL Blue
Živý stín
Příspěvky: 431
Registrován: srpen 6, 2011, 7:21 pm

Re: orbit object

Příspěvek od DDL Blue » leden 14, 2017, 6:50 pm

Podle mě je zbytečný dělat pro každou kouli vlastní objekt. Stačí ti jeden, co bude vykreslovat všechny koule. Budeš mít jednoduchou kontrolu nad všema efektama kouzla.

Taky jsem dělal něco podobnýho v jedný hře. Tam to fungovalo tak, že se vyčarovalo několik barevnejch koulí a ty se pak najednou poslaly na nepřítele.
Realizovaný jsem to měl tak, že se ty koule přidávaly postupně. Tzn. to udávání pozice vypadalo nějak jako

Kód: Vybrat vše

for (i=0; i<n; i++){
	spellEffPivotX[i] = x + dist*cos(360/n + time);
	spellEffPivotY[i] = x + dist*sin(360/n + time); //v podstate lengthdir s uhlem 360/n + cas

}
Takže když přibyla další, tak se ty koule víc shlukly a byly furt stejně daleko od sebe. Tuším, že se tam i zvětšoval trochu poloměr toho obíhání. A aby tam nebyly ty skoky v pozici těch koulí, když přibude další, počítaly se takhle pouze pozice, ke kterým byly koule "přitahovány" a jejich skutečná pozice se vyráběla v podstatě tím, co tady popisuje Seeker: http://www.velkejchytrak.cz/index.php?str=read&id=46 (to úplně první a neděs se toho nadpisu, je to easy ;) )

Výsledkem bylo to, že jsem koule vytvářel na pozici hráče a ony se plynule zařadily na tu svoji oběžnou dráhu. A navíc pak stačilo jen všem koulím nastavit tu cílovou pozici na nepřítele a ony mu hezky plynule šly dát co proto :).

Tamto, co tu vymýšlíte vy určitě bude bohatě stačit. Ale myslím si, že když tam ty koule vylítají tak nějak postupně, bude to hned vypadat o něco efektněji. Při konci kouzla pak můžeš třeba půl vteřiny zvětšovat poloměr oběhu těch koulí a dávat jim průhlednost, nebo tak něco, s těmahle věcma se dá vždycky suprově vyhrát a přitom je to jen pár proměnných na správných místech :bojovnik:
Zkoukněte moji hudební galerii ;). Nebo vyzkoušej můj generátor akordů!
Řikejte mi prostě Blue...

BboyScary
Příspěvky: 221
Registrován: listopad 2, 2011, 6:33 pm
Facebook: https://www.facebook.com/BB-Scary-produkce-1161668
Bydliště: Kopřivnice

Re: orbit object

Příspěvek od BboyScary » leden 15, 2017, 3:04 pm

Já jsem to měl i přes alarmy aby se každý vytvořil postupně ale zase aby se to celé stihlo tak šly celkem rychle po sobě, ale potřebuju aby to byly objekty, aby každý mohl ubírat zvlášť když narazí do nepřítele a tam mám nastavený rozsah min a max dmg náhodně.A navíc ty objekty jsou tam jen chvíli a pak se zničí, takže to hru moc nezatěží. Ale dík za ten odkaz tam si počtu. Myslel jsem že jsem na magazínu početl všechno ale tohle je pro mě nové :D

Uživatelský avatar
DDL Blue
Živý stín
Příspěvky: 431
Registrován: srpen 6, 2011, 7:21 pm

Re: orbit object

Příspěvek od DDL Blue » leden 16, 2017, 3:12 am

Jo, oukej, ono to dává smysl aby to byl objekt - v C++ bych z toho taky udělal další třídu. Ale GM je na ten objektovej model hrozně stupidní. Když sem dělal v GM, tak sem postupně od používání objektů dospěl k tomu, že sem třeba celou hru nabastlil do pár objektů. Mám dokonce hru, která na to vůbec nevypadá, ale je nabastlená v jednom objektu. Není to rozhodně správně, je to blbost, je to postup zpátky v čase, ale objektovej model v GM a spousta věcí v GML je oproti jiným jazykům vymyšlenej trochu hloupě, takže sem to dělal pak často stylem "fuck this shit, stejně na tom budu dělat jen tenhle víkend" a bylo to :D .

Jo, tenhle článek je takovej nenápadnej, protože z něho není na první pohled jasný, na co to vlastně je a Seeker to popsal možná trochu strašidelně. Ale ve skutečnosti je to úplně easy ztáležitost a uplatnění to najde na hrozný spoustě míst.
Zkoukněte moji hudební galerii ;). Nebo vyzkoušej můj generátor akordů!
Řikejte mi prostě Blue...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti