本代码是给予DelphiX的,各位朋友可以去www.2ccc.com上下载
步骤:
(1)在新建立的工程的主窗体上放置以下空间:DXImageList, DXDraw, DXSpriteEngine, DXTimer
(2)设置要显示的图片:DXImageList -> Items -> 新建一个 TPictureCollectionItem 命名为 BackGroundPicture -> 选择该项的 Picture 属性 -> 选择图片(BMP格式的);
以下是代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DXClass, DXDraws, DXInput, DXSprite, ExtCtrls;
type
TForm1 = class(TDXForm)
pnlPlan: TPanel;
DXDraw1: TDXDraw;
DXSpriteEngine1: TDXSpriteEngine;
DXTimer1: TDXTimer;
DXImageList1: TDXImageList;
procedure DXDraw1Initialize(Sender: TObject);
procedure DXDraw1Finalize(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
private
{ Private declarations }
procedure DrawBackGroundPicture;
public
{ Public declarations }
BackGroundSprite: TBackGroundSprite; {游戏的背景图}
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DXDraw1Initialize(Sender: TObject);
begin
DXTimer1.Enabled := True;
end;
procedure TForm1.DXDraw1Finalize(Sender: TObject);
begin
DXTimer1.Enabled := False;
end;
procedure TForm1.DrawBackGroundPicture;
begin
DXImageList1.Items.MakeColorTable;
//更新系统调色板
DXDraw1.ColorTable := DXImageList1.Items.ColorTable;
DXDraw1.DefColorTable := DXImageList1.Items.ColorTable;
DXDraw1.UpdatePalette;
//设置要显示的并要作为背景的图片
BackGroundSprite := TBackGroundSprite.Create(DXSpriteEngine1.Engine);
with TBackGroundSprite(BackGroundSprite) do
begin
SetMapSize(1, 1);
Image := DXImageList1.Items.Find('BackGroundPicture');
//图片层次
Z := -2;
//平铺
Tile := True;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DrawBackGroundPicture;
end;
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
if not DXDraw1.CanDraw then exit;
//以下为绘制背景图片
LagCount := 1000 div 60;
DXSpriteEngine1.Move(LagCount);
DXSpriteEngine1.Dead;
DXDraw1.Surface.Fill(0);
DXSpriteEngine1.Draw;
DXDraw1.Flip;
end;
end.