游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2657|回复: 7

[求助]关于即时水波的问题!

[复制链接]

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2004-6-14 08:00:00 | 显示全部楼层 |阅读模式
//小弟在别处看到一篇关于即时水波的算法文章,是C++的,小弟把它改写成了Delphi的,但在编译运行时,出现了水波不仅无衰减,而且还越来越大!在这里请教各位大虾!还望指教!
[源代码如下]
Type
TPool = array [0..319] of array [0..239] of byte; //320*240的水池矩阵

Var
wx1,wx2,wxt: TPool;
bg: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin
bg:=TBitmap.Create; //背景缓冲
bg.Height:=238;
bg.Width:=318;
for i:=0 to 319 do
  for j:=0 to 239 do begin
   wx1[i][j]:=0;
   wx2[i][j]:=0;
  end;
timer1.Enabled:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i,j:integer;
begin
for i:=1 to 318 do
  for j:=1 to 238 do begin
   wx2[i][j]:=((wx1[i-1][j]+wx1[i+1][j]+wx1[i][j-1]+wx1[i][j+1]) shr 1)-wx2[i][j];
   wx2[i][j]:=wx2[i][j]-(wx2[i][j] shr 5);
   bg.Canvas.Pixels[i,j]:=rgb(0,wx2[i][j],wx2[i][j]);
  end;
wxt:=wx1;
wx1:=wx2;
wx2:=wxt;
form1.Canvas.CopyRect(rect(0,0,318,228),bg.Canvas,bg.Canvas.ClipRect);

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if (x<318) and (y<238) then wx1[x][y]:=64;

end;
[源代码如上]
//还望各位指点一二!

/maxhoov[em10]

3

主题

15

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2004-6-15 18:36:00 | 显示全部楼层

Re:[求助]关于即时水波的问题!

wx2[j]:=wx2[j]-(wx2[j] shr 5);
这段处理的是衰减,你可以把衰减增大试试看,改为
wx2[j]:=wx2[j]-(wx2[j]/16);
多改改试试应该可以得

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-6-16 20:26:00 | 显示全部楼层

Re:xjtuhong

3Q!
试过,不行啊!

/maxhoov[em10]

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-6-17 00:47:00 | 显示全部楼层

Re:[求助]关于即时水波的问题!

楼主可否告诉我在哪里可以找到这篇文章?

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-6-17 14:12:00 | 显示全部楼层

Re:fromhell

是CSDN的程序员大本营2001-游戏开发专集!
文章位置->45度和图块类游戏开发->制作水波特效的算法(一)/(二)
http://www.gameres.com/Articles/Program/Visual/Effects/pRipple.htm
http://www.gameres.com/Articles/Program/Visual/2D/2DWater.htm

/maxhoov[em10]

1

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2004-6-20 07:41:00 | 显示全部楼层

Re: [求助]关于即时水波的问题!

//帮忙看一下吧!
//急!!!!!

36

主题

382

帖子

498

积分

中级会员

Rank: 3Rank: 3

积分
498
发表于 2004-6-20 08:30:00 | 显示全部楼层

Re:[求助]关于即时水波的问题!

1)增大衰减程度,
2)看看你的函数是不是收敛的
3)程序其他地方有问题,比方算法前后的交换次序等

1

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2004-6-20 09:23:00 | 显示全部楼层

Re:[求助]关于即时水波的问题!

Delphi我不懂啊,用c不是很好吗?问一下是3维的波吗?我有个作品里有波。
附:
http://www.gameres.com/bbs/showthread.asp?threadid=8550
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-2 05:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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