⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 It manages the behaviours of the users
💻 PAS
字号:
{: This Form demonstrates basic "Pathcontrol" movements.<p>   You can modified the Looped property of the path to enable the path-looping.   Set ShowPath property to turn on or turn off the path-displaying }unit Unit1;{$MODE Delphi}interfaceuses  LCLType, Forms, GLObjects, ComCtrls, GLMisc, ExtCtrls, StdCtrls,  Classes, Controls, GLBehaviours, Buttons, GLGraph, GLMovement,  GLLCLViewer, LResources, GLScene, GLCadencer;type  { TForm1 }  TForm1 = class(TForm)    GLScene1: TGLScene;    GLSceneViewer1: TGLSceneViewer;    Cube2: TGLCube;    GLCamera1: TGLCamera;    GLLightSource1: TGLLightSource;    DummyCube1: TGLDummyCube;    GLCadencer1: TGLCadencer;    MoveBtn: TBitBtn;    Timer1: TTimer;    Sphere1: TGLSphere;    procedure FormActivate(Sender: TObject);    procedure FormCreate(Sender: TObject);    procedure GLCadencer1Progress(Sender: TObject; const deltaTime,      newTime: Double);    procedure MoveBtnClick(Sender: TObject);    procedure Timer1Timer(Sender: TObject);  private    procedure PathTravelStop(Sender: TObject; Path: TGLMovementPath; var Looped: Boolean);    procedure PathAllTravelledOver(Sender: TObject);  public  end;var  Form1: TForm1;implementationuses   SysUtils, VectorGeometry, GLCrossPlatform;procedure TForm1.FormActivate(Sender: TObject);beginend;procedure TForm1.FormCreate(Sender: TObject);var  Movement: TGLMovement;  Path:     TGLMovementPath;  Node:     TGLPathNode;begin  //Create a movement, a path and the first node of the path  Movement   := GetOrCreateMovement(Cube2);  Movement.OnPathTravelStop := PathTravelStop;  Movement.OnAllPathTravelledOver := PathAllTravelledOver;  Path       := Movement.AddPath;  Path.ShowPath := True;  //Path.Looped := True;  Node       := Path.AddNodeFromObject(Cube2);  Node.Speed := 4.0;  //Add a node  Node       := Path.AddNode;  Node.Speed := 4.0;  Node.PositionAsVector := VectorMake(-10, 0, 0, 1);  Node.RotationAsVector := VectorMake(0, 0, 0);  //Add a node  Node       := Path.AddNode;  Node.Speed := 4.0;  Node.PositionAsVector := VectorMake(0, 5, - 5);  Node.RotationAsVector := VectorMake(0, 90, 0);  //Add a node  Node       := Path.AddNode;  Node.Speed := 4.0;  Node.PositionAsVector := VectorMake(6, - 5, 2);  Node.RotationAsVector := VectorMake(0, 180, 0);  //Add a node  Node       := Path.AddNode;  Node.Speed := 4.0;  Node.PositionAsVector := VectorMake(-6, 0, 0);  Node.RotationAsVector := VectorMake(0, 259, 0);  //Activatived the current path  Movement.ActivePathIndex := 0;end;procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,  newTime: Double);beginend;procedure TForm1.MoveBtnClick(Sender: TObject);var  Movement: TGLMovement;begin  Movement := GetMovement(Cube2);  if Assigned(Movement) then begin      Movement.StartPathTravel;      GLCadencer1.Enabled := True;  end;end;procedure TForm1.PathTravelStop(Sender: TObject; Path: TGLMovementPath; var Looped: Boolean);begin   if not Application.Terminated then      InformationDlg('Path Travel Stopped');end;procedure TForm1.PathAllTravelledOver(Sender: TObject);begin   if not Application.Terminated then      InformationDlg('All Path(es) Traveled Over');end;procedure TForm1.Timer1Timer(Sender: TObject);begin   Caption:=Format('%.2f FPS', [GLSceneViewer1.FramesPerSecond]);   GLSceneViewer1.ResetPerformanceMonitor;end;initialization  {$i Unit1.lrs}end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -