Javascript 如何增加游戏的得分值?

Javascript 如何增加游戏的得分值?,javascript,Javascript,我正在做一个游戏,玩家在游戏中接住掉落的物体。当一个物体被抓到时,分数应该增加1,但事实并非如此。我已经有了一个碰撞功能,当玩家捕捉到物体时,物体就会消失。分数已经显示在屏幕上。这是我的密码: (()=>{ //一般来说,除了明确标记的部分外,不要触摸任何东西。 //寻找这些标记的感叹号(!!!!!!!)。 让canvas=document.getElementById(“游戏”); 让game=canvas.getContext(“2d”); 设lastTimestamp=0; 让playe

我正在做一个游戏,玩家在游戏中接住掉落的物体。当一个物体被抓到时,分数应该增加1,但事实并非如此。我已经有了一个碰撞功能,当玩家捕捉到物体时,物体就会消失。分数已经显示在屏幕上。这是我的密码:

(()=>{
//一般来说,除了明确标记的部分外,不要触摸任何东西。
//寻找这些标记的感叹号(!!!!!!!)。
让canvas=document.getElementById(“游戏”);
让game=canvas.getContext(“2d”);
设lastTimestamp=0;
让playerScore=0;
const FRAME_RATE=60;
const FRAME_DURATION=1000/帧速率;
//!!!!!!!根据需要更改/添加。您的游戏想法还需要哪些其他对象或变量?
//得分?不同类型的失球?球员统计?一切都取决于你!
让fallers=[];
//查看酷炫的ES6功能:默认参数值!
常量默认值=0.0002;//这是每毫秒。
let Faller=函数(x,y,宽度,高度,dx=0,dy=0,ax=0,ay=DEFAULT\u下降){
这个.x=x;
这个。y=y;
这个。宽度=宽度;
高度=高度;
//速度。
this.dx=dx;
this.dy=dy;
//加速。
this.ax=ax;
this.ay=ay;
};
Faller.prototype.draw=函数(){
game.fillStyle=“蓝色”;
game.fillRect(this.x,this.y,this.width,this.height);
};
Faller.prototype.move=函数(毫秒selapsed){
//好的牛顿物理学。
this.x+=this.dx*毫秒已被捕获;
this.y+=this.dy*毫秒秒秒;
this.dx+=this.ax*毫秒已加载;
this.dy+=this.ay*毫秒秒秒数;
};
常量默认值\u播放器\u宽度=45;
常量默认值\玩家\高度=20;
const DEFAULT_PLAYER_Y=canvas.height-DEFAULT_PLAYER_height;
让玩家=函数(x,y=默认玩家,宽度=默认玩家,宽度,高度=默认玩家,高度){
这个.x=x;
这个。y=y;
这个。宽度=宽度;
高度=高度;
};
Player.prototype.draw=函数(){
game.fillStyle=“aqua”;
game.beginPath();
game.moveTo(this.x-this.width/2,this.y+this.height);
game.lineTo(this.x-2,this.y);
game.lineTo(this.x,this.y-20);
game.lineTo(this.x+2,this.y);
game.lineTo(this.x+this.width/2,this.y+this.height);
game.closePath();
game.fill();
};
让玩家=新玩家(canvas.width/2);
//!!!!!!!你可以像对待可汗学院的“抽签”一样对待这个功能——只是在所有之前
//用`游戏'绘制说明`
let draw=(毫秒selapsed)=>{
game.clearRect(0,0,canvas.width,canvas.height);
faller.forEach((faller)=>{
faller.draw();
//碰撞功能!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
让playerScore=document.getElementById(“playerScore”);
如果(player.xfaller.x&&
player.yfaller.y){
game.clearRect(0,0,canvas.width,canvas.height);
};
playerScore+=1;
下落器移动(毫秒移动);
});
player.draw();
//移除触地的滑环。您可能有其他理由移除滑环。
fallers=fallers.filter((faller)=>{
返回下落器.y{
fallerGenerator=setInterval(()=>{
//!!!!!这段代码看起来很重复!嗯,怎么办。。。
让fallerWidth=Math.floor(Math.random()*宽度范围)+最小宽度;
推压(新的推压器)(
floor(Math.random()*(canvas.width-fallerWidth)),0,
瀑布宽度,数学地板(数学随机()*高度范围)+最小高度
));
},两个下降器之间的毫秒数);
};
让StopFallGenerator=()=>clearInterval(FallGenerator);
//!!!!!此部分在一定程度上也可以修改:它负责根据
//鼠标移动。
让setPlayerPositionBasedOnMouse=(事件)=>{
player.x=event.clientX/document.body.clientWidth*canvas.width;
};
document.body.addEventListener(“mouseenter”,setPlayerPositionBasedOnMouse);
document.body.addEventListener(“mousemove”,setPlayerPositionBasedOnMouse);
//好的,回到非接触区(除非你真的知道自己在做什么)。
让跑步=假;
让nextFrame=(时间戳)=>{
如果(!lastTimestamp){
lastTimestamp=时间戳;
}
if(时间戳-时间戳<帧持续时间){
如果(正在运行){
requestAnimationFrame(nextFrame);
}
返回;
}
绘制(时间戳-最后时间戳);
lastTimestamp=时间戳;
如果(正在运行){
requestAnimationFrame(nextFrame);
}
};
document.getElementById(“开始按钮”).addEventListener(“单击”,()=>{
运行=真;
最后时刻
let playerScore = 0;
let playerScore = document.getElementById("playerScore");
playerScore += 1;