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

📄 oxnewtonvehicle4wheels.pas

📁 Newton Game Dynamic 1.52 Delphi下基于GLScene的OpenGL游戏开发控件。功能非常强大和易于使用。 Advanced physics engine for re
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    mdStatic: SetMaterialSurface( True, 0.05, 0.4, 1.0, 1.0 );
  end;
end;   
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.SetWheelsMaterialSurfaceMode( const Mode: TOXMaterialSurfaceMode );
begin
  case Mode of
    mdNone: SetWheelsMaterialSurface( True, 0.0, 0.0, 0.0, 0.0 );
    mdDefault: SetWheelsMaterialSurface( True, 0.05, 0.4, 1.0, 0.5 );
    mdHard: SetWheelsMaterialSurface( True, 1.0, 0.5, 1.0, 0.5 );
    mdSoft: SetWheelsMaterialSurface( True, 0.01, 0.2, 1.0, 0.5 );
    mdSlide: SetWheelsMaterialSurface( True, 0.05, 0.4, 0.25, 0.25 );
    mdStatic: SetWheelsMaterialSurface( True, 0.05, 0.4, 1.0, 1.0 );
  end;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.SetMaterialSurface( Custom: boolean; Softness,
Elasticity, StaticFriction, KineticFriction: Float );
begin
  FMaterialCustom:= Custom;
  FMaterialSoftness:= Softness;
  FMaterialElasticity:= Elasticity;
  FMaterialStaticFriction:= StaticFriction;
  FMaterialKineticFriction:= KineticFriction;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.SetWheelsMaterialSurface( Custom: boolean; Softness,
Elasticity, StaticFriction, KineticFriction: Float );
begin
  FWheelsMaterialCustom:= Custom;
  FWheelsMaterialSoftness:= Softness;
  FWheelsMaterialElasticity:= Elasticity;
  FWheelsMaterialStaticFriction:= StaticFriction;
  FWheelsMaterialKineticFriction:= KineticFriction;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
function TOXNewtonVehicle.GetGeom: PNewtonCollision;
begin
  result:= FCollision;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
function TOXNewtonVehicle.GetBody: PNewtonBody;
begin
  result:= FBody;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.SetPin( val: TGLCoordinates );
begin
  FPin.SetVector( val.DirectX, val.DirectY, val.DirectZ );
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
function TOXNewtonVehicle.GetTire( Index: Integer ): TOXVehicleTire;
begin
  // Only allow valid index values
  if ( Index >= 0 ) and ( Index <= 3 )
  then Result:= FTire[Index]
  else Result:= nil;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFrom3DS( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromSMD( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromLWO( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromOBJ( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromSTL( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromMS3D( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromMD5( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromMD3( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromMD2( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 1;
  LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromMesh( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 2;
  MeshObjects.LoadFromFile( Vehicle );
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleLoadFromVHC( Vehicle: string;
Wheela,Wheelb,Wheelc,Wheeld: string );
begin
  FMeshModel:= 3;
  VehicleStreamDec(self,Vehicle,MaterialLibrary);
  FWheelaMeshName:= Wheela;
  FWheelbMeshName:= Wheelb;
  FWheelcMeshName:= Wheelc;
  FWheeldMeshName:= Wheeld;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonVehicle last change by Dave Gravel.                 //
{******************************************************************************}
procedure TOXNewtonVehicle.VehicleAutoConfig( const cName: ShortString; var Vhc: TOXNewtonVehicle );
var
  TmpStr1, TmpStr2: TMemoryStream;
  StrList: TStringList;
begin
  StrList:= TStringList.Create;
  TmpStr1:= TMemoryStream.Create;
  TmpStr2:= TMemoryStream.Create;
  try
    TmpStr1.LoadFromFile( cName );
    with Vhc do begin
    StrList.LoadFromStream( TmpStr1 );
    AutoFreeze:= False;
    ContinuousCollisionMode:= False;
    Position.SetPoint( StrToFloat( StrList.Strings[0] ),
                       StrToFloat( StrList.Strings[1] ),
                       StrToFloat( StrList.Strings[2] ) );
    // Vehicle wheel
    WheelaPos.X:= StrToFloat( StrList.Strings[3] );
    WheelaPos.Y:= StrToFloat( StrList.Strings[4] );
    WheelaPos.Z:= StrToFloat( StrList.Strings[5] );
    // Vehicle wheel
    WheelbPos.X:= StrToFloat( StrList.Strings[6] );
    WheelbPos.Y:= StrToFloat( StrList.Strings[7] );
    WheelbPos.Z:= StrToFloat( StrList.Strings[8] );
    // Vehicle wheel
    WheelcPos.X:= StrToFloat( StrList.Strings[9] );
    WheelcPos.Y:= StrToFloat( StrList.Strings[10] );
    WheelcPos.Z:= StrToFloat( StrList.Strings[11] );
    // Vehicle wheel
    WheeldPos.X:= StrToFloat( StrList.Strings[12] );
    WheeldPos.Y:= StrToFloat( StrList.Strings[13] );
    WheeldPos.Z:= StrToFloat( StrList.Strings[14] );
    Direction.X:= StrToFloat( StrList.Strings[61] );
    Direction.Y:= StrToFloat( StrList.Strings[62] );
    Direction.Z:= StrToFloat( StrList.Strings[63] );
    Up.X:= StrToFloat( StrList.Strings[64] );
    Up.Y:= StrToFloat( StrList.Strings[65] );
    Up.Z:= StrToFloat( StrList.Strings[66] );
    // Wheel Radius
    WheelaRadius:= StrToFloat( StrList.Strings[18] );
    // Wheel Radius
    WheelbRadius:= StrToFloat( StrList.Strings[19] );
    // Wheel Radius
    WheelcRadius:= StrToFloat( StrList.Strings[20] );
    // Wheel Radius
    WheeldRadius:= StrToFloat( StrList.Strings[21] );
    // Wheel Width
    WheelaWidth:= StrToFloat( StrList.Strings[22] );
    // Wheel Width
    WheelbWidth:= StrToFloat( StrList.Strings[23] );
    // Wheel Width
    WheelcWidth:= StrToFloat( StrList.Strings[24] );
    // Wheel Width
    WheeldWidth:= StrToFloat( StrList.Strings[25] );
    // Vehicle Mass
    Mass:= StrToFloat( StrList.Strings[26] );
    // Wheels Mass
    WheelMass:= StrToFloat( StrList.Strings[27] );
    // Vehicle Mass Center
    MassCenterX:= StrToFloat( StrList.Strings[28] );
    MassCenterY:= StrToFloat( StrList.Strings[29] );
    MassCenterZ:= StrToFloat( StrList.Strings[30] ); 
    // Vehicle Mass Regulation
    MassRegulation:= StrToFloat( StrList.Strings[31] );
    // Vehicle Mesh Name
    // StrToFloat( StrList.Strings[32] );
    // StrToFloat( StrList.Strings[33] );
    // StrToFloat( StrList.Strings[34] );
    // StrToFloat( StrList.Strings[35] );
    // StrToFloat( StrList.Strings[36] );
    //
    // Vehicle Wheels Traction
    if StrList.Strings[37] = 'Front' then Traction:= mdFront else
    if StrList.Strings[37] = 'Rear' then Traction:= mdRear else
    if S

⌨️ 快捷键说明

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