unit formSpiel;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, GLScene, GLObjects, GLMisc, GLWin32Viewer, GLFireFX,
GLCadencer, GLTexture, DXDraws, GLSkydome, GLCollision,
Keyboard, unitGL_Sprite, unitSpieler, GLCanvas, ExtCtrls, GLHUDObjects,
GLThorFX, Menus, inifiles, Gauges, GLSpaceText;
procedure TastaturAbfrage;
{hier wird die Tastenbelegung festgelegt}
type
TSpiel =
class(TDataModule)
MLSpieler: TGLMaterialLibrary;
GLCadencer_Spiel: TGLCadencer;
GLFireFXManager1: TGLFireFXManager;
GLScene_Spiel: TGLScene;
Text1: TSpaceText;
Kamera: TGLCamera;
Timer1: TTimer;
GLFireFXManager2: TGLFireFXManager;
GL_Timer: TTimer;
GLScene_Menue: TGLScene;
Plane1: TPlane;
Plane2: TPlane;
Kamera_Menue: TGLCamera;
GLCadencer_Menue: TGLCadencer;
GLThorFXManager1: TGLThorFXManager;
MLSpizzl: TGLMaterialLibrary;
MLZauber: TGLMaterialLibrary;
MLObjekte: TGLMaterialLibrary;
MLMenue: TGLMaterialLibrary;
MLSystem: TGLMaterialLibrary;
glSceneViewer: TGLFullScreenViewer;
procedure DataModuleCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure GLCadencer_SpielProgress(Sender: TObject;
const deltaTime,
newTime: Double);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure GLSceneViewer_SpielMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure GLSceneViewer_SpielMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure GL_TimerTimer(Sender: TObject);
procedure GLSceneViewer_MenueMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure GLCadencer_MenueProgress(Sender: TObject;
const deltaTime,
newTime: Double);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Spiel: TSpiel;
implementation
uses unitVariablen, unitKarte, unitSystem, unitHUD, unitSpizzl,
unitEffekte, unitKollision, unitObjekte, unitZauber, unitMenue;
{$R *.dfm}
procedure TSpiel.DataModuleCreate(Sender: TObject);
begin
Randomize;
sSpielPfad := ExtractFilePath(ParamStr(0))+'
..\..\';
iniConfig := TIniFile.Create(sSpielPfad+'
Daten\Config.ini');
iniSpielerDaten := TIniFile.Create(sSpielPfad+'
Daten\Spieler\Spieler.ini');
iniSpizzlDaten := TIniFile.Create(sSpielPfad+'
Daten\Monster\Spizzl.ini');
iniObjektDaten := TIniFile.Create(sSpielPfad+'
Daten\objekte\objekte.ini');
{systemressourcen laden z.b. mauszeiger}
//MLSystem.LoadFromFile(sSpielPfad+'grafik\system\system.lib');
glSceneViewer.Active:=True;
//Vollbild aktivieren
SpielStarten(0);
while glSceneViewer.Active
do begin
Forms.Application.ProcessMessages;
sleep(1);
GLCadencer_Spiel.Progress;
TastaturAbfrage;
HUDAktion;
{kamera bleibt über dem spieler}
Kamera.Position.X := Spieler.Position.x;
Kamera.Position.y := Spieler.Position.y;
maus.doMove(self,0,0);
end;
end;