Ahoj lidi, potřeboval bych prosím poradit...
Dělám v pascalu pacmana a chtěl jsem se zeptat, jak lze zajistit, aby dvě procedury či dva cykly běžely současně... Mám na mysli toto: mám proceduru ovládání pacmana a potřebuju nějak rozpohybovat potvory, co mě honí... A to se mi ani trochu nedaří...
Za jakoukoli radu moc moc děkuji.
Fórum › Pascal
Pacman v pascalu
To Luke : zalezi jakej pascal... free pascal urcite umi i vlakna...
a dosovskej pascal budes muset zvladat vse naraz... (proste vsechno na neblokujici rezimy a mezi tim treba sleep)
tj. jeden cyklus, kterej kterej zjisti, jestli byla stisknuta klavesa a pokud ano tak zpracovat...
a pak prekresleni pokud se neco pohnulo,
a tak dale a tak dale
Myslím windowsovský (delphi v7). Ten cyklus, o kterém mluvíš, mám, ale to je právě pohyb toho pacmana. Ty potvory se musí hýbat sami bez toho aniž bych stiskl klávesu. A já potřebuju, aby se zároveň pohybovali potvory i abych mohl ovládat pacmana (tyto dva algoritmy mám ve dvou procedurách).
To Luke :
Zřejmě na to jdeš špatně...
Jsou asi dvě možnosti - buď budeš dělat aplikaci jakoby ve výhradním režimu (klasický dosovský způsob). Hlavní cyklus volá ve smyčce postupně všechny potvory i pacmana aby se pohli, pak určitou dobu čeká. Nejlépe i během čekací smyčky testuje, jestli byla stisknuta klávesa. Pokud ne, běží bez změny znovu, tzn pohne všema a zas čeká. Byla-li stisknuta klávesa, tak ji vyhodnotí, pošle pacmanovi změnu směru a zas běží dál hlavní smyčka.
Druhá varianta je program řízený událostmi (windows). Pohyby potvor i pacmana se řídí časovačem (timer). Ošetření události stisku klávesy jen vyhodnotí a pošle pacmanovi případnou změnu směru a končí. Vlastní pohyb zase bude proveden až pri další události vyvolané časovačem. Ovšem časovače pod windows jsou hodně nespolehlivé, hlavně pro větší rychlosti.
Zjistit počet nových příspěvků
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
Pacman - unit collision problem — založil Haunebu
Os v Pascalu — založil Honza
Z C do Pascalu — založil Momok
Moderátoři diskuze
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu



Nahlásit jako SPAM
IP: 194.228.16.–
God of flame

