如何在opengl中逐帧动画

时间:2011-08-05 08:31:06

标签: android opengl-es

任何人都可以指导我在opengl中制作动画。我尝试使用普通的逐帧动画和使用画布,但我有一些缺点,因为我需要将两个位图合并为单个位图并制作动画,所以现在我尝试尝试使用opengl。 我试过这段代码

   img.setOnClickListener(this);
    int reasonableDuration = 50;
    mframeAnimation = new AnimationDrawable();
    mframeAnimation.setOneShot(false);
    mframeAnimation.addFrame(frame1, reasonableDuration);
    mframeAnimation.addFrame(frame2, reasonableDuration);
    mframeAnimation.addFrame(frame3, reasonableDuration);
    mframeAnimation.addFrame(frame4, reasonableDuration);
    mframeAnimation.addFrame(frame5, reasonableDuration);
    mframeAnimation.addFrame(frame6, reasonableDuration);
    mframeAnimation.addFrame(frame7, reasonableDuration);

    moveLefttoRight = new TranslateAnimation(400, 0, 0, 0);
    moveLefttoRight.setDuration(3000);
    moveLefttoRight.setFillAfter(true);

    img.setBackgroundDrawable(mframeAnimation);

    mframeAnimation.setVisible(true, true);
    //If this line is inside onClick(...) method of a button, animation works!!


}
用谷歌搜索后,我得到了一个上面的代码正常逐帧动画,但在这里我需要在某一点停止动画,所以我需要去opengl。请指导我..

2 个答案:

答案 0 :(得分:1)

我最近一直在阅读这篇文章,我可以为你做的是转到这个链接:

http://obviam.net/index.php/a-very-basic-the-game-loop-for-android/
http://www.rbgrn.net/content/54-getting-started-android-game-development

不确定这是否是您正在寻找的但希望有所帮助

答案 1 :(得分:1)

您的错误在于将事件处理与动画迭代混合在一起。通常你有一些在循环中调用的显示函数。在每次显示迭代之前,您将推进动画状态并使显示功能以当前状态渲染场景。

事件处理程序OTOH只是触发动画,但不动画它们。