帧动画怎么获取每一帧裁剪后的大小?并且每帧更改碰撞盒子??

我想问的是,帧动画里,在sprite的sizemode为RAW的情况下,如何每帧获取裁剪后的大小,然后更改碰撞盒的大小?

能,就像精灵一样

怎么做啊?求教

用那么痛苦吗…我做碰撞都是固定一个大小位置。动画的图片大小一般不会一样。只要保证主要的区域比如人的身体在碰撞范围内就行了。奔跑时,手脚之类的乱晃,碰撞就不管它们了。

要是跟着每帧换,可能会遇到例如奔跑时撞墙,这帧没撞,下一帧装撞了,出现移动卡顿的情况。

而且动画和碰撞到底哪个先执行不好说,我翻看了一下源码。

animationManagercollisionManager 这俩货都是 cc.Scheduler.PRIORITY_SYSTEM 优先级。

cocos-creator/engine 仓库里。

下面是摘自 CCDirector.js 这个文件的:

193行开始

// Animation manager
if (cc.AnimationManager) {
    this._animationManager = new cc.AnimationManager();
    this._scheduler.scheduleUpdate(this._animationManager, cc.Scheduler.PRIORITY_SYSTEM, false);
}
else {
    this._animationManager = null;
}

// collision manager
if (cc.CollisionManager) {
    this._collisionManager = new cc.CollisionManager();
    this._scheduler.scheduleUpdate(this._collisionManager, cc.Scheduler.PRIORITY_SYSTEM, false);
}
else {
    this._collisionManager = null;
}

哦,我明白了,谢谢你的解答,现在主要是帧动画是一个人物,还有一把武器,人物拿着武器,因为人物帧的原始大小和武器帧的原始大小是一样的,每帧都是一样的大小,想做一个攻击碰撞,我也没有考虑那么多,就来问了:sweat_smile: