Chci se zeptat když mám v tower defence věž s dělem tak chci aby když
střílí aby se také na něj otočila. Hledal jsem tutoriáli jak na to ale
nic z toho mi nefungovalo, furt v tom byla nějaká chyba. Stačí mi kdyby
někdo napsal kód a napsal kam ho mám vložit. Předem dík.
Dal jsem to tam ale když jsem vyměnil mouse_x a mouse_y za tu potvoru po
kom má střílet tak je otočená jen jedním směrem a nehejbe se. Asi nwm jak
si to myslel.
On ti napsal možnost, jak to otestovat. Použij místo zaměření
příšery myš a pokud to bude fungovat, pak bude zřejmě problém s
příšerou (respektive s hledáním pozice příšery).
Tak jsem opravdu nevědel jak to mysel . Jinak když tam nechám myš
tak to funguje. Tím pádem asi nwm jak mám udělat aby se zaměřili na toho
na koho střílí.
Sry že tu jsem za takovýho vola ale já se timhle zabejval x
hodin,prohledával jsem tutorialy a zkoušej.Jsem z toho úplně vygumovanej a
vynervovanej protože nwm proč to nejde.
Koukám, žes ty tutoriály vzal pěkně hákem..
Když naklikáš do roomu stejný objekt několikrát, tak těm jeho
výskytům
se říká instance. Každá z nich má své číslo - id.
Toto číslo můžeš vidět v room editoru a některé funkce ti toto
číslo vrátí a umožňují ho použít.
( např. funkce instance_nearest, create_instance, atd. )
edit: Jinak doporučuji dělat pokusy na prázdném GM.
Když to vždycky namatláš do hry, nebudeš vědět, co nejede a proč.
Já ty tutoriály nebral hákem. Mám dokonce stáhnutý 3 tower enginy a
prostě nwm kterej kód nakazuje věžím to aby se na svůj cíl otáčeli. Já
jen chci aby mi s tim někdo poradil neboť v tom nejsem dobrej.
Chtěl jsem tím říct, že na to jdeš z opačné strany.
Hledat konkrétní řešení, když nerozumíš základům je špatná volba.
Můžeš mít staženo i padesát cizích kódů. U programování
potřebuješ
znát elementární postupy a pak z nich skládáš program. Když je
neznáš, zbytečně se snažíš dělat hru. Informací, které ti cizí
kód
poskytne, je mizivé množství a hra, kterou takto vytvoříš není
vlastně
vůbec tvoje práce a u příští hry na tom budeš stejně špatně.
Hledej tutoriály na programování obecně, ne na konkrétní hry.
Vždiť já furt hledám nějaký tutoriály ale prostě když to nikde
nemůžu najít tak se spolehnu na to že to opíšu, podívám se na to a pak
zjistim v čem to je.
Ale pokud ten kód neuvidim tak jak mám asi přijít na to jak se to dělá?!
Vždit když jsem vytvářel tu svojí hru tak jsem se tky něco dozvěděl
neboť jsem předtim vytvářel jenom skákačku. Když teda nefunguje ani
opisování. Myslel jsem že mi teda pomůže když se zeptám tady. Ale to asi
tky ne.
Ptát se můžeš, ale když se zeptáš, jak se programuje Tower Defense,
je to zářný příklad špatné otázky. Ptej se jak fungují objekty,
ptej se na dědičnost, na fungování událostí, atd.
Řekl bych, že on to zas dá Cut&Paste někam doprostřed
toho guláše, co odněkud nakopíroval z jiných webů.
Bude mít i s dobrým kódem šanci jen okolo 50%, že mu to
pojede. Navíc už to tu měl několikrát a zjevně se ani
jednou nechytl. Doporučil bych začít s něčím snazším,
ale bez cizích kódů. Jen vlastní hlavou.
1.Když tam napíšu tamten kód tak mi to vypíšu chybu kterou se měl i u
těch ostatních
2.Něco snadnějšího jsem už zkoušel a pak jsem si řek že bych mohl zkusit
něco těžšího a když jsem na tower defense viděl tolik tutoriálu tak jsem
si myslel že by to nemuselo bejt zas tak těžší.
3.Jak můžeš říct že to je patlanina když si to ani neviděl. Prostě jsem
vzal z jedný tower defence hry část z druhého TD část a když jsem se
díval na jiný tutoriály tak to jako patlanina vypadalo spíš u nich.
Vím, že to je patlanina, z toho cos sám napsal.
Když vezmeš půlku jedné patlaniny a přidáš půlku druhé patlaniny,
získáš patlaninu ještě vyššího stupně než ty dvě první.
Kdybys to měl alespoň vlastní, tak bych ti napsal, ať to sem dáš
a opravil bych ti to. Ale nemám moc chuť opravovat chyby v něčem,
co ani není tvoje.
Já to sem píšu kvůli tomu protože TomBen mi řekl kód který funguje
jen když prostě vezmu tu příšerku a vložím jí do hry. Ale já tam mám
spawner který ty příšerky vytváří a já nwm jak mám té věžce
přikázat aby se obrátila na tu příšerku na kterou útočí a ne na někoho
jinýho.
Dokážu vyřešit tvůj problém, ne sice způsobem který se ti bude
líbit, ale řešení je jednoduché: začni s tutoriály na GM. Vytvořil jsi
mutantní hru ze složení pár kousků dalších co jsi našel, takhle ti to
nepůjde podle představ. Potřebuješ vědět co jaký příkaz dělá, když
to nevíš tak ti je copypasta k ničemu.
Když začneš mým seriálem TBA, tak chybu neuděláš.
Pak je dobré naučit se hledat v normálním Helpu,
který je psaný dobře, stručně a přímo tvůrcem.
Nějaké úvodní články o objektovém programování
taky neuškodí, protože ty principy se ti budou hodit.
Dobré jsou taky přehledy ekvivalentů ikon v kódu gml.
Nechtěl by si mi spíš poslat odkazy? Abych nehledal v nějakých blbostech
neboť já nepoznám jestli to je dobře nebo ne, ale ty víš co je napsaný
správně a co ne.
Nevím o ničem, co by bylo napsané vysloveně špatně.
Pokud je něco zastaralé, tak to zjistíš podle data,
kdy byl článek zveřejněn. Jinak to v odkazu, který
poslal Theodor Johnson můžeš brát klidně shora dolů.
Všechno co tam je, bys měl znát.
No, kromě toho, že je to napsané opravdu šíleně, tak je z toho
jasné, kde sis natvořil ten error. Hned na prvním řádku.
Do proměnné terc ukládáš výsledek porovnávání, tzn. že ti
nabývá hodnot true nebo false. To pak těžko můžeš použít jako
cíl střelby. Jinak když sem dáváš nějaký kód, použij ikonu
vkládání kódu. Taky je dobré vysvětlit, jaké máš objekty
a do kterého z nich ( a jakého eventu ) jsi kód napsal. Takhle
je to šeredně nečitelné.
Jinak ten zbytek je taky špatně.
Smaž tuhle část celou a napiš ji pořádně.
Na začátku do proměnné target ulož čistě
výsledek funkce nearest_instance.
Pak spočítej vzdálenost, porovnej s povoleným dosahem
a podle výsledku porovnání vytvoř instanci střely.
Střele předáš proměnnou target, aby věděla, kam letět.
Zbav se mračna ifů a zbytečných proměnných jako je třeba cil.
Snažil jsem se napsat ten kód (do alarmu kterej se spouští každou
vteřinu) aby už byl funkční ale furt to nejde. Já jsem z toho už úplně
zmatenej
Docílil jsem toho že ta věž furt střílí a když kolem ní projdou
nepřátelé tak střílet přestane.Udělal jsem něco co jsem vůbec neměl v
plánu.
{{
target = instance_nearest(o_konec.x,o_konec.y,par_enemy) < dosah
}{
if target = true
instance_create(self.x,self.y,o_strela)
image_angle = point_direction(x,y,target.x,target.y)
}{
if target = false
target = noone
image_angle = direction
}}
Vzhledem k rychlosti za jakou jsi to přečetl je jasné, žes to jenom
proletěl očima a určitě jsi nedělal vlastní příklady a pokusy, bez
kterých
to nemá ten efekt. Ale abych se vrátil k tvému problému - pokud nastává
situace, že žádní nepřátelé neexistují a tudíž věž logicky nenajde
cíl,
musíš tuhle situaci vyřešit ty. Musíš zajistit, aby se netestovalo
něco,
co neexistuje. Je to jedna z věcí, které musí mít programátor pořád
na paměti.
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.