Einzelnen Beitrag anzeigen

Benutzerbild von Pyr0cracker
Pyr0cracker

Registriert seit: 15. Nov 2002
Ort: Norddeutschland
232 Beiträge
 
Delphi 7 Personal
 
#1

GLScene GLFullScreenViewer richtig benutzen?

  Alt 8. Jan 2004, 15:55
hallo!
Ich habe in mein Spiel einen GLFullScreenviewer eingebaut.
Ich hab jetzt kein Form mehr sondern ein DataModule wo ich die sachen reinpacke.
Mein Code:
Delphi-Quellcode:
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;
Wenn ich dass Spiel starte, werden aber nur die HUDSprites angezeigt, alles andere ist grau.

Weiß jemand woran das liegt?

Danke schonmal,
Dorian Vasco
dorianvasco.de
  Mit Zitat antworten Zitat