编了一个小游戏,但屏幕老是闪烁,请哪位高人有时间给解答一下,谢谢.(100分)

  • 主题发起人 主题发起人 rocqd
  • 开始时间 开始时间
R

rocqd

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个小游戏,其实是抄了一个小游戏,:D
游戏中的背景、人物、道具等先做了若干*.bmp文件,然后根据一个数据文件
(文件类型为file of Integer)中约定的数据,利用背景的
canvas.copyrect(rect(...),源image.canvas,rect(...))来布置游戏场景,并使
游戏场景随着数据文件的变化而变化。但有一个很讨厌的问题就是
屏幕总是随着场景的变化闪烁,真让人心烦。我怀疑是用
canvas.copyrect()方法造成的。对否?怎样解决这个问题?
我发现许多公布源码的游戏有类似的屏幕闪烁情况,这和delphi有关吗?
 
好像用DirectX做比较好
我有本书介绍怎样用,代码好长,我从来没试过……
 
在image控件所在的窗体加如以下代码
如:
rocedure TForm1.FormCreate(Sender: TObject);
begin
Self.DoubleBuffered:=true;
end;
 
楼上的给出答案了,双缓冲,不过会加大程序开销的内存。
 
在Form的OnCreate中将重画的控件设置DoubleBuffered
 
amakuma,你好.
屏幕闪烁只和缓存有关吗,和编程方法、控件用法有无关系?
 
这个问题就是你的编成方法和控件用法有问题呀,我也有过的,:)
 
谢谢诸位,问题解决了。
如果能将原理介绍一下就更谢谢了,哈哈。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部