Я хотел сделать простой скользящий мяч, с помощью стрелок, так что я сделал:Бала не двигается плавно
<canvas id="canvas" width="300" height="300" ></canvas>
<script>
var x=120;
var y=120;
var key,pos=0;
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var img=new Image();
img.onload=function()
{
ctx.drawImage(img,x,y);
}
img.src="http://www.infogridpacific.com/blog/i/ball_online.png";
document.onkeydown=function(e)
{
pos=1;
key=window.event?e.keyCode:e.which;
}
document.onkeyup=function(e){pos=0;}
setInterval(function()
{
if(pos==0)return;
if(key==37)x-=2;
if(key==38)y-=2;
if(key==39)x+=2;
if(key==40)y+=2;
canvas.width=canvas.width;
ctx.drawImage(img,x,y);
},5);
</script>
http://jsfiddle.net/mageek/ny3uz/6/
Но если влево, затем вправо, мяч останавливается на одну секунду затем начните движение в противоположном направлении. Любая идея, как это исправить?
Выглядит хорошо для меня. Какой браузер вы используете? – phihag
Почему вы проверяете браузеры при каждом нажатии клавиши? никогда не видел переключение браузера в середине исполнения до ... – dandavis
@phihag Я заметил его в Chrome 27, и его не только влево, то и происходит спорадически вверх и вниз. – stackErr