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?
Igen. Jól kell tudni programozni.
Talán a játékprogram fejlesztés kivánja el a legsokoldalúbb fejlesztőket.
Belefutottál egy tipikus buktatóba. De ezért is szép a programozás, mindig újabb és újabb dolgokat tanul az ember. :)
Te a leütött karakter alapján mozgatod az objektumot, ami úgy működik, hogy amikor elsőre lenyomod a billentyűt, akkor "beíródik" a karakter, majd vár egy kicsit, és utána kezd el ismétlődni. Ha nyitsz egy Jegyzettömböt (vagy akármilyen más szöveg bevitelére alkalmas szoftvert), és rányomsz szép hosszan mondjuk az "a" billentyűre, akkor láthatod, hogy először beír egy darab "a"-t, kicsit vár, majd elkezdi ismételni, immár gyorsan, várakozás nélkül. Ennek jó oka van: ha gépelsz, és véletlenül nem csak egy röpke pillanatig van lenyomva a billentyű, akkor ne gépelődjön be kétszer-háromszor az, amit csak egyszer szerettél volna. Ha viszont huzamosabb ideig nyomva tartod a billentyűt, akkor feltételezhető, hogy az nem véletlen, ezért indul meg az ismétlődés.
A megoldás az, hogy nem a karaktereket kell beolvasni, hanem a billentyűk állapotát kéne figyelni. A lenyomásnak és a felengedésnek is van külön eseménye, amit persze oprendszertől, nyelvtől és IDE-től függően eltérően hívhatnak. Ha érkezik egy keydown esemény, akkor onanntól mozgatod a karaktert, ha pedig érkezik egy keyup esemény, akkor leállítod.
" Ha érkezik egy keydown esemény, akkor onanntól mozgatod a karaktert, ha pedig érkezik egy keyup esemény, akkor leállítod."
Az érdekes lenne.
Ahhoz tudni kéne, hogy a kérdező mit kezel le és hogyan.
Directx, vagy egyéb mód?
JavaScript-ben vagy java Swing-ben is próbálom. Most megkísérlem szálkezeléssel elindítani egy kesPressed() eseményre, majd leállítani egy keyReleased() esemény bekövetkezésekor. A feladat az, hogy két szál hogyan kommunikáljon egymással.
Vagy az is lehet, hogy teljesen rossz úton járok. És az első hozzászólónak van igaza: kellene tudni programozni :)
#4: Azt várhatod.
"Ismerem" ezt a kérdezőt, majdnem minden kérdéshez odaböfög, de értelmes választ nem tud adni, csak gépiesen fikáz midnent. Neki minden rossz, amit más mond, amit "természetesen" bármilyen érv nélkül várna, hogy mi is elfogadjunk.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!