gpt4 book ai didi

javascript - HTML5/Javascript 游戏开发 - 如果我有多个边界,则只有最新的边界有效

转载 作者:行者123 更新时间:2023-11-28 02:26:03 27 4
gpt4 key购买 nike

所以基本上我有一个名为 createBoxBoundary 的函数,当玩家位置在一定限制内时,它将边界变量设置为 true。非常简单。但是,当我在主游戏循环中多次调用此函数时,只有最近调用的函数才起作用。下面是我的代码示例

//It should be noted the player deminsions are 40x80
function createBoxBoundary(x,y,width,height){
//right boundaries
if(playerXPos + 40 == x && playerYPos + 80 >= y && playerYPos < y + height){
boundaryRight = true;
} else{boundaryRight = false;}

//bottom boundaries
if(playerYPos == y + height && playerXPos + 40 >= x && playerXPos <= x + width){
boundaryTop = true;
} else{boundaryTop = false;}

//left boundaries
if(playerXPos == x + width && playerYPos + 80 >= y && playerYPos <= y + height){
boundaryLeft = true;
} else{boundaryLeft = false;}

//bottom boundaries
if(playerYPos + 80 == y && playerXPos + 40 >= x && playerXPos < x + width){
boundaryBottom = true;
} else{boundaryBottom = false;}
}

我还设置了 fiddle 带有完整的游戏代码。如果有人对在 javascript 中进行碰撞/边界的更好方法有建议,我也愿意接受。如有任何帮助,我们将不胜感激!

最佳答案

问题在于,在检查第二个边界的值是什么之前,您没有检查 boundaryRight 是否已设置为 true。

这样的事情应该有效:

boundaryRight = ( boundaryRight || ( playerXPos + 40 == x && playerYPos + 80 >= y && playerYPos < y + height );

我还在这个 jsFiddle 中做了一些其他调整,增加了定义边界和其他内容的更多灵 active 。还增加了向多个方向移动的能力。

http://jsfiddle.net/petersendidit/QdCMG/7/

关于javascript - HTML5/Javascript 游戏开发 - 如果我有多个边界,则只有最新的边界有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com