【问题标题】:Control sprite animation speed控制精灵动画速度
【发布时间】:2013-08-13 05:04:09
【问题描述】:
如何使用create JS控制精灵的动画速度?
当您按左右键时,精灵将穿过帧...我想将 fps 保持在 60,但在不改变主游戏 FPS 速率的情况下改变帧循环的速度。
See a demo here.按左右箭头查看。
我认为更改 bmp 动画频率属性可以解决问题...
bmpAnimation.frequency = 2;
但它没有用......
或者我应该使用jQuery animation?
另外,我注意到每次我按下随机键时,动画播放一帧然后回到第一帧。这是为什么呢?
谢谢!
【问题讨论】:
标签:
javascript
animation
sprite
createjs
【解决方案1】:
1) frequency 是 spriteSheet-animation 的属性,而不是 bitmapAnimation 本身。
因此您必须在 SpriteSheetData 本身中设置频率 (http://www.createjs.com/Docs/EaselJS/classes/SpriteSheet.html),或者如果您想在运行时设置它,您可以使用:
bmpAnimation.spriteSheet.getAnimation("walk_right").frequency = 2;
还请注意,frequency 将在 EaselJS 的下一个版本中被弃用,取而代之的是speed(这是在下一个版本中,所以请记住一些事情)
2) 您当前每帧调用gotoAndPlay()(如果是行走),这意味着您的动画的每一帧都将设置为该动画的第一帧,您可以轻松避免这种情况通过使用类似的东西:
if ( dir == "right" and bmpAnimation.currentAnimation != "walk_right" ) {
bmpAnimation.gotoAndPlay("walk_right");
}
但更好的方法是只在您开始步行时调用该方法一次,然后在您停止步行时再次调用。