Событие клавиатуры
Вложений: 1
Здравствуйте уважаемые форумчане.
Подскажите как правильно считывать события с клавиатуры? Решил покачаться в http://www.babylonjs.com/ И столкнулся с такой проблемой. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Гейм</title> <script type="text/javascript" src="http://cdn.babylonjs.com/2-3/babylon.js"></script> <script type="text/javascript" src="hand-1.3.7.js"></script> <script type="text/javascript" src="cannon.min.js"></script> </head> <body> <canvas id="canvas" style="position:absolute; width: 100%; height: 100%;"></canvas> <script type="text/javascript"> var canvas = document.getElementById("canvas"); var engine = new BABYLON.Engine(canvas, true); var player; var keyPlayer; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! window.onkeyup = function (event) { if (event.keyCode == 32) { player.playAnimation(22, 32, false, 100); } else { player.stopAnimation(); player.cellIndex = 44; keyPlayer = ""; } } window.onkeydown = function (event) { if (event.keyCode == 65 && keyPlayer != event.keyCode) { player.playAnimation(0, 9, true, 100); } keyPlayer = event.keyCode; } //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! function createScene() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(0, 1, 1); var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene); camera.setTarget(BABYLON.Vector3.Zero()); camera.attachControl(canvas, false); var light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(0, 1, 0), scene); light.intensity = .5; var spriteManagerTrees = new BABYLON.SpriteManager("treesManagr", "08-2.png", 2, 64, scene); player = new BABYLON.Sprite("player", spriteManagerTrees); player.cellIndex = 44; return scene; }; var scene = createScene(); engine.runRenderLoop(function () { scene.render(); }); window.addEventListener("resize", function () { engine.resize(); }); </script> </body> </html> Когда одновременно нажимаю кнопку "A" и затем нажимаю и отпускаю пробел для прыжка то событие onkeydown сбрасывается и после приземление персонаж не двигается то есть приходиться заново отпускать и нажимать "A" Как сделать так что бы событие не сбрасывалось? может есть специальные библиотеки под эти задачи? |
Часовой пояс GMT +3, время: 01:29. |