首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于高中项目的javascript基本碰撞函数

用于高中项目的javascript基本碰撞函数
EN

Stack Overflow用户
提问于 2018-12-11 18:34:10
回答 1查看 45关注 0票数 0

大家好,我试着做一个碰撞功能,所以如果猴子碰到香蕉,香蕉就会移动到帆布周围的某个地方。

目前,猴子和椰子在四处移动,猴子和香蕉相撞,但香蕉之后就不动了。

这是一项功能:

代码语言:javascript
运行
复制
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));
         }
    }
}
EN

Stack Overflow用户

回答已采纳

发布于 2018-12-11 18:48:12

所以,基本上你想要检查猴子(mx,my)的位置是否与香蕉(bx,by)的位置相匹配。因此:

代码语言:javascript
运行
复制
 if( mx + monkey.width >= bx && mx <= bx + banana.width &&
     my + monkey.height >= by && my <= by + banana.height) {
      // Execute code
 }

不过,我要提到的是,您可能需要将这个getBanana函数放入另一个绘制游戏的函数中,这个函数一次又一次地使用setIntervalrequestAnimationFrame调用,因为我猜这是某种游戏。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53730342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档