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

📄 dxwsceneunit.pas

📁 Delphi Engine for games.
💻 PAS
字号:
//UnTitledRTS for UnDelphiX
unit DXWSceneUnit;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Contnrs,
  DXClass, DXSprite, DXInput, DXDraws,
  DXSounds, DIB , DXWStatObj;

Type
TScene = class(Tobject)
 Private
  FDXDraw  : TCustomDXDraw;
  FName    : String ;
  //procedure DXDrawNotifyEvent(Sender: TCustomDXDraw; NotifyType: TDXDrawNotifyType);
  procedure SetDXDraw(Value: TCustomDXDraw);
 protected
  procedure DoDraw; virtual;
 public
  FObjectList : TDXWObjectList;
  FImageList  : TDXImageList;
  FFonImageID : integer;

  constructor Create; virtual;
  destructor Destroy; override;


  Procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
  Procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
  Procedure MouseMove(Shift: TShiftState; X, Y: Integer); virtual;

  Procedure KeyDown(var Key: Word; Shift: TShiftState); virtual;
  Procedure KeyUp(var Key: Word; Shift: TShiftState);virtual;
  Procedure KeyPress(var Key : char); virtual;

  property  DXDraw: TCustomDXDraw read FDXDraw write SetDXDraw;
 end;


implementation
Uses Main;

{ TScene }

constructor TScene.Create;
begin
 inherited Create;
  FObjectList:=TDXWObjectList.Create;
  FImageList := TDXImageList.create(nil);
  FFonImageID:=-1;
end;

destructor TScene.Destroy;
Var
 i : integer;
begin
 FObjectList.Free;
 FreeAndNil(FImageList);//???
 inherited Destroy;
end;

procedure TScene.DoDraw;
begin
if FFonImageID>-1
 then FImageList.Items[FFonImageID].Draw(DXDraw.Surface, 0, 0, 0);

FObjectList.DoDraw;
end;

{
procedure TScene.DXDrawNotifyEvent(Sender: TCustomDXDraw;
  NotifyType: TDXDrawNotifyType);
begin
  case NotifyType of
    dxntDestroying: DXDraw := nil;
    dxntInitialize: FEngine.Surface := Sender.Surface;
    dxntFinalize  : FEngine.Surface := nil;
  end;
end;
}

procedure TScene.KeyDown(var Key: Word; Shift: TShiftState);
begin
FObjectList.KeyDown(Key,Shift);
end;

procedure TScene.KeyPress(var Key: char);
begin
FObjectList.KeyPress(Key);
end;

procedure TScene.KeyUp(var Key: Word; Shift: TShiftState);
begin
FObjectList.KeyUp(Key,Shift);
end;

procedure TScene.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
FObjectList.MouseDown(Button,Shift,X,Y);
end;

procedure TScene.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
FObjectList.MouseMove(Shift,X,Y);
end;

procedure TScene.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
 FObjectList.MouseUp(Button,Shift,X,Y);
end;

procedure TScene.SetDXDraw(Value: TCustomDXDraw);
begin
  //if FDXDraw<>nil then FDXDraw.UnRegisterNotifyEvent(DXDrawNotifyEvent);
  FDXDraw := Value;
  FImageList.DXDraw := Value;
  //if FDXDraw<>nil then FDXDraw.RegisterNotifyEvent(DXDrawNotifyEvent);
end;

end.

⌨️ 快捷键说明

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