是否可以为实体定义更准确的自定义形状碰撞框而不是矩形?请让我知道这是否可能以及如何?
问问题
451 次
1 回答
3
当然有可能,并且有多种可能的解决方案:
- Box2D:是一个很棒的物理引擎,可以作为 ImpactJS 的插件使用,你可以在Impactjs.com/documentation/physics-with-box2d学习如何使用这个插件
但是,如果您只想做一些自定义形状碰撞,Box2D 就有点重了。
- 自定义实体碰撞检查: ImpactJS 是一个很棒的游戏引擎,它可以让您轻松扩展其任何模块,并且对于自定义实体碰撞检查,有两种可能的方法:
- 扩展
ig.Game.checkEntities
,这允许您遍历游戏中的所有实体并以您想要的方式检查它们的碰撞。 - 扩展
ig.Entity.check
,对于像我这样的懒人,只有当自定义形状包含在实体的矩形内时,才能在该函数内进行实体形状碰撞检查(实体矩形碰撞已经发生后)。
- 扩展
ig.Entity.check
例子:
MyEntity = ig.Entity.extend({
customShape: 'circle',
// custom shape definition...
customShapeProperties: {radius: 0},
check: function(other) {
// custom shape collision check...
if (...) {
this.customCheck(other);
}
},
customCheck: function(body) {}
});
// now if all your entities inherit MyEntity,
// they will have customCheck called only when the custom shape collision occur.
于 2014-02-12T15:01:06.533 回答