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

Tvůrce

Zobrazeno 50 zpráv z 81.
//= 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.
800x600 má být celé okno, nebo jen vnitřní plocha?
Nemáš to jedno? V zadání to není, tak že si ho udělej jak velký chceš. Jediný (a ještě k tomu spíš jenom logický) omezení je to, aby celková velikost okna byla větší než velikost herní plochy (čili větší jak 800x600) ...
ono jde taky o to, aby tady nedošli řešení ve FullHD. Pokud Zdeněk nemá
velký monitor, tak musí testovat na malém a je nepříjemné, když aplikací
"vybíhá" z monitoru. Borci to udělají responzivní
tak já dám jedno rozlišení bez možnosti maximalizace,ale nwm jaký, aby vnitřní okno bylo 800x600
Tak jasné, že by to bylo nepříjemné, ale tak nějak nepředpokládám,
že by někdo dělal FullHD okno a v něm herní plochu 800x600. Každopádně i
kdyby to tak někdo udělal nebylo by to nic proti zadání
V rozhraní Visual Studia je to jednoduché, připravíš si okno o něco větší, dáš do něj pictureBox o správné velikosti a okno zmenšíš aby to sedělo.
protože
Na vykreslování můžete použít buď Windows Forms a PictureBox nebo WPF a Canvas.
to nic nemění na otázce. Proč je XNA zakázaná? XNA se na toto hodí nejlépe. Narozdíl od superpomalého GDI a superRAMrozežraného WPF canvasu.
no, protože jsou takhle stanovený ty pravidla...
"Proč to vlastně nemůžu napsat v Unity? Vždyť to tam taky píšu v
C#."
Jenže framework je něco jiného než Engine. XNA ti zajistí více méně to samé jako WPF.
Chlapi, co řešíte? Zadání je jasně dané a podle mého víc než jasně. Zdeněk Pavlátka zadání definoval tak jak ho definoval, navíc už se pro gramotné vcelku jasně vyjádřil že XNA povolené není. Dle mého další diskuse na tohle téma je úplně zbytečná a v tomhle vlákně nedělá nic jiného než čurbes ...
nevím jak XNA, ale DirectX do PictureBoxu implementovat šel. nicméně je to jako střílet
holuba atomovkou.
Ještě k tomu rozlišení: Neřeší tohle náhodou device independent
pixels ve wpf?
tzn: Ať je to jak chce na každém monitoru by to mělo být stejně veliké
(nezáleží pak na DPI)
jo, normálně nastav 800×600, jak se to dopočítá na pixely neřeš.
Nějak mi to není jasné. Těleso, které bude padat, tak na něj platí gravitace i při odrazu, nebo jen při pádu? Jestli se to těleso má vrátit do původní pozice, jen s menší rychlostí..?
do původní pozice se asi nevrátí, protože cestou zpět nahoru ztratí určité množství energie. A jestli se má po pátém odrazu rozbít, tak ztrátu energie předpokládej cca 20% pro každý odraz...
těším se na výsledek tohoto úkolu...
Pokud vyhodíš těleso kolmo do vzduchu a bude na něj působit jen a pouze gravitace, bude se pohybovat po parabole. Na vrcholu paraboly se pohybová energie zcela přemění na polohovou energii, takže se těleso zastaví a začíná padat.
Při srážce dvou hmotných těles platí, že úhel dopadu se rovná úhlu odrazu (v případě kolmého dopadu je úhel celkem jasný) a tělesa si navzájem předávají energii, která se nemůže ztratit, ale těleso ji může předat jinému.
Napsat simulaci fyzikálního systému obecně není žádná legrace, ale dobrá zpráva je, že podle zadání to má vypadat realisticky. Lidské vnímání naprosto neodpovídá realitě, takže pokud bys napsal perfektní fyzikální systém, bude vypadat hra velice nerealisticky.
To je paradoxně velice dobrá zpráva. Parabolický pohyb a metoda pokus-omyl je všechno, co potřebuješ na perfektní a "reálně" vypadající fyzikální systém.
Děkuji za odpovědi.
Tu gravitaci už mám vytvořenou, dokonce i funguje Problém je spíš s
vykreslováním, při více tělesích je pohyb trhavý a zpomalený :/
Zdeněk Pavlátka máš vymyšleného i něco pro JAVU ?? Když už se mi ten úkol
líbí, tak není na JAVU
Příští týden bude asi PHP, pak by třeba Java mohla bejt, ale nic neslibuju.
dobře díky a nechceš
udělat něco, co může být třeba i v Javě a i v C# ?? Je to hodně
podobný.
tak si to napiš soukromě. Jestli ti jde o to a Zdeněk Pavlátka ti to
hodnotit nechce, ohodnotím ti to já, že by za to mohla být placka
negarantuji, ale minimálně by se ti mohlo hodit vědět co do příště
zlepšit a jak.
dobře děkuji moc ...
placku mi nejde
jen mi jde
o to, aby mi řekl někdo, co na tom mám blbě a co zlepšit.
Asi záleží, v čem bys to napsal, tedy spíš přes co by se vykreslovalo.
Pokud bych se v tom alespoň trochu vyznal, klidně to i opravím. A kdyby se ti
to hodně povedlo, myslím, že by ani s tou plackou nemusel být takový
problém
O to, že by se mi to povedlo se nebojím Jsem začátečník, ale chci to
jen zkusit
Java se dá tolerovat jako podobná, to ale neznamená, že se tu budou
všichni ptát, jestli to můžou napsat ve svém oblíbeném jazyce. Nic
takového. Je to machr na C#, tak se podle toho chovejte. Ani tu Javu tam moc
nechci, ale ta se tolerovat dá (i když placka za ní by nebyla moc fér). A
už tu nechci vidět žádný komentář, který sem nepatří.
Tady máte muj vytvor:
http://leteckaposta.cz/706903219
první řešení a první chyba při odesílaní... Než to odešlete přečtěte si pravidla, třeba i bod, že zipovaná složky mám mít v názvu váš nick zde na ITnetwork... Dokonce to tam je tučně zvýrazněno.
Pro velký uspěch ještě jednou
http://leteckaposta.cz/177310810
pravda na pojmenování jsem zapomel
Tady je moje
http://leteckaposta.cz/732865133
Vím, že se to nemůže rovnat s jakýmkoliv výtvorem vás, ale je to moje
první zveřejněná aplikace a neprogramuju dostatečně dlouho jako vy
ostatní:))
Zajímavý název projektu
A ty balonky jsou dost velké.
Těch balonku jsem tam dříve měl víc, jenže vykreslování bylo až moc
pomalé. A upravil jsem to tak, aby vždy bylo kam utýct. Prohrajete jen v tom
případě, že vás míček trefí když letí dolů, když se odráží a
letí nahoru je kolize vypnuta
Pak už je to jenom a reflexu a schopnosti klikat tlačítka.
Moje nejvyšší skóre bylo 59
Hm winforms by měl rozhodně zvládnout vykreslovat víc bez problému, + i kdyby náhodou ne tak se mrkni na doublebuffering
viz třeba tohle: jinej projekt kreslí to trochu něco jinýho,ale prostě si budeš vykreslovat svoje
BufferedGraphics buffer = BufferedGraphicsManager.Current.Allocate(panel1.CreateGraphics(), new Rectangle(0, 0, panel1.Width, panel1.Height));
Graphics g = buffer.Graphics;
g.Clear(panel1.BackColor);
g.FillRectangle(Brushes.Red, 0, 0, size * blocks + blocks - 1, size * blocks + blocks - 1);
for (int i = 0; i < blocks; i++)
{
for (int j = 0; j < blocks; j++)
{
if (m.matrix[i, j] == 1)
{
g.FillRectangle(Brushes.Black, i * size + i, j * size + j, size, size);
}
else
{
g.FillRectangle(Brushes.White, i * size + i, j * size + j, size, size);
}
}
}
buffer.Render();
g.Dispose();
buffer.Dispose();
Winforms mi zvládají mnohem složitější kreslení, jen člověk nesmí
zapnout anti-aliasing a kreslit obrázky Ani transformace jim nedělají
problém.
Tak dneska už to opravit nestíhám, mám spoustu jiné práce. Pustím se do toho hned ráno.
Zobrazeno 50 zpráv z 81.