游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3209|回复: 8

极其简单的图片横移,为什么会闪烁,求解

[复制链接]

2

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2004-10-25 16:46:00 | 显示全部楼层 |阅读模式
第三步为什么闪烁,请大家帮帮忙,谢谢!

第一步
循环执行如下过程:
   在缓冲区(内存)中贴上背景图,贴移动小图,小图横坐标+1(到800就为0),将缓冲区图像显示到显示区。
测试每秒桢数:230-260,不闪烁。

第二步
循环执行如下过程:
   在缓冲区(内存)中贴上背景图,从上向下贴移动小图50个(循环),小图横(所有)坐标+1,将缓冲区图像显示到显示区。
测试每秒桢数:60-70,不闪烁。

第三步
循环执行如下过程:
   在缓冲区(内存)中贴上背景图,从上向下贴移动小图50个(循环),小图横(所有)坐标+5,将缓冲区图像显示到显示区。
测试每秒桢数:60-70,狂闪烁或蹦动,反正感觉移动小图乱晃。

备注:
1、只一个小图片,桢数太高,每次+5一下就飞没了,看不清楚是否闪烁。
2、背景为黑色,执行第三步,会发现小图左侧(向右移动),有少许爆炸状光韵。
3、各机器都是如此,排除硬件原因。

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2004-10-25 20:23:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

很简单,交换缓冲的问题

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-25 20:36:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

Swapbuffers(hDC);
IN OPENGL
http://www.autsak.com/X_AdvCom_Get.asp?UserID=27

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-10-25 20:37:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

错了是SwapBuffers(hDc);
B没大写 :(
http://www.autsak.com/X_AdvCom_Get.asp?UserID=27

2

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-10-26 08:52:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

这个问题困扰我很久了
是“将缓冲区图像显示到显示区“ 这个步骤有问题吗?
我是直接将图象拷贝到显示区的。
查了一下帮助,SwapBuffers(open gl)的解释是 在非显示缓冲中画图——通过这个函数到显示缓冲——快速显示

那为什么当移动图片每次+1的时候看不出来闪烁呢



2

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-10-26 09:12:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

修改了第一步程序
循环执行如下过程:
   在缓冲区(内存)中贴上背景图,每15豪秒小图横坐标+5(到800就为0),贴移动小图,将缓冲区图像显示到显示区。
发现同样闪烁
而且即使修改为
   在缓冲区(内存)中贴上背景图,每15豪秒小图横坐标+1(到800就为0),贴移动小图,将缓冲区图像显示到显示区。
也有很轻微的颤抖现象。

2

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-10-26 11:08:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

一般dx的程序是如何解决这个问题的
比如飞机的子弹速度要比飞机快,如果每秒桢数不够的话,只能靠提高移动步长来加快速度,但每次移动超过3个像素就会不平滑,出现颤抖或蹦动或闪烁(说不清楚该感觉)

有人做过类似程序吗?

3

主题

186

帖子

190

积分

注册会员

Rank: 2

积分
190
发表于 2004-10-26 12:17:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

视觉对于100ms以内的物体一般是不能看清的
你的东东1000/60=16.666一帧
假如800*600的分辨率,也就是说100ms要移动6次,一次5px,一次跳动30个象素,1秒种300个象素,相当于屏幕的一半
2秒钟左右又要重新从上向下移,我认为是视觉上造成这种感觉

2

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-10-26 12:31:00 | 显示全部楼层

Re:极其简单的图片横移,为什么会闪烁,求解

to 风舞影天
有很多游戏有快速移动,他们怎么做的平滑实现的,您清楚吗?

我觉得是这个过程造成的
图像(等15毫秒左右)——坐标变了的图像(等15毫秒左右)——坐标变了的图像(等15毫秒左右)......
这样看起来就是一顿一顿地移动,步长越大越明显(有点像闪烁)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-22 23:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表