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
 1/12 anonim ***** válasza:
13%

Igen. Jól kell tudni programozni.

Talán a játékprogram fejlesztés kivánja el a legsokoldalúbb fejlesztőket.

2020. nov. 24. 05:37
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:
88%

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.

2020. nov. 24. 08:21
Hasznos számodra ez a válasz?
 3/12 anonim ***** válasza:
11%

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

2020. nov. 24. 08:32
Hasznos számodra ez a válasz?
 4/12 anonim ***** válasza:
90%

#3


Várjuk a Te megoldásodat is.

2020. nov. 24. 08:41
Hasznos számodra ez a válasz?
 5/12 anonim ***** válasza:
0%

Ahhoz tudni kéne, hogy a kérdező mit kezel le és hogyan.

Directx, vagy egyéb mód?

2020. nov. 24. 08:54
Hasznos számodra ez a válasz?
 6/12 anonim ***** válasza:

#5


Igen, ez igaz.

2020. nov. 24. 09:01
Hasznos számodra ez a válasz?
 7/12 A kérdező kommentje:

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 :)

2020. nov. 24. 10:40
 8/12 anonim ***** válasza:
90%

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

2020. nov. 24. 10:42
Hasznos számodra ez a válasz?
 9/12 anonim ***** válasza:
50%
2020. nov. 24. 15:11
Hasznos számodra ez a válasz?
 10/12 anonim ***** válasza:

[link]

Ennyit a #3-as 'kolléga' szaktudásáról. Lapozhatunk.


#2-es kolléga mondja az igazat.

2020. nov. 25. 19:06
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!