播放动画的两种方法

原创 2007年09月19日 12:34:00

        在大部分设计的游戏中播放动画的方法有两种:一种是直接播放影片文件(如AVI和MPEG)文件,常用在游戏的片头与片尾;另一种则是游戏时利用连续贴图的方式,制作动画的效果。事实上游戏程序本身几乎都不得是以无限循环的方式不断地在游戏窗口中进行画面重绘的操作,即使用画面没有任何变化,这个重绘的操作还是不断进行的,一直到玩家选择结束游戏为止。

        进行连续的播放图片,一种是得用定时器,另一个是重写消息循环,又称为游戏循环。

1:定时器:UINT SetTimer(HWND   接收定时器消息的窗口 ,UINT    定时器代号(必唯一),

                                             UINT   时间间隔,      TIMERPROC    处理响应函数); 如:SetTimer(1,500,NULL);

删除定时器用KillTimer(int 定时器代号);

2:游戏循环:

while(msg.message!=WM_QUIT)

{

         if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))     //检测消息

          {

                        TranslateMessage(&msg);   DispatchMessage(&msg);

           }

         else

            {

                      tNow=GetTickCount();    //取得系统开始到目前经过的时间

                      if(tNow-tPre>=40)   MyPaint(hdc);//tPre为记录前次绘图时间。MyPaint(hdc)为重绘函数

           }

}

Note:

(1);使用PeekMessage()函数来检测目前是否有要处理的消息,若检测到消息(包含WM—QUIT消息)则会返回一个非零值,否则返回零;

(2):不能用GetMessage代替PeekMessage,因为GetMessage只有在取得WM—QUIT消息的时候才返回零,其他的时候则返回非零或"-1"(发生错误时);

(3):if(tNow-tPre>=40)   MyPaint(hdc);这里设定40个单位的原因是,因为每隔40个单位进行一次绘图操作那么1秒钟大约重绘窗口1000/40=25次,刚好可以达到期望值.要使玩家感觉不到延迟的状况,基本上游戏画面必须在一秒钟之内至少更新25次以上.由于循环的运行速度远比定时器发出时间信号来得快,因此使用游戏循环可以更精确的控制程序运行速度并提高每秒钟画面重画的次数.

objective-C 中两种实现动画的方法(转)

第一种方法:   view plain [UIView beginAnimations:@"Curl"context:nil];//动画开始   [UIView s...

Frame动画的两种方法(写死的Xml与SD卡图片动态加载)

注意: 有时动画会出现停留在第一帧不播放的情况。 是因为window还没有加载好。 所以最好这样: @Override public void onWindowFocusChanged(boolean...

objective-C 中两种实现动画的方法(转)

第一种方法:   view plain [UIView beginAnimations:@"Curl"context:nil];//动画开始   [UIView...

android两种动画 Tween Animation和Frame Animation使用方法总结 (转载 写的很好)

Android SDK介绍了2种Animation: Tween Animation(渐变动画):通过对特定的对象做图像变换如平移、缩放、旋转、淡出/淡入等产生动画效果 Frame Ani...

unity 2D游戏开发 制作帧动画的两种方法

本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法。 比较简单,一学即会。 方法一: 是用代码控制: 先创建一个2D工程。导入图片资源,并设置textur...

两种不同的方法使用不当Animation 四个动画效果Alpha.Scale.Rotate.Translate

使用Tweened Animations 的步骤 1.创建一个AnimationSet对象; 2.根据需要创建相应的Animation对象; 3.根据软件动画片的需求,为Animation对象设置相应...

《iOS6 application development》学习之路:No.6:两种实现动画的方法

在看iOS6应用开发时,介绍了一种播放动画的效果,其实就是一组数组,里面yi...

两种播放wave文件的方法(2KB)...

  • 2009年10月07日 13:23
  • 1KB
  • 下载

Qt程序启动画面播放(gif与swf两种动画格式) - 路上的脚印

学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少。 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:播放动画的两种方法
举报原因:
原因补充:

(最多只允许输入30个字)