Diskuze: Grafika - manipulacia s objektami
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= 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.
Pokud kreslíš přímo do windows formu (okna programu), tak si udělej vlastní bitmapy (nepoužívej pictureboxy) a nastav vlastnost formu DoubleBuffered na true (můžeš to udělat v designeru). Blikání při vykreslování přestane.
Každopádně, pokud se bude jednat o větší hru, tak to dělej přes xna, které řeší všechny věci pro vývoj her včetně síťování.
Rozhodně použij XNA. Kreslit na bitmapu? - ne - XNA... Objekt bude komponentka s vlastním
vykreslováním - v update si pohlídáš hover - v hover click. Totéž u
kláves - pohlídáš si GetState() v každé komponentce v update... Políčka
vygeneruješ cyklem - já bych si postavil jeden velký obrázek a cyklus
provedl jdenou. Cyklus bude projíždět x a y herní plochy vydělené
velikostí jednoho políčka a podle určítého pravděpodobnostního modelu do
zadané pozice vynásobené velikostí políčka přidá objekt...
Aby to bylo jasné - Update se pravidelně volá - a je v něm logika. Draw se také pravidelně volá - ale je tam vykreslování...
O tvorbě her v C# je tu přímo sekce: http://www.itnetwork.cz/csharp/monogame
public override void Update(GameTime gameTime)
{
if (hover = Bounds.Intersects(new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 5, 5)))
{
if (MouseHover != null)
MouseHover(this, new MouseEventArgs() { MouseState = Mouse.GetState() });
if ((click = Mouse.GetState().LeftButton == ButtonState.Pressed) && Click != null)
Click(this, new MouseEventArgs() { MouseState = Mouse.GetState() });
}
base.Update(gameTime);
}
Kde Bounds je rozměr objektu. A velikost kurzoru jsem zvolil 5x5. Obě události se ukládají do boolů - hover a click - a tak s nima můžeš dále nakládat...
Dakujem za rady
Troska som sa dnes viacej zavrtal do XNA.
Co sa tyka tej hracej plochy, tak to bude fakt jednoduchsie. Co neviem google
alebo tutorial(tie videa tam co su pri tom auticku to je proste parada). Trosku
som uviazol na jednom dvoch detailikov (zatial).
spriteBatch.Begin(SpriteBlendMode.none);
SpriteBlendMode.none <- toto mi ani za toho nechce poznat a neviem v com je
problem, aj ked som to nasiel pod enum na stranke msdn
druhy detailik :
vsimol som si, ze co sa tyka zobrazenia, tak si taker vsetko musim spravit sam.
Takze sa vynara otazka, ako spravit nieco take ako TextBox + ListBox + ako
nastavit Obejkt aby ked sa nakreslil boli na nom scroolbary(horizontalne aj
vertikalne). Pre plochu napr. 5000x2000 pixelov v zobrazovacom okne 800x600 by
sa aj hodili.
bonusova otazka :
Predstavme si ze mame hraciu plochu oramovanu ako pri tetrise (predpokladam, z v
mojom pripade to bude musiet byt objekt), na tento objekt sa vlozi dalsia vrstva
a to budu vertikalne a horizontalne ciary, vznikne sachovnica a na poslednu
vrstvu sa budu vkladat obrazky.
Povedzme ze tuto hraciu plochu budem chciet zmensit alebo zvecsit. Z tutorialu
auticko je tam manipulacia scale. Cize veskery suradnicovy system budem tymto
cislom prenasobovat a upravovat. Ale nejde to spravit automaticky? Ze mu poviem
tieto objekty su medzi sebou prepojene(ukotvene) a pri zmene scale vsetko podla
toho prepocitaj ?
ps1: Dakujem za rady doteraz
ps2: Urcite sa potom este obratim so sietovanim na vas, ale to az neskorsie,
treba ist krok po kroku
ps3: V pripade zaujmu, rad kod co momentalne robim mozem niekde zverejnovat,
nemam s tym problem. (aj ked este momentalne nie je co, kedze to este nic nevie
)
Pokud objekt vypropaguje manipulaci s rozměry do svých vnořených objektů, tak to fungovat bude.
To None by skoro mělo být s velkým, nevím, co to znamená nejde, asi to něco píše, možná ti to nabízí přidat using, kdo ví.
XNA nemá nic na formulářové prvky, ale je velmi triviální je naprogramovat. Určitě pro to bude nějaká knihovna na netu, ale jednodušší je snad si to napsat než se prosekávat nějakým cizím kódem. Scrollbary jsou též triviální, když použiješ tzv. nůžky.
Udělej si zdejší tutoriály, všechno je tam vysvětlené.
Zobrazeno 8 zpráv z 8.