Python týden Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python
Avatar
alex_laco
Člen
Avatar
alex_laco:21.8.2017 1:15

Zdravím,

potrebujem radu. Potreboval by som zistit index objektu ktorý sa nachádza 20px (napravo,nalavo a dole) od daného objektu.
Zatiaľ som nenašiel na to žiadný príkaz.

Ďakujem za každú odpoveď. ;)

 
Odpovědět 21.8.2017 1:15
Avatar
TomBen
Redaktor
Avatar
Odpovídá na alex_laco
TomBen:21.8.2017 15:10

Ono to tak trochu záleží na tom, jestli tam hledáš objekt přesně ležící ( čili např. x+20 atd. ) nebo tam hledáš jakýkoli bod jeho obrázku ( čili kolize s jeho sprite ).

Nahoru Odpovědět  +1 21.8.2017 15: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
alex_laco
Člen
Avatar
Odpovídá na TomBen
alex_laco:21.8.2017 19:17

Netreba presný bod stačí iba kolízia so sprite.

 
Nahoru Odpovědět 21.8.2017 19:17
Avatar
TomBen
Redaktor
Avatar
Odpovídá na alex_laco
TomBen:21.8.2017 21:14

Tak v tom případě můžeš použít:

collision_point( x, y, obj, prec, notme )

x,y jsou souřadnice místa
( např. x+32, 100 bude testovat bod 32 bodů napravo od sebe a 100 od horního okraje )
obj je objekt k testování
prec je true pro přesnou kolizi, false pro obdélníkovou
notme je true pokud se má vynechat kolize se sebou samým, false když ne

Funkce vrací id kolizní instance nebo konstantu noone.

Nahoru Odpovědět 21.8.2017 21:14
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
alex_laco
Člen
Avatar
alex_laco:21.8.2017 21:47

Ale "obj" bude objekt ktorý by sa mal nachádzať na tej súradnici, nie?
Ja práve že neviem aký objekt tam je, to potrebujem práve zisti.ť

 
Nahoru Odpovědět 21.8.2017 21:47
Avatar
TomBen
Redaktor
Avatar
Odpovídá na alex_laco
TomBen:22.8.2017 0:03

Ne. Obj je filtr. Můžeš použít all a najde cokoliv, co tam leží. Ale to, co funkce vrací je id instance. Čili číslo určující výskyt v místnosti. Pokud ti jde o object_index, ten je vlastností té instance. Chápu, že je to poněkud matoucí. Takže příklad:

var ids=collision_point( x, y-32, all, 1, 1 );
with (ids) { if object_index == muj_object instance_destroy(); }

Zjistí, jestli o 32 pixelů nahoru je instance, jejíž object_index je muj_object a pokud ano, zničí ji.

Nahoru Odpovědět 22.8.2017 0:03
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 6 zpráv z 6.