我想问的是,帧动画里,在sprite的sizemode为RAW的情况下,如何每帧获取裁剪后的大小,然后更改碰撞盒的大小?
能,就像精灵一样
怎么做啊?求教
用那么痛苦吗…我做碰撞都是固定一个大小位置。动画的图片大小一般不会一样。只要保证主要的区域比如人的身体在碰撞范围内就行了。奔跑时,手脚之类的乱晃,碰撞就不管它们了。
要是跟着每帧换,可能会遇到例如奔跑时撞墙,这帧没撞,下一帧装撞了,出现移动卡顿的情况。
而且动画和碰撞到底哪个先执行不好说,我翻看了一下源码。
animationManager 和 collisionManager 这俩货都是 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;
}
哦,我明白了,谢谢你的解答,现在主要是帧动画是一个人物,还有一把武器,人物拿着武器,因为人物帧的原始大小和武器帧的原始大小是一样的,每帧都是一样的大小,想做一个攻击碰撞,我也没有考虑那么多,就来问了