Diskuze: Kolize

C# .NET .NET (C# a Visual Basic) Kolize American English version English version

Avatar
matesax
Redaktor
Avatar
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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

 
Nahoru Odpovědět 18.6.2012 19:19
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Čápka
matesax:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.