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

原创 2007年09月26日 17:54:00

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Delphi 与 DirectX 之 DelphiX(18): TDXDraw 中描绘图片的命令

====================================================== 注:本文源代码点此下载 =============================...

Button的背景使用selector图片无法显示的问题

android的Button控件在应用里是十分常见的,功能也十分强大!但是想把它做得漂亮一点,交互效果好一点,就需要一点技巧----使用selector,进行便利的UX效果配置,selector使用的...
  • Alrdy
  • Alrdy
  • 2012-08-06 21:39
  • 2480

NSIS 学习(1)——安装包打开后主界面显示背景图片(使用向导创建)

 var txt_LicensePage Var TopImage Var BGImage Var ImageHandle ; 该脚本使用 HM VNISEdit 脚本编...

Android 利用多线程异步加载图,并把图片处理成圆角,并更新视图

package com.ruanyun.yey.common.util; import java.lang.ref.SoftReference; import java.util.Hash...

从摄像头拍照,并把图片转为视频

Snapshot.java /*  *   */ package com.naptv.impl; import com.naptv.service.SnapToVideo; import java...

fileupload图片上传并把地址保存到数据库

fileupload图片上传并把地址保存到数据库
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)