html5 canvas键盘左右移动矩形的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html5 canvas键盘左右移动矩形的问题相关的知识,希望对你有一定的参考价值。

我现在写的是按下左右键 x-=10 x+=10 ,但是每次+10画面会不流畅,+1流畅,但是+1速度太慢,加20移动速度才合适,但是加的越多闪烁越明显,这个问题怎么解决?

加入一个间隔30ms(举个例子,可以根据实际情况修改)的定时器,

当你按下某个键(以左键为例),修改一个全局量bLeftDown=true;

定时器中检测bLeftDown,当bLeftDown时,执行 x-=1  操作,

当你松开某个按键的时候,修改一个全局量bLeftDown=false;

这样就可以比较流畅的移动矩形了

我的空战游戏就是这么做的,效果很好

var VK_UP = 38;var VK_DOWN = 40;var VK_RIGHT = 39;var VK_LEFT = 37;
var VK_A = 65;
document.onkeydown = function(event)
    //这个函数处理按键按下事件
        if (event.keyCode == VK_A || event.keyCode == VK_LEFT && !bLeftDown)                     bLeftDown = true;        
//....其他判断
document.onkeyup = function(event)
    //这个函数处理按键松开事件
    //类似处理,省略

参考技术A 你可以试试+2+3+4这些数值,直到你觉得不闪烁,并且速度又适中的追问

加10他们都嫌速度慢啊

以上是关于html5 canvas键盘左右移动矩形的问题的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 Canvas 上的矩形被拉伸

html5 canvas 画一个矩形,在矩形里添加文字。 文字颜色与矩形背景颜色有关问题?

HTML5 Canvas 中旋转矩形内的鼠标位置

HTML5 Canvas - 如何在画布中的图像上绘制矩形

HTML5 Canvas:旋转后获取矩形坐标(相对于屏幕)

html5 canvas在img标签的图片上绘制矩形框、矩形框为1px时线条模糊问题