NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Lukáš Prchal:17.7.2016 18:55

Ahoj, můj dotaz se týká ,pěšin".
Stále tvořím v GM Tower Defense, dost jsem se v něm naučil, a nyní bych chtěl vytvořit místnosti s různým stupněm obtížnosti(nízká, střední, vysoká).
No a pro každou místnost a v něm vyskytující se objekty bych chtěl, aby každej předmět měl v těch místnostech různý směr a napodoboval pěšinu, která je místnost od místnosti jiná.
Vyzkoušel jsem skoro vše, co se týká room_exists apod. ale nic nefungovalo. Nevíte tedy jak na to? Díky

 
Odpovědět
17.7.2016 18:55
Avatar
David Šercl
Člen
Avatar
David Šercl:18.7.2016 15:12

Nejsem si jist, jestli jsem to pochopil, ale používání tzv. PATHS není úplně šťastné řešení. Předpokládám, že chceš změnu trasy pro různý level obtížnosti. Já jsem kdysi tuto metodu využil skrz distance objektů.

 
Nahoru Odpovědět
18.7.2016 15:12
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Lukáš Prchal
TomBen:20.7.2016 10:17

Otázka je skutečně napsána tak, aby ji pokud možno nikdo nepochopil, ale přepokládám, že jde o to, jak v kódu objektu zjistit, v které místnosti leží. K tomu slouží proměnná room.

Takže v kódu něco jako:

if room==mistnost_lehka { path_start(cesta_1,1,0,1); //rozjeď se po trase 1 }
Nahoru Odpovědět
20.7.2016 10:17
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
TomBen
Tvůrce
Avatar
Odpovídá na David Šercl
TomBen:20.7.2016 10:19

Není žádný důvod, proč by použití paths bylo "ne úplně šťastné řešení". Zvlášť pro tower defense jsou paths jako dělané.

Nahoru Odpovědět
20.7.2016 10:19
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
David Šercl
Člen
Avatar
David Šercl:20.7.2016 10:45

Já si myslím, že Path prostě není nejlepší řešení. Kdysi jsem s tím zkoušel pracovat a pokud tu funkci použiješ s kombinací funkcí distance_to_point to funguje špatně. Kdysi jsem to zkoušel u hry kde lodě tzv. hlídkovali a pokud jsi se k nim přiblížil svou lodí, tak měli opustit path a přesunout se ke tvé lodi, následně pokud se od nich vzdálíš, tak ty hlídkové lodě místo toho aby se vrátili k místu kde se odklonili od path, tak se vrátili na začátek path. Máš pravdu, že v Tower defense se to zřejmě dá použít, ale dle mého názoru jsou Path nepratické, při dalším využití :)

 
Nahoru Odpovědět
20.7.2016 10:45
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Šercl
TomBen:20.7.2016 11:10

Tos je jenom špatně použil, uvidíš časem, že paths umí ušetřit spoustu práce. Zvláště pokud neumíš naprogramovat pohyb po parametrické křivce kódem. Schválně se tě zeptám, jak bys bez paths naprogramoval plynulý klikatý pohyb tak, abys ho mohl snadno upravit např. podle změny grafiky v pozadí.

Nahoru Odpovědět
20.7.2016 11:10
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
David Šercl
Člen
Avatar
David Šercl:20.7.2016 11:20

Netvdím, že jsem profík.
Pokud začnu zleva do prava:
x+=1;
if stav=1{
if y<=0{
stav=2;
}
y-=1;
}
if stav=2{
if y>=room_height{
stav=2;
}
y+=1;
}

Editováno 20.7.2016 11:23
 
Nahoru Odpovědět
20.7.2016 11:20
Avatar
TomBen
Tvůrce
Avatar
TomBen:20.7.2016 11:42

Jo, to je ukázkově špatně.

Za prvé: měl bys psát podmínky if čitelněji.
Za druhé: pro komplexnější podmínky používej else nebo switch.
Za třetí: piš stručné komentáře ( vyplatí se to )
Za čtvrté: měl jsem na mysli obecný plynulý pohyb definovaný několika body něco jako se snažíš vyrobit v tom RTS projektu, kde s tím máš zjevně taky problém

Nahoru Odpovědět
20.7.2016 11:42
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
David Šercl
Člen
Avatar
Odpovídá na TomBen
David Šercl:21.7.2016 15:23

Já ti nebudu oponovat, každý má svůj typ psaní kódu, tohle se jednoznačně říct nedá. Já jsem ti už předtím psal, že nejsem profík, ale všechny ty věci co jsi tu napsal znám. Jinak s tím RTS problém nemám, není to první, o které jsem se poušel(jedno i částěčně fungovalo i když s rezervami, ono naprogramovat jednoduché enemy UI není žádný med), jen jsem tu hledal nějaké tipy.

 
Nahoru Odpovědět
21.7.2016 15:23
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Šercl
TomBen:21.7.2016 23:09

Proč bys mi neoponoval? Od toho přece diskuse je.
Ale odcházíme o d tématu Paths, takže se pokusím být stručný.

Viděl jsem tvůj kód a proto to mohu jednoznačně říct. Je špatně čitelný ve srovnání s jinými.
Profík je člověk, který bere za práci peníze. Z pohledu kódu jde o irelevantní věc.
Programovat RTS není med ( 100% souhlas ), problém s ním máš ( já ho viděl ) a je to opět zcela v pořádku, protože od toho tu itnetwork je. Dokonce i v případě, že se řešení nenajde, je dobré sdílet informace, které byly pracně získány.

Přes nesouhlasné mínusy, jsme nejspíš oba pochopili svá stanoviska. Za pár let se na své výtvory podíváš a uvidíš, to co vidím já teď. Momentálně máš pocit, že tě zbytečně kritizuji a možná máš pravdu. Já si totiž dost optimisticky myslím, že to člověku může někdy pomoct a proto to stojí za tu trochu protivnosti.

Nahoru Odpovědět
21.7.2016 23:09
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.