我是画布的新手。我是一名学生,目前在画布上开发一个Runner Game。我有函数jump()
,在mousedown()
事件发生时调用;
function jump(){
img= new Image();
//is_jump=1;
h.clearRect(20,430,170,250);
img.onload= function(){
//h.drawImage(img,mx,my,190,280,120,410,190,350);
h.drawImage(img,mx,my,190,350);
//mX--;
//mY--;
}
img.src= "mario-Copy.png";
h.clearRect(mx,my,190,350);
//for(i=mx;i<130;i+=7)
//{
if(mx<110&&my<480){
mx=(mx+5);
my=(my-15);
//setTimeout(h.drawImage(img,mx,my,190,350),100000/5);
h.drawImage(img,mx,my,190,350);
}else{
mx=60;
my=410;
}
}
问题是跳跃角色不能正常工作,它会慢慢跳跃并且在移动时不会清除之前的跳跃状态图像。
请帮助我,让我的动画正常而顺畅地运作。
目标是通过点击使角色跳跃。
答案 0 :(得分:0)
我认为问题是你正在清除和重绘同样的跳跃功能。我要做的是创建一个单独的draw()和clear()并将它们放在一个setinterval中并运行。然后,你需要做的所有跳转功能都是更新对象的位置,你可以直接通过jump()改变绘制的位置,或者在绘制之前有一个单独的update()函数来编辑这些值