Code:
unit _main;
interface
uses Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
DJXTimer,
DJX,
ExtCtrls,
djxclasses,
d3dx9,
StdCtrls,
DJXFonts,
ComCtrls,
djxlandscape,
djxtextures,
Direct3D9,
djxrender,
djxmeshes,
DJXMaterials,
DJXLights,
Buttons,
__dxtexturemanager,
__pf_simplegame,
__consts;
type
Tf_main = class(TForm)
p_djx: TPanel;
djx_main: TDanJetX;
djxt_main: TDJXTimer;
djxfl_main: TDJXFontList;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure djxt_mainTimer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
procedure djxt_mainProcess(Sender: TObject);
private
programmpfad: string;
texturemanager: tdxtexturemanager;
simplegame: tpf_simplegame_2;
faktor_x,
faktor_y: single;
procedure renderdebuginfo;
public
{ Public-Deklarationen }
end;
var f_main: Tf_main;
implementation
uses __basics;
{$R *.dfm}
procedure Tf_main.FormCreate(Sender: TObject);
begin
programmpfad:= getprogrampath;
//danjetx initialisieren
djx_main.Width:= p_djx.Width;
djx_main.Height:= p_djx.Height;
djx_main.InitParams.VertexProcessing:= vpmixed;
djx_main.Start(p_djx.Handle);
if not djx_main.Initialized then exit;
//fonts
djxfl_main.CreateFont('courier_14', 'courier new', 14);
djxfl_main.CreateFont('courier_16', 'courier new', 16);
//seitenverh?§ltnis-faktoren ausrechnen
faktor_x:= djx_main.Width/ 640;
faktor_y:= djx_main.Height/ 480;
//texturemanager
texturemanager:= tdxtexturemanager.create;
texturemanager.djx:= djx_main; //ZUERST djx zuweisen
texturemanager.path_textures:= programmpfad+ 'textures\'; //DANN pfad einstellen
simplegame:= tpf_simplegame_2.create(handle);
simplegame.djx:= djx_main;
simplegame.texturemanager:= texturemanager;
simplegame.stretch_x:= faktor_x;
simplegame.stretch_y:= faktor_y;
simplegame.load_textmap(programmpfad+ 'maps\map1.txt');
//und timer an
djxt_main.enabled:= true;
end;
procedure Tf_main.FormActivate(Sender: TObject);
begin
simplegame.di_activate;
end;
procedure Tf_main.FormDeactivate(Sender: TObject);
begin
simplegame.di_deactivate;
end;
procedure Tf_main.djxt_mainProcess(Sender: TObject);
begin
simplegame.process;
if simplegame.state= pfs_quit then close;
label1.caption:= 'player pos '+ inttostr(simplegame.playerpos.x)+ '/'+ inttostr(simplegame.playerpos.y);
end;
procedure Tf_main.djxt_mainTimer(Sender: TObject);
begin
djx_main.BeginRender;
djx_main.ClearScreen(255, 255, 255);
//****
simplegame.render;
renderdebuginfo;
djx_main.EndRender();
end;
procedure Tf_main.renderdebuginfo;
begin
djxfl_main.Find('courier_16').Print(10, 10, 'debug info', djxcolor(cllime), true);
djxfl_main.Find('courier_14').Print(10, 30, 'fps: '+ inttostr(djxt_main.fps), djxcolor(cllime));
end;
end.
Bookmarks