Diskuze: Kolize
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Kolize čeho s čím? Je rozdíl mezi kolizí bodů, úseček, obdélníků, trojúhelníků...
Picturebox s různými prvky formu - minimálně tlačítka a textboxy,...
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
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,...
Představoval jsem si vytvoření něčeho, jako třeba radar - prostě kouknout se pod sebe, jestli tam něco není,...
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.
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,...
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.
Zobrazeno 9 zpráv z 9.