Ahoj,
programuju v C# jednoduchou 2D hru typu Pacman. Vytvoril jsem stavovy stroj. Ten obsahuje herni smycku, tj. cyklus bezici po celou dobu behu programu, obstaravajici aktualizaci a vykreslovani herniho stavu.
Potreboval bych poradit:
1. Do ktere udalosti herni smycku vlozit? (zatim je ve FormLoad)
2. Potreboval bych, aby cyklus po kazde iteraci na chvili "usl" a ponechal tak systemove prostredky pro vykresleni formulare atp. Jak na to ? (nebo vytvorit Timer a smycku volat po iteracich?)
Diky Dusan
Fórum › .NET
2D hra - stavovy stroj
1, Ono je to vesmes jedno, kde to das, ale v nejake inicializacni funkci by to melo byt (nebo by se to melo aspon nejak aktivovat z ni)
2, Thread.Sleep(100) by mohl pomoct :)
Bohuzel pri pouziti Thread.Sleep(xxxx) a udalosti FormLoad se ani neotevre formular.
Smycku jsem premistil do udalosti KeyDown a kdyz ji aktivuju stiskem klavesy, tak aplikace prestane odpovidat a okno lze obtizne premistovat.
To je proto, že ten Thread.Sleep voláš na primární vlákno, které se zároveň stará o vykreslování uživatelského rozhraní. Jakmile uspáno, aplikace se navenek zmrazí a systém ji identifikuje jako "neodpovídá".
Zatim jsem vytvoril Timer a smycku volam z nej, po iteracich. Protoze jeste zbytek aplikace neni vytvoreny, nemuzu zatim zkontrolovat, jestli to staci. Kdyztak bych potom asi pro smycku vytvoril vlastni vlakno.
Diky Dusan
ja skusam neco vytvorit a pouzivam OpenTK GameWindow, + OpenTK ma aj vylepseny OpenGL(resp. zjednoduseny o to ze sa nemusis starat v akom formate tam vlozis hodnoty pozicie pri vectoroch, resp. mozes vlozit Vector(x) a ono si to uz samo da (v.x, v.y, v.z),...)
A mas tam aj fps obmedzovac zvlast pre render a update(pokial das 0 tak si to asi da na nekonecno).
2 Chrasty: Jo, to uspani formu kvuli vlaken sem si zrovna v te chvili neuvedomil :)
Jinak, jak pise mnn, tak XNA je dobrou volbou.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Stavovy stroj - kde je chyba ? — založil Taine
Linux pro starší stroj — založil Laaca
Sekvenční obvod - stavový diagram — založil mike.hudek
Java 2D hra - tvorba menu (hra nereaguje na klavesy) — založil Marek
Moderátoři diskuze