Sziasztok,
szeretnék egy új, egyszerű, ezúttal billentyű-vezérelt játékot írni webre lehetőleg js-ben, valami egyszerű gyűjtögetőset a lehető legegyszerűbb kóddal, amit hozzá szeretnék, ha lehet, az gyorsabb billentyűolvasás (kisebb késleltetés, gyorsabb ismétlés), most így néz ki a kód:
<svg width="1900" height="800" style="border: solid red"> <circle id="c" cx="30" cy="30" r="10" fill="blue" /> </svg> <script> function checkKey(e) { e = e || window.event; if (e.keyCode == '38') { c.setAttribute('cy',parseInt(c.getAttribute('cy'))-15); } else if (e.keyCode == '37') { c.setAttribute('cx',parseInt(c.getAttribute('cx'))-15); } else if (e.keyCode == '39') { c.setAttribute('cx',parseInt(c.getAttribute('cx'))+15); } else if (e.keyCode == '40') { c.setAttribute('cy',parseInt(c.getAttribute('cy'))+15); } } document.onkeydown = checkKey; </script>
lehetséges js-ben lerövidíteni a billentyűolvasást egységesem úgy 10-20 millisecre? Ha igen, mi lenne ehhez a legegyszerűbb kód?
- 154 megtekintés
Hozzászólások
Szerintem nem, hogyan mérted le ennek a válaszidejét? Nem lehet hogy itt is megvan a 10-20 milisec? Én furcsálnám ha nem lenne...
- A hozzászóláshoz be kell jelentkezni
látok elvileg valami válaszokat erre a weben, de még nem látom, hogy mi lehet igazán jó megoldás, ha kipróbálod, látod, hogy alapból a rendszer beállítását használja a js, tehát alapból annyit vár az első után, majd olyan gyorsan ismétel, ahogy a rendszerben be van állítva.
Látom pár helyen, hogy már más is kérdezte ezt, de még nem igazán érzem, hogy ráleltem a tökéletes válaszra, például itt is kérdezték:
https://stackoverflow.com/questions/3691461/remove-key-press-delay-in-j…
- A hozzászóláshoz be kell jelentkezni
Most már értem mit szeretnél.
Szerintem egyszerűen old meg úgy hogy felírod egy tömb-be az adott keycode-hoz tartozó indexet.
Majd valahol biztosan kell lennie egy "render" résznek, ott növeled az értéket.
let keyArr[] = new Array(255);
function keydown(keycode){ keyArr[keycode] = true; }
function keyup(keycode){ keyArr[keycode] = false; }
render(){
....
if (keyArr[P_Keycode] == true)
{
x += 15
}
...
}
Amit bemásoltál ott is hasonlót csinál.
Egyébként bármilyen 2d-s játkot akarsz csinálni, nézd meg a Canvas 2D-t
- A hozzászóláshoz be kell jelentkezni
ez az amit keresel: http://jeremyckahn.github.io/keydrown
--------------
Sok ember hord Superman-pizsamát. Superman Chuck Norris-pizsamát hord.
- A hozzászóláshoz be kell jelentkezni