dodání ihned! nové
Hledáme programátora do rostoucího týmu ITnetwork.cz, 100% home office, 100% flexibilní pracovní doba. Více informací
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF
Avatar
PuGR
Člen
Avatar
PuGR:13.7.2019 12:15

Ahoj, nemáte nějaký skript nebo rady jak změnit Tiles na objekty, které budou mít stejný sprite jaký má daný tile?
Jde mi o to, že bych v roomu naházel jednoduše tiles tak jak si představuji.. pak by se spustila hra a v creatu by se všechny tiles změnili na objekty, které by měli stejný vzhled jako daný tile :)
Jde o ulehčení práce při tvorbě level designu.. Existují skripty na tvorbu autotile.. To však nechci, protože bych si rád vzhled naklikal sám.. Problém je, že v Game Maker Studiu 2 se snadněji vkládají tiles než kdybych vytvořil 30 různých objektů s různým sprite :) (nehledě na optimalizaci)

Pokud víte jak na to, tak je možné předělat určité tiles i na určité objekty? Aby se nepředělávali všechny třeba jen na jeden jediný objekt.. Představte si, že mám třeba ve hře 3 různé bloky/objekty, které mají různé kódy..


Napadlo mě použí tuto funkci..
tilemap_get_frame()
Měla by vracet index framu, který je vykreslován, ale primárně je to pro animované tiles, tak si nejsem jistý jestli by to šlo použít..
Moje představa je zkontrolovat všechny tiles v roomu, získat jejich id a index přesného obrázku a pak ty jednotlivé tiles vymazat a nahradit je objekty se stejným obrázkem / indexem.

Pokud někdo nemáte zrovna Studio 2, tak je k dispozici i nápověda online :)
https://docs2.yoyogames.com/index.html?…

 
Odpovědět
13.7.2019 12:15
Avatar
TomBen
Redaktor
Avatar
Odpovídá na PuGR
TomBen:14.7.2019 10:34

GMS2 sice nepoužívám ( vlastním licenci na GMS1 a nemám důvod ke změně ), ale vypadá to podle online helpu, že by to mělo fungovat celkem jednoduše:

Pomocí tilemap_get_at_p­ixel(map_id, x y) bys našel tile data podle polohy v roomu, pak vytvořil prázdný objekt, který by vykresloval tatáž data pomocí draw_tile. Celé by to šlo nacpat do jednoho skriptu, který by jako argumenty měl konkrétní xy polohu.

Ale asi se ti to výrazně zpomalí, když převedeš tiles na objekty...

Nahoru Odpovědět
14.7.2019 10:34
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
PuGR
Člen
Avatar
Odpovídá na TomBen
PuGR:14.7.2019 11:26

Moc nerozumím tomu objektu, který by vykresloval data pomocí draw_tile.. Myslíš to tak, že bych místo spritu vykreslil daný tile na souřadnice toho objektu? Potřebuji nahradit tiles objekty, protože těm objektům chci dát gravitaci a další podmínky.. Myslím, že u tiles by to bylo velice náročné... Navíc by měnili polohu podle toho co hráč dělá, takže bych musel dělat i pixel kolizi.. Kvůli optimalizaci bych jen hlídal, aby nebylo v roomu příliš těch objektů..

 
Nahoru Odpovědět
14.7.2019 11:26
Avatar
TomBen
Redaktor
Avatar
Odpovídá na PuGR
TomBen:14.7.2019 12:34

Aha, tydlevidle. Ne, že by to nešlo i tak řešit kolizní maskou na průhledném sprite, ale je to "pravou rukou zleva za hlavou" a celkem mizí výhodnost práce s tiles. Napsal bych si jednoduchý level editor a na tiles se vykašlal. Tiles jsou dobré právě jen na to, aby vykreslovaly pasivní grafiku. Vlastní systém level designu ti umožní dělat lepší věci bez komplikací. Napíšeš si právě ty features, které potřebuješ a žádné jiné.

Nahoru Odpovědět
14.7.2019 12:34
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.
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
PuGR
Člen
Avatar
PuGR:14.7.2019 13:30

To chápu, ale já se tomu věnuji jen ve volném čase. Mám to jako zábavu a než bych udělal slušný editor a tak, tak bych nějakou tu hru kterou plánuji ani nedokončil.. Všichni víme že čím víc se něco protahuje tím klesá šance na dokončení :) Proto mi přijde jako nejlepší řešení jen přepsat tiles již v existujícím editoru GMS2 za objekty.. V podstatě by ta samotná změna problěhla jen při startu levelu, takže jediné co by žralo výkon je hromada objektů.. Určitě by to šlo nějak naprogramovat, že by se jednotlivé tilesy chovali dle gravitace s kolizí a tak.. ale zaprvé jsem spíš pokročilý začátečník a za druhé by to zase zabralo ten čas :) Tady píšu hlavně proto, že potřebuji radu jak na to :) Klidně i nějakým pseudo kódem :)

 
Nahoru Odpovědět
14.7.2019 13:30
Avatar
TomBen
Redaktor
Avatar
Odpovídá na PuGR
TomBen:14.7.2019 15:43

Rozumím tomu, že chceš jít snadnou cestou. Ale jsem přesvědčen, že tahle snadná není. Hádám, že je tak jedna ku stu šance, že dosáhneš uspokojivého výsledku. Pokud se ti to povede zprovoznit, tak to tu určitě postni. Slibuju, že dám like. :-)

Nahoru Odpovědět
14.7.2019 15:43
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
PuGR
Člen
Avatar
PuGR:14.7.2019 17:35

Takže myslíš, že je náročnější sepsat kód pro změnu tiles na objekty než vytvořit vlastní editor, kde bych ty objekty stejně vkládal? :)

 
Nahoru Odpovědět
14.7.2019 17:35
Avatar
TomBen
Redaktor
Avatar
Odpovídá na PuGR
TomBen:14.7.2019 23:35

U čehokoli, co má být jiné ( chování, kolize, vzhled ) tě definice těch odlišností stejně nemine. Objekty můžeš lépe třídit, nechat dědit vlastnosti a tím jich ve skutečnosti může být jen několik. Editor může být jen pár řádků na vložení objektu ( typ nastavíš třeba kolečkem myši ) a pak save do texťáku. Level máš hotový. Klidně zkopíruješ celé části jako text a dáš jim jiný vzhled pomocí find&replace atd. Jo, přijde mi to jednodušší. Ale k ničemu tě nenutím. Klidně jdi svou vlastní cestou.

Nahoru Odpovědět
14.7.2019 23:35
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 8 zpráv z 8.