【发布时间】:2023-03-16 19:33:01
【问题描述】:
我之前也问过类似的问题,但我没有得到解决方案。
我目前有 7 个从上到下的错误。我希望用户能够单击一个会导致它淡出/消失的错误。如果鼠标在图像内,我需要某种检测,单击时会使其淡出或无效。
这很重要,因为我将包含一个评分系统,每次击中将获得 1 分,每次未命中将失去 1 分。
var noOfBugs = 7;
var bug = [];
for(var i =0; i < noOfBugs; i++){
var x = Math.floor(Math.random()*canvas.width);
var y = Math.floor(Math.random()*100);
bug[i] = new Bug(x,y);
}
imageBug = new Image();
imageBug.src = "imgs/redbug.png";
function Bug (x,y){
this.x = x;
this.y =y;
this.drop = function(){
var dir = Math.floor(Math.random())*3;
if(dir == 0){
this.x = this.x;
}
this.y = this.y+1;
if(this.y > canvas.height){
this.y=0;
}
}
this.show = function (){
context.drawImage(imageBug, this.x, this.y)
}
}
function draw (){
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
for(var i=0; i<noOfBugs; i++){
bug[i].show();
bug[i].drop();
}
}
// Mouse click on bug
canvas.onclick = function (event){
var mouseX = event.clientX;
var mouseY = event.clientY;
if (mouseX === x && mouseY === y){
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
context.globalAlpha = 0.1;
context.drawImage(imageBug, this.x, this.y, imageX, imageY);
alert("its a hit");
}
else {
alert("You missed");
score -= 0;
}
}
function reload (){
draw ();
window.requestAnimationFrame(reload);
}
reload();
};
【问题讨论】:
标签: javascript html5-canvas javascript-objects game-engine dom-events