利用空位图对象实现连贯动画显示

来源:互联网 发布:手机同声翻译软件 编辑:程序博客网 时间:2024/05/24 01:14

        实现一个人物从左走到右的动画效果,我发现了一些问题。

        还是使用三缓冲机制,首先我定义了三个句柄:g_hdc、g_mdc、g_bufdc。先在g_bufdc中分别载入每帧的人物图和背景图,然后将g_bufdc中人物图和背景图复制到g_mdc中,最后将最终的每帧图放入g_hdc中。但是,这时出现了一个问题。那就是载入下一帧的位图时,上一帧的图像还在那里。

        最后,我重新定义了一个与g_hdc兼容的空位图句柄,然后将其选中到g_mdc,最后动画贴图成功显示了。

        我发现是否建立空位图对象,取决于是否需要显示上一帧的人物,如果不需要显示就如此设置(例如人物行走),如果需要显示就不这样做了。

        代码如下(此段代码在Game_Init()中):

HBITMAP bmp;//建立一个和窗口兼容的空位图对象,这样每次g_mdc不会出现上次的贴图bmp = CreateCompatibleBitmap(g_hdc, WINDOW_WIDTH, WINDOW_HEIGHT);SelectObject(g_mdc, bmp);


0 0
原创粉丝点击