Hallo mede tweakers,
Al enige tijd probeer ik een platform spel te maken in Javascript en SVG.
In het begin had ik een simpele keymanager die registreerde wanneer een toets ingedrukt was. Enig probleem was dat in Firefox niet altijd geregistreerd wordt wanneer een knop is ingedrukt. Ik heb het hier over 100 keer kijken per seconden, tot 30 keer ging prima. Maar met 30 Hz is het spel niet echt 'vloeiend'.
Daarom wou ik het proberen om te registreren wanneer een knop ingedrukt wordt. Vervolgens dat in een variable registreren. En dan zodra de knop weer omhoog gaat, de variable weer reseten.
Nu heb ik deze code gescript:
Zodra ik nu een toets indruk krijg ik van Firebug de volgende foutmelding:
this.keysDown is undefined
[Break on this error] this.keysDown[0] = true;
Het gaat om deze regel:
Zelf dacht ik dat dit de juiste manier is om die variable toe te spreken. Zou iemand mij kunnen helpen door te zeggen hoe ik die variabele wel moet bereiken?
Al enige tijd probeer ik een platform spel te maken in Javascript en SVG.
In het begin had ik een simpele keymanager die registreerde wanneer een toets ingedrukt was. Enig probleem was dat in Firefox niet altijd geregistreerd wordt wanneer een knop is ingedrukt. Ik heb het hier over 100 keer kijken per seconden, tot 30 keer ging prima. Maar met 30 Hz is het spel niet echt 'vloeiend'.
Daarom wou ik het proberen om te registreren wanneer een knop ingedrukt wordt. Vervolgens dat in een variable registreren. En dan zodra de knop weer omhoog gaat, de variable weer reseten.
Nu heb ik deze code gescript:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| ... function objKeyHandler() { this.keysDown; this.init = function () { this.keysDown = new Array(); this.keysDown[0] = false; // left this.keysDown[1] = false; // right this.keysDown[2] = false; // up this.keysDown[3] = false; // shift document.documentElement.addEventListener("keydown", this.keyPressDown, false); document.documentElement.addEventListener("keyup", this.keyPressUp, false); } this.keyPressDown = function (event) { event.preventDefault(); switch (event.keyCode) { case 37: // left this.keysDown[0] = true; break; case 39: // right this.keysDown[1] = true; break; case 38: // up this.keysDown[2] = true; break; case 16: // shift this.keysDown[3] = true; break; } } ... |
Zodra ik nu een toets indruk krijg ik van Firebug de volgende foutmelding:
this.keysDown is undefined
[Break on this error] this.keysDown[0] = true;
Het gaat om deze regel:
JavaScript:
1
2
3
4
5
| ... case 37: // left this.keysDown[0] = true; break; ... |
Zelf dacht ik dat dit de juiste manier is om die variable toe te spreken. Zou iemand mij kunnen helpen door te zeggen hoe ik die variabele wel moet bereiken?