代码之家  ›  专栏  ›  技术社区  ›  user432209

如何将“手动动画”设计成无代码延迟的Android游戏?

  •  4
  • user432209  · 技术社区  · 15 年前

    我正在为Android编写一个游戏,我认为我的架构和/或代码中有一个致命的缺陷。

    该体系结构基本上是两个线程,一个线程只是连续地绘制屏幕,另一个线程则根据用户的触摸屏输入控制屏幕上可绘图的移动。

    在后一个线程中,我基本上是做手动动画(在这里插入正确的术语),这意味着我通过在游戏进行过程中更改drawablerect的方法移动屏幕上的drawables。“不,不”,我认为我正在做的是在这些方法中插入延迟,以便它“看起来像一个实际的动画”。

    这一切都很好和花哨,因为我没有理由在这些动画过程中处理任何用户输入,但这真的让我恼火,我正在设计一个缺陷,使我的许多努力工作与我的游戏。我相信你们中的许多人都能从代码设计的角度来理解这一点。

    设计这种“手动动画”的正确方法是什么?这样,当动画发生时,我的代码仍然可以处理用户事件(如触摸屏幕)?

    以下是我的一个方法的参考示例:

    public void BadAnimation() {    
        for (int k = 0; k < mAnimationHeight; k++) {
            for (int i = 0; i < mRows; i++) {
                for (int j = 0; j < mCols; j++) {
                    if (myObject.mFlag[i][j]) {
                        myObject[i][j].mRect.top++
                    }
                }
            }
            try {
                  Thread.sleep(3);
            } 
            catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
            }
        }
    }
    
    2 回复  |  直到 15 年前
        2
  •  0
  •   Biff MaGriff    15 年前