IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
matesax
Tvůrce
Avatar
matesax:18.6.2012 18:40

Dobrý den,
moc nepočítám s tím, že by se dala nějak zjistit kolize - tak alespoň - jak bych na to nejlépe měl jít? Protože potřebuji zjistit, zda posunovaný předmět nebude při příštím posunutí v kolizi s nějakým objektem... Děkuji.

 
Odpovědět
18.6.2012 18:40
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:18.6.2012 19:15

Kolize čeho s čím? Je rozdíl mezi kolizí bodů, úseček, obdélníků, trojúhelníků...

Nahoru Odpovědět
18.6.2012 19:15
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:18.6.2012 19:19

Picturebox s různými prvky formu - minimálně tlačítka a textboxy,...

 
Nahoru Odpovědět
18.6.2012 19:19
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:18.6.2012 20:07

Na co to? Přijde mi to přinejmenším nestandardní. Každopádně přece znáš souřadnice a rozměry, stačí po jednoduché úvaze napsat kolizi 2 obdélníků:

Jestli to dám z hlavy, tak:

x2 + width2 >= x1 &&
y2 + height2 >= y1 &&
x1 + width1 <= x2 &&
y1 + height1 <= y2

Zkus to :)

Nahoru Odpovědět
18.6.2012 20:07
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:18.6.2012 20:12

No jo, jenže se mi to nechtělo dělat pro každý objekt zvlášť - tedy výpočet mohu dát do funkce, ale volat ji musím pro každý objekt,...

 
Nahoru Odpovědět
18.6.2012 20:12
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:18.6.2012 20:14

Představoval jsem si vytvoření něčeho, jako třeba radar - prostě kouknout se pod sebe, jestli tam něco není,...

 
Nahoru Odpovědět
18.6.2012 20:14
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:18.6.2012 20:18

To budeš muset vždy. Formy na tohle prostě nejsou uzpůsobené. Udělej si funkci, která bude brát Control (nebo jak je ta třída pro formulářové prvky). Potom tím projeď kolekci controls na formuláři nebo panelu nebo v čem je máš. Teď mě nenapadá, jak to udělat inteligentněji, než zkontrolovat každý s každým, ale stejně je to zanedbatelná operace, pomalé to nebude.

Nahoru Odpovědět
18.6.2012 20:18
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:18.6.2012 20:38

A nešlo by to přes pole? Prostě získat všechny součásti formu a všechny prozkoušet cyklem. Když jsem zkusil this.Container­.Components, tak mi to napsalo, že odakz není nastaven na instanci objektu,...

 
Nahoru Odpovědět
18.6.2012 20:38
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:18.6.2012 20:47

To jsem ti psal: "Potom tím projeď kolekci controls na formuláři"

Každý prvek formu by měl mít vlastnost Controls, kde jsou uloženy Controly co obsahuje.

Nahoru Odpovědět
18.6.2012 20:47
New kid back on the block with a R.I.P
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 9 zpráv z 9.