Code Search for Developers
 
 
  

Unit1.pas from Sector-37 at Krugle


Show Unit1.pas syntax highlighted

unit Unit1;

interface

{$I GLScene.inc}

uses
  //VCL
  Windows, SysUtils, Classes, Controls, Forms, StdCtrls, ExtCtrls, ComCtrls,
  //GLScene
  GLCadencer, GLScene, GLMisc, GLObjects, GLWin32Viewer,
  GLParticleFX, GLMovement,  GLGeomObjects,
  //Strange
  StrangeEngines, StrangeDragDropDestination, StrangeTrackBar
  {$IFDEF STRANGE_INIFILE_SUPPORT}, StrangeIniObjects{$ENDIF};

type
  TForm1 = class(TForm)
    GLScene1: TGLScene;
    GLSceneViewer1: TGLSceneViewer;
    GLCamera1: TGLCamera;
    Ship: TGLDummyCube;
    Cadencer: TGLCadencer;
    Renderer: TGLParticleFXRenderer;
    GLLightSource1: TGLLightSource;
    GLPlane1: TGLPlane;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    GroupBox1: TGroupBox;
    EngineListBox: TListBox;
    AddButton: TButton;
    RemoveButton: TButton;
    EngineInfo: TGroupBox;
    ExplorerDrop1: TStrangeDragDropDestination;
    world: TGLDummyCube;
    GLArrowLine1: TGLArrowLine;
    Timer1: TTimer;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Memo1: TMemo;
    Button4: TButton;
    Button5: TButton;
    procedure FormCreate(Sender: TObject);
    procedure GLSceneViewer1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure CadencerProgress(Sender: TObject; const deltaTime,
      newTime: Double);
    procedure AddButtonClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Engine: TStrangeEngines;
  mx, my:integer;

implementation

{$R *.dfm}
{$I GLScene.inc}

procedure TForm1.FormCreate(Sender: TObject);
begin
  {
  //Load the model
  Model.LoadFromFile('Data/mesh.md3');
  Model.Scale.Scale(0.005);
  Model.Material.Texture.Image.LoadFromFile('Data/texture.JPG');
  Model.Material.Texture.Enabled := True;
  }
  Engine := TStrangeEngines.CreateInitialized(Ship, Cadencer, Renderer, Renderer);
{$IFDEF STRANGE_INIFILE_SUPPORT}
//  Engine.LoadFromIniFile('config.dsc');
{$ENDIF}
  GetOrCreatemovement(Ship).StartPathTravel;
end;

procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  mx:=x;
  my:=y;
end;

procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
  if (ssRight in Shift) and (ssLeft in Shift) then
    glcamera1.AdjustDistanceToTarget(1 - 0.01 * (my-y))
  else
  if (ssRight in Shift) or (ssLeft in Shift) then
    glcamera1.MoveAroundTarget(y - my, x - mx);
  my:=y;
  mx:=x;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF STRANGE_INIFILE_SUPPORT}
  Engine.Mask.LoadFromIniFile('mask.dsc');
{$ELSE}
  Assert(False, 'Option DISABLED! Download StrangeIniFile from www.sector-37.com to support it!');
{$ENDIF}
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Engine.StopEngines;
  GetOrCreatemovement(Ship).Paths[0].Looped := False;
  GetOrCreatemovement(Ship).StopPathTravel;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Engine.StartEngines;
  GetOrCreatemovement(Ship).Paths[0].Looped := True;
  GetOrCreatemovement(Ship).StartPathTravel;
end;

procedure TForm1.CadencerProgress(Sender: TObject; const deltaTime,
  newTime: Double);
begin
  GLSceneViewer1.Invalidate;
end;

procedure TForm1.AddButtonClick(Sender: TObject);
begin
  EngineListBox.AddItem('Engine' + IntToStr(EngineListBox.Count + 1), Engine.Add);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Caption := GLSceneViewer1.FramesPerSecondText;
  GLSceneViewer1.ResetPerformanceMonitor;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Engine.Free;
end;

end.




See more files for this project here

Sector-37

Sector-37 (real time 3D cosmic strategy)

Project homepage: http://sourceforge.net/projects/sector37
Programming language(s): Pascal
License: lgpl21

  SDK Licence.txt
  StrangeSDKEngines.dpr
  StrangeSDKEngines.res
  Unit1.dfm
  Unit1.pas
  _Cleanup.bat