我想做一个技能碰撞检测,只有简单图形,圆形,扇形,矩形的技能,有没有一个简单的碰撞检测系统。现在不想引入过重的物理引擎的碰撞检测。看了SAT和SAP,只要碰撞就一直触发。没有进入碰撞,结束碰撞的一个设置。
如果只是简单的碰撞,不需要很精准的判断,可以使用AABB包围盒,我没有懂你最后一句话的意思,你是需要一个进入碰撞和结束碰撞的回调吗?如果是,可以用这种方式实现:
state=false;
update(){
if(碰撞&!this.state){
this.state=true
console.log("进入碰撞")
}else{
this.state=false
console.log("结束碰撞")
}
}
是这个意思,但是这个state对多物体碰撞就用不了
如果是多物体碰撞可以把state设置为一个Map对象,通过设置kv的方式存储,或者使用数组。
那确实只能自己实现了,其实也简单在碰撞body里保存一个碰撞当中的body的id,管理当前的碰撞id。