在javascript中向对象创建函数添加光标移动函数不会';行不通

在javascript中向对象创建函数添加光标移动函数不会';行不通,javascript,Javascript,我正在创建一个游戏,你用鼠标移动一个块,避开从屏幕右侧到左侧创建的障碍物,我的光标过去工作正常,障碍物创建也很好,但当我将它们组合在一起时,它似乎不再工作了,我不明白为什么,这是游戏代码 var-myGamePiece; var myobstackes=[]; 函数startName(){ myGamePiece=新组件(30,30,“红色”,10,120); myGameArea.start(); } var myGameArea={ 画布:document.createElement(“画

我正在创建一个游戏,你用鼠标移动一个块,避开从屏幕右侧到左侧创建的障碍物,我的光标过去工作正常,障碍物创建也很好,但当我将它们组合在一起时,它似乎不再工作了,我不明白为什么,这是游戏代码

var-myGamePiece;
var myobstackes=[];
函数startName(){
myGamePiece=新组件(30,30,“红色”,10,120);
myGameArea.start();
}
var myGameArea={
画布:document.createElement(“画布”),
开始:函数(){
this.canvas.width=600;
this.canvas.height=600;
this.canvas.style.cursor=“无”;
this.context=this.canvas.getContext(“2d”);
document.body.insertBefore(this.canvas,document.body.childNodes[0]);
这个.frameNo=0;
this.interval=setInterval(updateGameArea,20);
window.addEventListener('mousemove',函数(e){
myGameArea.x=e.pageX;
myGameArea.y=e.pageY;
})
},
清除:函数(){
this.context.clearRect(0,0,this.canvas.width,this.canvas.height);
},
停止:函数(){
clearInterval(这个.interval);
}
}
函数everyinterval(n){
如果((myGameArea.frameNo/n)%1==0){
返回true;
}
返回false;
}
功能组件(宽度、高度、颜色、x、y){
这个。宽度=宽度;
高度=高度;
这是0.speedX=0;
该值为0;
这个.x=x;
这个。y=y;
this.update=函数(){
ctx=myGameArea.context;
ctx.fillStyle=颜色;
ctx.fillRect(this.x,this.y,this.width,this.height);
}
this.crashWith=函数(otherobj){
var myleft=this.x;
var myright=this.x+(this.width);
var mytop=this.y;
var mybottom=this.y+(this.height);
var otherleft=otherobj.x;
var otherright=otherobj.x+(otherobj.width);
var othertop=otherobj.y;
var otherbottom=otherobj.y+(otherobj.height);
var-crash=true;
如果((我的底部<其他顶部)||
(我的顶部>其他底部)||
(右<左)||
(myleft>otherright)){
崩溃=错误;
}
返回碰撞;
}
}
函数updateGameArea(){
变量x,y;
对于(i=0;i
画布{
边框:1px实心#D3;
背景色:#f1f1;
}

移动光标以移动块状boii


我尊重任何愿意改进的人,因此请让我知道这是否有帮助。对于进一步的代码改进、提示等,我想向您指出。我会把我的笔记和工作代码放在这里,但肯定会很长。不过,首先,您的即时错误已修复,并在下面的代码段中注释。(主要归结为“修好你的卷发背带”)

修正错误
var-myGamePiece;
var myobstackes=[];
函数startName(){
myGamePiece=新组件(30,30,“红色”,10,120);
myGameArea.start();
}
var myGameArea={
画布:document.createElement(“画布”),
开始:函数(){
this.canvas.width=600;
this.canvas.height=600;
this.canvas.style.cursor=“无”;
this.context=this.canvas.getContext(“2d”);
document.body.insertBefore(this.canvas,document.body.childNodes[0]);
这个.frameNo=0;
this.interval=setInterval(updateGameArea,20);
window.addEventListener('mousemove',函数(e){
myGameArea.x=e.pageX;
myGameArea.y=e.pageY;
})
},
清除:函数(){
this.context.clearRect(0,0,this.canvas.width,this.canvas.height);
},
停止:函数(){
clearInterval(这个.interval);
}
}
函数everyinterval(n){
如果((myGameArea.frameNo/n)%1==0){
返回true;
}
返回false;
}
功能组件(宽度、高度、颜色、x、y){
这个。宽度=宽度;
高度=高度;
这是0.speedX=0;
该值为0;
这个.x=x;
这个。y=y;
this.update=函数(){
ctx=myGameArea.context;
ctx.fillStyle=颜色;
ctx.fillRect(this.x,this.y,this.width,this.height);
}
this.crashWith=函数(otherobj){
var myleft=this.x;
var myright=this.x+(this.width);
var mytop=this.y;
var mybottom=this.y+(this.height);
var otherleft=otherobj.x;
var otherright=otherobj.x+(otherobj.width);
var othertop=otherobj.y;
var otherbottom=otherobj.y+(otherobj.height);
var-crash=true;
如果((我的底部<其他顶部)||
(我的顶部>其他底部)||
(右<左)||
(myleft>otherright)){
崩溃=错误;
}
返回碰撞;
}
}
函数updateGameArea(){
变量x,y;
对于(i=0;i