Javascript 为什么下一个按钮/开始按钮不工作?
我正在汗学院的一个项目中工作,在这个项目中我必须创建一个至少有3个关卡的游戏。我已经开发了大部分游戏,但当我试图从一个级别继续到下一个级别时,游戏不知何故停止了 以下是完整的项目:Javascript 为什么下一个按钮/开始按钮不工作?,javascript,processing.js,Javascript,Processing.js,我正在汗学院的一个项目中工作,在这个项目中我必须创建一个至少有3个关卡的游戏。我已经开发了大部分游戏,但当我试图从一个级别继续到下一个级别时,游戏不知何故停止了 以下是完整的项目: /** *包含3个级别 * * *改变立场 *棕色矩形被污垢块取代。 * *评分制度改变 *收集好的棍子得1分。 *收集坏棍子得-1分。(即失分)。 *击中岩石将损失1分。 * **/ 风险值水平=0; var nosOfSticks=5; var目标=0; 无功转速=1; var endLevel=fal
/**
*包含3个级别
*
*
*改变立场
*棕色矩形被污垢块取代。
*
*评分制度改变
*收集好的棍子得1分。
*收集坏棍子得-1分。(即失分)。
*击中岩石将损失1分。
*
**/
风险值水平=0;
var nosOfSticks=5;
var目标=0;
无功转速=1;
var endLevel=false;
var buttonClicked=false;
var levelButtonEnabled=错误;
var startButtonEnabled=真;
var Beaver=函数(x,y){//Beaver构造函数
这个.x=x;
这个。y=y;
this.img=getImage(“生物/霍珀快乐”);
这是0;
};
Beaver.prototype.draw=function(){//draw函数来绘制Beaver
填充(255,0,0);
此.x=约束(此.x,0,宽度-40);
this.y=约束(this.y,0,高度-50);
图像(this.img,this.x,this.y,40,40);
};
Beaver.prototype.hop=function(){//hop函数使Beaver跳跃
this.img=getImage(“生物/跳蚤”);
这个.y-=速度*5;
};
Beaver.prototype.hopLeft=函数(){
this.img=getImage(“生物/跳蚤”);
这个.x-=速度*5;
};
Beaver.prototype.hopRight=函数(){
this.img=getImage(“生物/跳蚤”);
这个.x+=速度*5;
};
Beaver.prototype.fall=function(){//fall函数使Beaver摔倒在地上
this.img=getImage(“生物/霍珀快乐”);
这个.y+=速度*5;
};
Beaver.prototype.checkForStickGrab=函数(stick){//检查sticks grab的函数
如果((stick.x>=this.x&&stick.x=this.y&&stick.y=this.x&&badstick.x=this.y&&badstick.y=this.x-40&&rock.x=this.y-30&&rock.y=this.x&&mouseX=this.y&&mouseY=target){
Drawin();
速度=1;
返回true;
}
};
var isLoss=function(){
if(beaver.sticks
欢迎使用stackoverflow。代码的问题在于drawLevel函数中的这一位
if (sticks[nosOfSticks - 1].x < -5) {
isWin();
isLoss();
}
if(条[nosOfSticks-1].x<-5){
伊斯温();
isLoss();
}
在程序开始时,您使用第124行中的一些棍棒对象初始化棍棒数组。当级别1结束并单击“下一步”按钮时,您将棍棒数组设置为空数组sticks=[]
在mouseClicked函数中。但是,您从未向sticks数组中重新添加任何内容。因此,当该代码块运行时,位于
nosOfSticks-1
位置的元素未定义,导致您的问题。我的建议是在
sticks=[]
之后创建一个for循环,以重新填充sticks数组,就像第124行一样。
祝你好运
另外,请参阅本指南以获取调试帮助。请发布一个链接,而不是指向整个项目的链接。
if (sticks[nosOfSticks - 1].x < -5) {
isWin();
isLoss();
}