⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.pas

📁 维修店名称 陕西申元电子有限公司 店面地址 西安市友谊东路242号西海大厦一层 维修咨询 8008105858(免费) 或 010-64751880
💻 PAS
字号:
unit demo;

interface

uses Windows, Messages, SysUtils, Classes, Graphics,
     DDraw,DDDD,math,Defs,alphalib;

type
  Tdemo = class(TObject)

private

public
  BackBuf : TDDDDSurface;      //寢壥弌椡

  constructor Create;
  destructor  Destroy;
  procedure   Present;  // Presented By Ko-Ta
  procedure ImageDraw;

end;

implementation

//
procedure TDemo.ImageDraw;
begin
  DD.FrontBuffer.surface.BltFast(170,90,BackBuf.surface,rect(0,0,300,300),
                                 DDBLTFAST_WAIT or DDBLTFAST_NOCOLORKEY);
end;

//惗惉丒夝曻
constructor TDemo.Create;
begin
  BackBuf := TDDDDSurface.CreateOnSystemMemory(DD,300,300,0);
end;

destructor  TDemo.Destroy;
begin
  BackBuf.Free;
end;

// Presented By Ko-Ta
procedure TDemo.Present;
var
  kota : TDDDDSurface;
  make : TDDDDSurface;
  iii,jjj,aaa,a1,a2 : Integer;
  //Palette曐懚梡
  sr,sg,sb : array[0..255] of Byte;
begin
  //BMP偺撉傒崬傒
  kota := TDDDDSurface.CreateOnSystemMemory(DD,300,80,0);
  make := TDDDDSurface.CreateOnSystemMemory(DD,300,300,0);
  kota.LoadBMP('bmp\op01.bmp');
  make.loadBMP('bmp\op00.bmp');
  //僷儗僢僩傪堦帪曐懚偟偰僼僃亅僪僀儞
  for iii := 0 to 255 do
  begin
    sr[iii] := DD.Palette[iii].peRed;
    sg[iii] := DD.Palette[iii].peGreen;
    sb[iii] := DD.Palette[iii].peBlue;
  end;
  //僼僃亅僪僀儞
  for iii := 0 to 60 do
  begin
   for jjj := 0 to 255 do
   begin
    case iii of
     0..30 :    aaa := iii;
     31..60 : aaa := 60-iii;
     else       aaa := 0;
    end;
    DD.Palette[jjj].peRed :=   (sr[jjj]*aaa+0) div 30;
    DD.Palette[jjj].peGreen := (sg[jjj]*aaa+0) div 30;
    DD.Palette[jjj].peBlue  := (sb[jjj]*aaa+0) div 30;
    DD.Palette[jjj].peFlags := PC_NOCOLLAPSE;
   end;
   DD.UpdatePalette;
   BackBuf.BltFast(make,0,0,rect(0,0,300,300),DDBLTFAST_NOCOLORKEY);
   ImageDraw;
   sleep(25);
  end;
  AL.FillRect(BackBuf,rect(0,0,300,300),0);
  ImageDraw;
  //Palette暅尦
  for jjj := 0 to 255 do
   begin
    DD.Palette[jjj].peRed   := sr[jjj];
    DD.Palette[jjj].peGreen := sg[jjj];
    DD.Palette[jjj].peBlue  := sb[jjj];
    DD.Palette[jjj].peFlags := PC_NOCOLLAPSE;
   end;
  DD.UpdatePalette;
  //Ko-Ta
  for iii := 0 to 60 do
  begin
    case iii of
     0..30 :   aaa := iii*16;
     31..60 :  aaa := 510-(iii-30)*16;
     else      aaa := 0;
    end;
    AL.FillRect(BackBuf,rect(0,0,300,300),0);
    a1 := 255-abs(aaa-255);
    a2 := aaa-255;if (aaa < 255)then a2 := 0;
    Al.AlphBlend(BackBuf,0,120,kota,rect(0,0,300,40),a1,BM_SCREEN);
    AL.Noise(BackBuf,rect(0,100,300,200),80,10+aaa div 32,BM_SCREEN);
    AL.Noise(BackBuf,rect(0,100,300,200),80,10+aaa div 32,BM_SCREEN);
    AL.TVDisplay(BackBuf,rect(0,100,300,200));
    Al.AlphBlend(BackBuf,0,120,kota,rect(0,40,300,80),a2,BM_SCREEN);
    ImageDraw;
    sleep(25);
  end;
  //傑偢偙偺僜僼僩偱巊傢傟偰偄傞儘僑偨偪
  kota.free;
  make.free;
  DD.Clear;
  DD.Flip;
  DD.Clear;

end;



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -