【发布时间】:2018-05-17 18:50:34
【问题描述】:
代码:
这不是我的全部代码,但它包含有问题的部分
if (options) {
ctx.font = '18px Arial';
ctx.fillStyle = 'black';
ctx.fillText('Controls (Click On Control/Key Then Press The Key You Want)', 5, 30);
ctx.font = '18px Arial';
ctx.fillText('Right Move:', 10, 70);
ctx.fillText('Testing' + rightMoveControl, 120, 70);
ctx.fillText('Left Move:', 10, 110);
ctx.fillText('Left Arrow', 110, 110)
}
if (options) {
//canvas.addEventListener("keydown", rightControlHandler);
document.getElementById('canvas').addEventListener("keyUp", rightControlHandler, false);
function rightControlHandler(event) {
/*ctx.font = '18px Arial';
ctx.fillStyle = 'black';
ctx.fillText('Testinghi', 120, 70);*/
rightMoveControl = 'hi';
}
}
问题:
当我在画布上按下一个键时,文本保持为Testing 并且不会更改为Testinghi。完整代码和测试的链接是这样的:https://jsfiddle.net/aarav18/qj9fkzpn/
我希望有人可以帮助我:)
【问题讨论】:
-
rightMoveControl定义在哪里? -
我在代码的顶部定义了我的所有变量,尽管我没有在这里显示它,因为这样扫描整个代码会很乏味。
-
更改变量的值不会使
ctx.fillText再次发生 -
所有的代码都在一个循环中重复运行,所以下次循环运行时不应该改变值吗?
-
没关系,但这已经是一个“复杂”的游戏,是什么阻止你实施这个“较小”的变化?是你的代码开始吗?
标签: javascript html html5-canvas keyevent