Kezdőoldal » Számítástechnika » Programozás » Játékfejlesztés során ha...

Játékfejlesztés során ha billentyűzettel mozgatok valamit, akkor a billentyű lenyomása után egyet mozdul, majd megtorpan és csak azután halad tovább. Ismersz erre megoldást?

Figyelt kérdés

2020. nov. 23. 21:11
1 2
 11/12 anonim ***** válasza:
0%

"#2-es kolléga mondja az igazat."


#2-es éppen olyan rosszul tájékozott amatőr, mint te.

2020. nov. 25. 19:47
Hasznos számodra ez a válasz?
 12/12 anonim ***** válasza:
63%

Billentyűzetet alacsony szinten két módon lehet kezelni PC-s környezetben.

Az egyik a megszakításos. Ez a keyboard állapotának minden változásakor generál egy megszakítást (interrupt) amelyet a PC feldolgoz, ergo, lefuttatja a szükséges rutint, az meg kiolvassa a keyboard állapotát és a kinyert infókat elhelyezi valahol, ahol elérhetők a magasabb szintek számára.

A másik lehetőség a polling. Ez nem jelent mást, mint, hogy egy rutin adott időközönként kiolvassa a keyboard portjának tartalmát és szintén elteszi valahova (a memóriába), ahol az elérhető a magasabb szintű igénybevételhez. Ennek a megoldásnak bár gyors, de egy baja van, állandóan terheli a CPU-t.


Magasabb szint.

KeyDown, KeyUp, KeyPressed, stb. eventek.

Ezek a függvények, amelyeket a magasszintű nyelvek kínálnak, remekül megfelelnek általános adatbevitelre, eseményvezérlésre, de olyan alkalmazásokhoz, amelyek rövid válaszidőt igényelnek, nem elégségesek. Pedig többnyire ilyenek a játékrogramok is.

Ezeknél az adatbevitelt alacsonyabb szinten kell kezelni, amire lehetőség van directX (dInput) vagy winapi segítségével. A winapi adekvát függvényei pl. a GetKeyState vagy a GetAsyncKeyState.

Ezek használatával lehet elérni, hogy a játékélmény ne szenvedjen csorbát, a játékmenet gördülékeny legyen, a történések megfeleljenek az elkivántaknak, ne késsen semmiféle esemény.

2020. nov. 25. 21:18
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!