大家好,我试着做一个碰撞功能,所以如果猴子碰到香蕉,香蕉就会移动到帆布周围的某个地方。
目前,猴子和椰子在四处移动,猴子和香蕉相撞,但香蕉之后就不动了。
这是一项功能:
var mx = canvas.width / 2;
var my = canvas.height / 2;
var mdx = 0;
var mdy = 0;
var mspeed = 2;
var mlives = 3;
var cx = 400;
var cy = 250;
var cspeed = 3;
var cdx = cspeed - 1;
var cdy = cspeed;
var bx = Math.floor(Math.random() * canvas.width);
var by = Math.floor(Math.random() * canvas.height);
var bananasEaten = 0;
var lives = 3;
var rightPressed = false;
var leftPressed = false;
var upPressed = false;
var downPressed = false;
function getBanana() {
if (mx <= (bx + bananaImage.width) && bx <= (mx + monkeyImage.width)) {
if (my <= (by + bananaImage.height) && by <= (my + monkeyImage.height)) {
bananasEaten = bananasEaten + 1;
bx = Math.floor(Math.random() * (canvasWidth - bananaImage.width));
by = Math.floor(Math.random() * (canvasHeight - bananaImage.height));
}
}
}发布于 2018-12-11 18:48:12
所以,基本上你想要检查猴子(mx,my)的位置是否与香蕉(bx,by)的位置相匹配。因此:
if( mx + monkey.width >= bx && mx <= bx + banana.width &&
my + monkey.height >= by && my <= by + banana.height) {
// Execute code
}不过,我要提到的是,您可能需要将这个getBanana函数放入另一个绘制游戏的函数中,这个函数一次又一次地使用setInterval或requestAnimationFrame调用,因为我猜这是某种游戏。
https://stackoverflow.com/questions/53730342
复制相似问题