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.
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