使游戏角色行走,Javascript

使游戏角色行走,Javascript,javascript,html,game-development,Javascript,Html,Game Development,我想用一个行走的角色做一个简单的游戏。当按下一个按钮时,我想在两个图像之间连续切换(当按下按钮时),这将使角色看起来像是在移动。它确实会移动,但是图片之间的切换只在开始时发生一次。谁能告诉我我做错了什么?或者建议一种方法。这件事已经纠缠了好几个小时了 任何帮助都将不胜感激 普拉亚仇恨者 *{填充:0;边距:0;} var canvas=document.getElementById(“myCanvas”); var ctx=canvas.getContext(“2d”)//得到满足 var

我想用一个行走的角色做一个简单的游戏。当按下一个按钮时,我想在两个图像之间连续切换(当按下按钮时),这将使角色看起来像是在移动。它确实会移动,但是图片之间的切换只在开始时发生一次。谁能告诉我我做错了什么?或者建议一种方法。这件事已经纠缠了好几个小时了

任何帮助都将不胜感激


普拉亚仇恨者
*{填充:0;边距:0;}
var canvas=document.getElementById(“myCanvas”);
var ctx=canvas.getContext(“2d”)//得到满足
var step1=document.getElementById(“step1”);
var step2=document.getElementById(“step2”);
var currentStep=step1;
文档。addEventListener(“keydown”,keyDownHandler,false);
文件。addEventListener(“keyup”,keyUpHandler,false);
var-rightspressed=false;
var leftPressed=false;
var阶跃=5;
var距离=null;
函数keyDownHandler(e){
如果(e.keyCode==39){
rightspressed=true;
}
否则,如果(e.keyCode=37){
leftPressed=true;
}
}
函数keyUpHandler(e){
如果(e.keyCode==39){
右压=假;
}
否则如果(e.keyCode==37){
leftPressed=false;
}
}
//初始位置
var x=canvas.width/2;
变量y=画布高度/2-100;
函数drawShooter(){
ctx.drawImage(当前步长,x,y);
}
函数walk(){
如果(当前步骤=步骤1){
当前步骤=步骤2;
}
否则如果(当前步骤=步骤2){
当前步骤=步骤1;
}
}
函数绘图(){
clearRect(0,0,canvas.width,canvas.height);
拉丝射手();
如果(右键按下){
x+=阶跃;
设定间隔(步行,500);
} 
else if(左键按下){
x-=阶跃;
设定间隔(步行,500);
} 
}
设置间隔(抽签,20);

在您正在分配的walk函数上,而不是在if语句中进行比较。。。你有:

function walk(){
    if (currentStep = step1){
        currentStep = step2;
    }
    else if (currentStep = step2){
        currentStep = step1;
    }
}
你应该:

function walk(){
    if (currentStep === step1){
        currentStep = step2;
    }
    else if (currentStep === step2){
        currentStep = step1;
    }
}

请注意条件中的三重相等。这应该可以解决交换图像的问题。

嘿,伙计,很快地看了看你的代码,然后就要开会了,你有没有试过使用drawShooter();调用你的walk()函数?还没有尝试过你的方法,但是谢谢你的关注。我是分配而不是比较。最终放弃了interval for walk函数,并将其移动到keyDownHandler以避免延迟。我们所有人都会遇到这种情况:)祝你好运!:)