procedure TForm1.FormCreate(Sender: TObject);
var i,j,xcorn:integer;
begin
randomize;    //随机函数
//////////////////////////////////////////////////////
//上载地板图形
floor1:=tbitmap.Create;  ////创建TBitMap实例
floor1.HandleType:=bmddb;
floor1.PixelFormat:=pf24bit;
floor1.LoadFromFile('res\tiles\tile3.bmp');
//floor1.Transparent:=true;
//floor1.TransparentColor:=floor1.Canvas.Pixels[0,0];floorsh:=tbitmap.Create;  ////创建TBitMap实例
floorsh.HandleType:=bmddb;
floorsh.PixelFormat:=pf24bit;
//floorsh.LoadFromFile('res\tiles\tile2.bmp');
floorsh.width:=floor1.width;
floorsh.height:=floor1.height;
floorsh.Canvas.Draw(0,0,floor1);
for i:=0 to floorsh.Height-1 do begin
    floorshb:=floorsh.ScanLine[i];
    for j:=0 to floorsh.Width-1 do begin
        if not ((floorshb[j*3]=getbvalue(floor1.Canvas.Pixels[0,0])) and (floorshb[j*3+1]=getgvalue(floor1.Canvas.Pixels[0,0])) and (floorshb[j*3+2]=getrvalue(floor1.Canvas.Pixels[0,0]))) then begin
            floorshb[j*3]:=round(floorshb[j*3]/2);
            floorshb[j*3+1]:=round(floorshb[j*3+1]/2);
            floorshb[j*3+2]:=round(floorshb[j*3+2]/2);
        end;
    end;
end;//putting tile masks on flore tiles
floor1.Transparent:=true;
floor1.TransparentColor:=floor1.Canvas.Pixels[0,0];
floorsh.Transparent:=true;
floorsh.TransparentColor:=floorsh.Canvas.Pixels[0,0];
//
////看不懂很多代码,我在网上找到一个关于利用Delphi实现图片淡入淡出的代码,与上面极其相似,
    我们在浏览网页时见过不少图像淡入淡出的特技,其实,用Delphi也可以实现这样的效果。
  用Delphi显示图像,有两个不可缺少的步骤,一是将图像装入Delphi隐形控件TBitmap中,二是用Canvas(画布)的Draw(x,y,Bitmap)或StretchDraw(Rect,Bitmap)方法将图像显示出来。淡出的效果就是将图像上每一个像素的颜色值进行设置,使它逐渐减少到0(黑色),实现图像的渐渐隐去。利用Canvas的Scanline属性可读取和设置图像每一行的像素颜色,我们就是利用它来实现特技的。淡入则是将一幅图像装入两个TBitmap对象,一个用来保存原始颜色,另一个用来处理,将像素的颜色从0逐渐递增到原始图的颜色,实现淡入的效果。
  准备工作:新建一个窗体并加入一个Image控件(用来显示图像特技),两个Button控件(用来切换淡入淡出)。下面我们将两个Button的Click事件源码介绍如下:
  unit drdc;
  interface
  uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
  type
  TForm1 = class(TForm)
  Button1: TButton;
  Button2: TButton;
  Image1: TImage;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;
  var
  Form1: TForm1;
  implementation
  {.DFM}
  procedure TForm1.Button1Click(Sender: TObject);
  var
  x,y,i:integer;
  Bitmap:TBitmap;
  pixcolo:PByteArray;
  begin
  Bitmap:=TBitmap.Create;
  //创建TBitMap实例
  try
  Bitmap.LoadFromFile
  ('c:windows ouds.bmp');
  Bitmap.PixelFormat:=pf24bit;
  for i:=0 to 255 do
  begin
  for y:=0 to Bitmap.Height-1 do
  begin
  pixcolo:=Bitmap.Scanline[y];
  //扫描每行像素颜色
  for x:=0 to ((Bitmap.Width3)-1) do
  if pixcolo[x]>0 then pixcolo[x]:=(pixcolo[x]-1);
  //递减颜色值,不同的递减值可改变不同的速度
  end;
  Image1.Canvas.Draw(0,0,Bitmap); 
  //画出图像
  Application.ProcessMessages;
  //系统做其他工作
  end;
  finally
  Bitmap.free; //释放位图
  end;
  end;
  procedure TForm1.Button2Click(Sender: TObject);
  var
  x,y,i,j:integer;
  Bitmap1,Bitmap2:TBitmap;
  pixcolo1,pixcolo2:PByteArray;
  begin
  Bitmap1:=TBitmap.Create;
  Bitmap2:=TBitmap.Create;
  try
  Bitmap1.LoadFromFile('c:windows ouds.bmp');
  //将同一幅图像装入两个TBitmap实例
  Bitmap2.LoadFromFile('c:windows ouds.bmp');
  Bitmap1.pixelFormat:=pf24bit;
  Bitmap2.pixelFormat:=pf24bit;
  for y:=0 to Bitmap2.height-1 do
  begin
  pixcolo2:=Bitmap2.Scanline[y];
  for x:=0 to ((Bitmap2.Width3)-1) do
  pixcolo2[x]:=0;
  //先将要处理的图像的像素颜色值设为0
  end;
  for i:=0 to 255 do
  begin
  for y:=0 to Bitmap2.Height-1 do
  begin
  pixcolo2:=Bitmap2.Scanline[y];
  pixcolo1:=Bitmap1.Scanline[y];
  for x:=0 to ((Bitmap2.Width3)-1) do if pixcolo2[x]<pixcolo1[x] then pixcolo2[x]:=(pixcolo2[x]+1);
  end;
  //与原始图的像素颜色值比较,并递增其值直到与原始图相等
  Image1.Canvas.Draw(0,0,Bitmap2);
  Application.ProcessMessages;
  end;
  finally
  Bitmap1.free
  end;
  end;
  end.
  利用上面的程序,我们就在Delphi中初步实现了图像的淡入淡出效果。有高人可以帮我解释一下上一段代码是什么功能?实现3D效果?最好是可以给我每句都注释一下.谢谢了.