Javascript 各侧碰撞检测不工作
我最近一直在研究一个2D平台,它有多个字符,你可以在它们之间切换。我想实现碰撞检测,循环通过每个角色,并根据他们接触的一侧阻止其移动。基本上,这样的角色可以跳到另一个上面,不能通过对方。我使用了AABB Intersect碰撞检测系统,然后确定我击中了角色的哪一侧,我使用了以下代码:Javascript 各侧碰撞检测不工作,javascript,collision-detection,game-physics,Javascript,Collision Detection,Game Physics,我最近一直在研究一个2D平台,它有多个字符,你可以在它们之间切换。我想实现碰撞检测,循环通过每个角色,并根据他们接触的一侧阻止其移动。基本上,这样的角色可以跳到另一个上面,不能通过对方。我使用了AABB Intersect碰撞检测系统,然后确定我击中了角色的哪一侧,我使用了以下代码: for(var a=0;a
for(var a=0;a }
一次碰撞将在循环中造成两次碰撞,首先是当A=0
和被碰撞的对象b=1
(例如),然后当A=1
和b=0
时,将再次检测到相同的碰撞
我认为最好有一个非活动字符的数组,你可以对照一个活动字符进行检查
您可以在玩家切换角色时创建这些变量。这样,您只需要一个循环,而不需要if a!=b
检查
此代码说明了以下想法:
function characterChange(){
activeCharacter = objA;
inActiveCharacters = [objB, objC, objD];
}
function checkCollisions(){
for(let i = 0; i<inActiveCharacters.length; i++){
checkHit(activeCharacter, inActiveCharacters[i]);
}
}
function checkHit(a,b) {
// your a b check here
}
函数字符更改(){
activeCharacter=objA;
inActiveCharacters=[objB,objC,objD];
}
函数checkCollisions(){
对于(设i=0;我认为您可以检查角色是否与某个对象发生碰撞,以及是否是角色或块)执行该代码。我以前做过此操作。但是,如果我需要在非活动角色之间进行碰撞检测,该怎么办?有没有办法做到这一点?