在Android游戏中控制子画面动画速度的标准方法

问题描述

我有一个包含7列的Sprite工作表。我想平滑地制作动画(更改列)。但是,如果我不使用更新%10来控制精灵速度,它的动画设置太快,因此无法识别动画。此刻,我每10帧在精灵列之间切换一次,根据不同android设备的FPS,这将不一致。有没有控制精灵动画速度的标准方法

private final int BMP_ROWS = 1;
private final int BMP_COLUMNS = 7;
 
// sprite update logic
public boolean update(float deltaTime) {

    delayCounterMs += deltaTime;
    animate = true;

    if (update % 10 == 0) {
        currentFrame = ++currentFrame % BMP_COLUMNS;
        int srcX = currentFrame * width;
        src = new Rect(srcX,srcX + width,height);
        dst = new Rect(x,y,x + width,y + height);
       
    }
    update++;
    return false;
}

 // sprite draw logic
 public void draw(Canvas canvas) {
    if (animate) {
        canvas.drawBitmap(bmp,src,dst,null);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)