Diskuze: Tower defence-otáčení věže za cílem
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 16 zpráv z 66.
//= 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.
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
}}
PS: se mnou to je asi hodně těžký co?
instance_nearest ti nevrací vzdálenost, ale instanci, takže nemůžeš mít mít instance_nearest < dosah, musíš mít
target = instance_nearest
vzdalenost = point_distance(x,y,target.x,target.y) < dosah
Já nwm jak mám do toho tvýho kódu dostat objekt nepřítele(par_enemy).
Než použiješ nějakou funkci, vždycky se podívej v helpu na její
definici.
Např.:
instance_nearest(x,y,obj) Returns the id of the instance of type obj nearest to (x,y). obj can be an object or the keyword all.
Takže se zamysli a sám napiš, kam patří tvůj objekt. Není to těžké.
Já pořád nwm jak se zbavit toho erroru.
target = instance_nearest(o_konec.x,o_konec.y,par_enemy)
vzdalenost = point_distance(x,y,target.x,target.y) < dosah
A furt mi to píše že to nezná x a já nwm jak udělat aby to x znal.
V čem to nezná x, v tom instance_nearest, nebo point_distance?
On je problém v tom že ta věžka neví co má dělat než přijde někdo
na koho bude moct střílet.(asi)
Protože vůbec nechápeš co píšeš a jen hádáš a pak se divíš že to nefunguje. O tutoriály jsi předpokládám ještě ani nezavadil.
Nevím o tom, že by v TBA bylo GML a pokud ano, určitě by TomBen vysvětlil co je X.
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.
No, nějaké to GML tam přece jen je.
A i když je ho tam zatím málo,
jsem si jist, že se zmiňuji i o X.
Zobrazeno 16 zpráv z 66.