📄 dxwsceneunit.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 + -