使用DelphiX显示图片并把图片作为背景

本代码是给予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. 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值