HTML5游戏jump()函数无法正常工作

时间:2013-04-25 10:29:59

标签: javascript html5 animation html5-canvas

我是画布的新手。我是一名学生,目前在画布上开发一个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;
    }
}

问题是跳跃角色不能正常工作,它会慢慢跳跃并且在移动时不会清除之前的跳跃状态图像。

请帮助我,让我的动画正常而顺畅地运作。

目标是通过点击使角色跳跃。

1 个答案:

答案 0 :(得分:0)

我认为问题是你正在清除和重绘同样的跳跃功能。我要做的是创建一个单独的draw()和clear()并将它们放在一个setinterval中并运行。然后,你需要做的所有跳转功能都是更新对象的位置,你可以直接通过jump()改变绘制的位置,或者在绘制之前有一个单独的update()函数来编辑这些值