Diskuze: Vyhýbání se objektům
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Tohle dost záleží na ostatním kódu ( kódu pohybu a kódu zobrazování
).
Na běžné případy stačí umístit do EndStep eventu:
image_angle=point_direction(xprevious,yprevious,x,y);
Koukal jsem do nápovědy i po netu a ty kolize tam nikde nejsou moc vysvětlené(pro SOLID objekty). Dobře to funguje pokud nepoužiješ image_angle, pak se stává, že to buď klepe, nebo se to zasekne, či nesmyslně rotuje. Pokud zkusím tu budovu objed, tak se ta jednotka nesmyslně klepe. Funguje to jako standatní rts, označení levým tl. myši, pravým tl. myši je pohyb.
Ukázka projektu:
https://ulozto.cz/…arak-rts-gmz
Klikej odpovědi pomocí tlačítka Odpovědět, aby přicházelo oznámení a zkus trochu napravit gramatiku. Slovo objed mi krutě připomnělo, že je čas polední a bude třeba taky něco sníst.
Máš pravdu, že přímé natáčení image_angle záleží na pohybu a to jsem ostatně taky psal už v odpovědi. Pokud je pohyb sekaný, bude se i směr cukat. Pokud je pohyb plynulý, k cukání nedochází.
Taky mě to bije do očí, ale když si to slovo vyskloňuji, tak si řeknu
objed jako jedu okolo něčeho, ne? Mno asi jsem měl použít jiné slovo
Mno takže to vypadá, že dobře to funguje jen když kolidují dvě tzv.
kostky vedle sebe. S rotací je to funguje dost problematicky, mno ještě si s
tím nějak zaexperimentuji.
Občas není špatné použít vestavěné možnosti Game Makeru. Např. mp_grid.
Kdybys hledal tutoriál, tak zkus HeartBeastův:
https://www.youtube.com/watch?…
Jojo, o něm vím, má celkem pěkně udělané tutoriály . Už jsem to tak trochu vyřešil, sice jsem si přidělal o hodně víc práce, ale funguje to obstojně. image_angle už nevyužívám vůbec, pouze dle direction mám nadefinované 4 směry(sprite k nim přiřazené).
Asi sis vážně přidělal práci. S image_angle problém nebyl. I v tom tvém projektu se mi harvester otáčí správně a plynule. Jen blbě jezdí, protože funkce potencial_step kterou tam máš, často nenajde dobrou cestu.
Koukám, že tobě to jede v pohodě....a co jsi teda použil za příkaz? Jsem zkusil ty základní, ale s nimi mi to nefunguje (move_toward_point, mp_linear_step), a kombinaci:
STEP EVENT:
image_angle=direction;
END STEP EVENT:
image_angle=point_direction(xprevious,yprevious,x,y);
mi taky nefungovalo.
Už vím, mám trochu máslo na hlavě . Pathfinding to vyřeší krásně. Jinak dík za rady i kritiku
Ono jde udělat i z nespojitého pohybu plynulé otáčení tím, že se zvolí maximální velikost rotace během jednoho Stepu. Pak se objekt plynule otáčí a klidně i na místě. Většinou se používá funkce angle_difference, která vrací rozdíl v úhlech v nejkratším směru.
Kód by vypadal nějak takhle:
new_image_angle=point_direction(xprevious,yprevious,x,y);
image_angle=image_angle-(angle_difference(image_angle,new_image_angle)/10);
// kde číslo 10 dělá jemnost rotace ( čím vyšší, tím jemnější, ale taky pomalejší )
Zobrazeno 13 zpráv z 13.