是否可以为实体定义更准确的自定义形状碰撞框而不是矩形?

时间:2014-02-12 11:57:05

标签: collision impactjs

是否可以为实体定义更准确的自定义形状碰撞框而不是矩形? 请告诉我是否有可能以及如何?

1 个答案:

答案 0 :(得分:3)

当然有可能,并且有多种可能的解决方案:

但是,如果您只想进行一些自定义形状碰撞,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.