用C语言写了一个贪吃蛇,求怎么利用双缓冲技术解决闪屏问题?

一是有闪屏问题,在网上找了说用双缓冲技术,看得我是一脸懵B。还有个奇葩问题就是,有时候蛇去食物的时候会黑一小会的屏。(我怀疑用了双缓冲就应该没这些问题了)。求好心人给我指... 一是有闪屏问题,在网上找了说用双缓冲技术,看得我是一脸懵B。还有个奇葩问题就是,有时候蛇去食物的时候会黑一小会的屏。(我怀疑用了双缓冲就应该没这些问题了)。求好心人给我指点一下 展开
 我来答
红颜不求得
2017-05-14 · TA获得超过773个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:222万
展开全部
人家说的双缓冲技术不是用于你这样的“黑窗口程序”的……
我没在黑窗口下做过游戏,所以不清楚你是怎么“将这些东西显示到屏幕上”的。但是我推测缓冲技术对于你的这个程序的问题没有效果。
3D游戏编程中的双缓冲技术指的是根据3D场景中摄像机的位置和角度,来生成一张“摄像机看到的图像”(也就是要显示到屏幕上的图像)时,生成的过程会有大量的计算,如果直接将“摄像机看到的图像”生成到屏幕上,那就会让观察者直接看着图像生成的过程,如果生成的速度很快那没问题,但显然得考虑到3D场景复杂、生成这张图像偏慢的情况,如果生成速度偏慢,那屏幕上就会看着图像从左到右或者从上到下一个个像素绘制出来的过程,这样的体验肯定很不好。所以我们先将图像“生成到一个缓冲区”,等图像生成完毕了,再将缓冲区里的完整的图像直接呈现到屏幕上,这样就可以避免“直接生成到屏幕上”导致的问渗神题,而如果我们使用了两个缓冲区(将下一张图像和下下张图像分别“生成”到这两个缓冲区,然后顺序呈现到屏幕上),那就叫“双缓冲”,类似的有单缓冲和三缓冲。

如果不太理解“3D场景”,“摄像机”,“摄像机看到的画面”,请想象一下我们的世界就是一个“3D场景”,我们的眼睛就是“摄像机”,我们的眼睛看到的(投射到视网膜上的)就是“摄像机看到的画面”,我们就是玩家。
在庆行类似CS这样的第一人称游戏中,我们的“摄像机”可以移动,去“观察”CS的“3D场景”。
在类似英雄联盟这样的“第三人称”游戏中,我们的“摄像机”是半固定的,我们只能以“上帝视角”去观察英丛差亏雄联盟的“3D场景”
wanghaoo6
2020-02-13
知道答主
回答量:1
采纳率:0%
帮助的人:646
展开全部
就是贴仿闭图誉掘太多,可能不在一个周期,导致屏幕闪烁,可以新建一个hdc map去先贴庆大核到map上,然后一张图导进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式