您的位置:程序门 -> 专题开发/技术/项目 -> 游戏开发



关于2d游戏里,图形闪烁问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于2d游戏里,图形闪烁问题
发表于:2007-02-05 14:01:14 楼主
请问如何解决图形闪烁问题
当精灵移动时,显示的图片总是闪烁,如何解决?

当有不同的精灵移动时,他们的移动速度不同(就像星际里的航母和机枪兵,他们的移动速度不同),如何实现此功能?
发表于:2007-02-05 14:11:061楼 得分:0
双缓冲的话写到后备缓冲就可以了...
移动速度的话,每一祯给予一个常量,移动速度大的给大点就行
发表于:2007-02-06 17:12:132楼 得分:0
double   buffer
发表于:2007-02-07 08:39:143楼 得分:0
恩~
使用两个缓冲表面,先把要画的图全都贴到后备的表面上,然后再把后备表面复制到主表面上
这方面的知识,很多书上有讲
发表于:2007-03-08 20:56:164楼 得分:0
以前遇到过,双缓冲可以有效的解决,坚决不能在屏幕上直接绘制
发表于:2007-03-12 20:48:035楼 得分:0
楼上都是正解
我再补充一下,出现闪烁现像是因为先画了一幅背景,再画人物时,我们先会看到背景,再看到人物然后再看到背景,再看到人物...人是凭空出现在背景上的,所经看起来会有闪烁的现象,解决的办法就是让人物看起来不是凭空出现在背景上,而是画出来时人物就在背景上,这时我们可以新建一个表面,在上面先画背景再画人物,画完后把这个表面blt到主表面。
发表于:2007-03-22 23:41:286楼 得分:0
呵呵,我直接在opengl上面画2d图像。
呵呵,打开双缓存。呵呵,不闪
发表于:2007-03-28 21:44:347楼 得分:0
双缓存技术啊

offscreendc   =   createcompatibledc(getdc(hwindow));
offscreendcbitmap   =   createcompatiblebitmap   (getdc(hwindow),宽度,高度);

绘图擦除,重绘一律在offscreendc上..
然后通过bitblt   offsreendc     ->   hdc
发表于:2007-04-22 00:14:018楼 得分:0
-____-
偶写过一个   directdraw   窗口模式的2d有用双缓存....
可是小精灵还是闪动的厉害....-__-     (大概是20*20)
发表于:2007-04-22 19:07:569楼 得分:0
把背景画刷设为null
发表于:2007-04-25 16:36:4610楼 得分:0
双线40g总出口(配备绿盟黑洞硬防集群)
九江作为江西省电信连接chinanet骨干网结点,江西九江数据中心总占地面积超过2000平方米,机房拥有盛大英雄世纪、李嘉诚tom.com旗下子站等vip用户。
现优惠促销中,游戏玩家强力推荐机房!
典型客户:   盛大(独立区域)   中国网银(独立机柜)
    传奇英雄合击版本+网战+登陆器800
送永久m2
详情请
咨询qq:455968882       http://idc.cnred.net  
热线电话:0755-88840309-809       盘小姐
手机号码:15818656957   盘小姐
发表于:2007-06-06 21:24:0811楼 得分:0
渲染的时候只渲染后备缓冲,然后再flip
发表于:2007-06-10 10:28:3012楼 得分:0
上面说的很正确,使用双缓冲,有个小技巧使用vcl的话你只需要   main-> ublebuffered=true;

看看我写的开源小游戏crazycube.pk-king.com.cn


快速检索

最新资讯
热门点击