3

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

4

1 回答 1

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.
于 2014-02-12T15:01:06.533 回答