我使用简单的for循环将pacman移动到一行,但是pacman会闪烁,或者可能是整个屏幕的更新和闪烁。我怎样才能使它更光滑呢?
编辑:
我目前正在使用C++涡轮及其内置的图形库。BUt我倾向于稍后使用SDL (在2D数组(网格)上使用图像块)。
发布于 2010-12-27 12:19:12
有许多技术可以用于框架之间的平稳转换。最简单的可能是双缓冲,即在可视视频内存之外完成帧的构造,然后整个内存块切换到新的帧位置(通常使用页面翻转、快速硬件切换,但即使在非视频内存中创建帧并在一次快速操作中将其“闪动”到视频内存也是有利的)。
通过使用这种方法,转换看起来更加流畅,因为您从来没有在任何时候显示过半构建的框架。尤其是如果切换是在硬件帧之间(至少在旧的CRT监视器上--实际上我不知道新的监视器是否有垂直和水平回溯的概念)。
另一种方法是保证每帧计算成本低。一个例子是只在非视频内存中绘制一次PacMan中的隧道线路,这样您就可以相对较快地“模糊”它(因为它们永远不会改变)。换言之,建立一个框架将包括:
change.
这大大加快了这个过程,我在俯视空间射击游戏中使用了这个技巧,这样更深的帧也能移动得更慢,从而产生视差效应。
https://stackoverflow.com/questions/4538522
复制相似问题