Author Topic: Физика авто  (Read 256 times)

0 Members and 1 Guest are viewing this topic.

Offline Alec - WS3D Developer

  • Producer
  • Administrator
  • Marquess
  • *
  • Posts: 932
  • Reputation 36
  • Game making is my hobby for life!
Физика авто
« on: June 02, 2018, 06:37:15 PM »
В следующюю версию WS3D мы планируем включить физику авто. Проще говоря, теперь будут у движка и машинки.

Выкладываем демку v0.01 (пока без исходника). Там есть базовая физика. Это уже какой-никакой симулятор. Конечно, ещё многое нужно сделать и доработать. Работа над этим идёт. Машинки пока ведут себя не так как должны в нормальном симуляторе, но это только начало!

Скачать (zip, 10 мб)
« Last Edit: June 03, 2018, 04:53:39 AM by Alec - WS3D Developer »
WorldSim3D = 3D + FreeBasic. Программируй в удовольствие, а не "в тягость"! Make your project with pleasure, not with strain!

Offline Alec - WS3D Developer

  • Producer
  • Administrator
  • Marquess
  • *
  • Posts: 932
  • Reputation 36
  • Game making is my hobby for life!
Re: Физика авто
« Reply #1 on: June 03, 2018, 04:55:23 AM »
Ооопс, извините, не все ассеты приложил. Исправил.  :)
WorldSim3D = 3D + FreeBasic. Программируй в удовольствие, а не "в тягость"! Make your project with pleasure, not with strain!

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 897
  • Reputation 63
Re: Физика авто
« Reply #2 on: June 03, 2018, 06:43:19 PM »
Привет всем. Обновленная версия машин уже готова. Будет в следующей версии движка, надеемся, что скоро. Пока предлагаем демку.

Код машин полностью переписан, список доступных функций будет таков (пока вариант в С/С++ стиле):
Code: [Select]
///wPhysVehicle
wNode* wPhysVehicleCreate(Int32 tiresCount,
                          wPhysVehicleType rayCastType,
                          wNode* CarBody);

Int32 wPhysVehicleAddTire(wNode* Car,
                          wNode* UserData,
                          wPhysVehicleTireType tireType,
                          wVector3f position,
                          Float32 Mass,
                          Float32 Radius,
                          Float32 Width,
                          Float32 SLenght,
                          Float32 SConst,
                          Float32 SDamper);

Float32 wPhysVehicleGetSpeed(wNode* Car);

Int32 wPhysVehicleGetTiresCount(wNode* Car);

void wPhysVehicleSetBrake(wNode* Car,
                          bool value);

bool wPhysVehicleIsBrake(wNode* Car);

bool wPhysVehicleIsAllTiresCollided(wNode* Car);

void wPhysVehicleSetSteering(wNode* Car,
                             Float32 angle);///-1.......+1

Float32 wPhysVehicleGetSteering(wNode* Car);/// return value: -1......+1

void wPhysVehicleSetTireMaxSteerAngle(wNode* Car,
                                      Int32 tireIndex,
                                      Float32 angleDeg);

Float32 wPhysVehicleGetTireMaxSteerAngle(wNode* Car,
                                         Int32 tireIndex);

wNode* wPhysVehicleGetBody(wNode* Car);

void wPhysVehicleSetMotorValue(wNode* Car,
                              Float32 value);

Float32 wPhysVehicleGetMotorValue(wNode* Car);

///Vehicle Tires
wVector3f wPhysVehicleGetTireLocalPosition(wNode* Car,
                                           Int32 tireIndex);

Float32 wPhysVehicleGetTireUpDownPosition(wNode* Car,
                                          Int32 tireIndex);

/*bool wPhysVehicleIsTireOnAir(wNode* Car,
                             Int32 tireIndex);*/

Float32 wPhysVehicleGetTireAngularVelocity(wNode* Car,
                                           Int32 tireIndex);

Float32 wPhysVehicleGetTireSpeed(wNode* Car,
                                 Int32 tireIndex);

wVector3f wPhysVehicleGetTireContactPoint(wNode* Car,
                                          Int32 tireIndex);

wVector3f wPhysVehicleGetTireContactNormal(wNode* Car,
                                           Int32 tireIndex);

bool wPhysVehicleIsTireBrake(wNode* Car,
                             Int32 tireIndex);

wPhysVehicleTireType wPhysVehicleGetTireType(wNode* Car,
                                             Int32 tireIndex);

void wPhysVehicleSetTireType(wNode* Car,
                             Int32 tireIndex,
                             wPhysVehicleTireType tireType);

void wPhysVehicleSetTireBrakeForce(wNode* Car,
                                   Int32 tireIndex,
                                   Float32 value);

Float32 wPhysVehicleGetTireBrakeForce(wNode* Car,
                                      Int32 tireIndex);

void wPhysVehicleSetTireBrakeLateralFriction(wNode* Car,
                                             Int32 tireIndex,
                                             Float32 value);

Float32 wPhysVehicleGetTireBrakeLateralFriction(wNode* Car,
                                                Int32 tireIndex);

void wPhysVehicleSetTireBrakeLongitudinalFriction(wNode* Car,
                                                  Int32 tireIndex,
                                                  Float32 value);

Float32 wPhysVehicleGetTireBrakeLongitudinalFriction(wNode* Car,
                                                     Int32 tireIndex);

void wPhysVehicleSetTireLateralFriction(wNode* Car,
                                        Int32 tireIndex,
                                        Float32 value);

Float32 wPhysVehicleGetTireLateralFriction(wNode* Car,
                                           Int32 tireIndex);

void wPhysVehicleSetTireLongitudinalFriction(wNode* Car,
                                             Int32 tireIndex,
                                             Float32 value);

Float32 wPhysVehicleGetTireLongitudinalFriction(wNode* Car,
                                                Int32 tireIndex);

void wPhysVehicleSetTireMass(wNode* Car,
                             Int32 tireIndex,
                             Float32 mass);

Float32 wPhysVehicleGetTireMass(wNode* Car,
                                Int32 tireIndex);

void wPhysVehicleSetTireRadius(wNode* Car,
                               Int32 tireIndex,
                               Float32 radius);

Float32 wPhysVehicleGetTireRadius(wNode* Car,
                                  Int32 tireIndex);

void wPhysVehicleSetTireWidth(wNode* Car,
                              Int32 tireIndex,
                              Float32 width);

Float32 wPhysVehicleGetTireWidth(wNode* Car,
                                 Int32 tireIndex);

void  wPhysVehicleSetTireSpringConst(wNode* Car,
                                     Int32 tireIndex,
                                     Float32 value);

Float32 wPhysVehicleGetTireSpringConst(wNode* Car,
                                       Int32 tireIndex);

void wPhysVehicleSetTireSpringDamper(wNode* Car,
                                     Int32 tireIndex,
                                     Float32 value);

Float32 wPhysVehicleGetTireSpringDamper(wNode* Car,
                                        Int32 tireIndex);

void wPhysVehicleSetTireSuspensionLenght(wNode* Car,
                                         Int32 tireIndex,
                                         Float32 value);

Float32 wPhysVehicleGetTireSuspensionLenght(wNode* Car,
                                            Int32 tireIndex);

void wPhysVehicleSetTireUserData(wNode* Car,
                                 Int32 tireIndex,
                                 wNode* userData);

wNode* wPhysVehicleGetTireUserData(wNode* Car,
                                   Int32 tireIndex);

void wPhysVehicleSetTireMotorForce(wNode* Car,
                                   Int32 tireIndex,
                                   Float32 value);

Float32 wPhysVehicleGetTireMotorForce(wNode* Car,
                                      Int32 tireIndex);

void wPhysVehicleSetTireTurnForceHelper(wNode* Car,
                                        Int32 tireIndex,
                                        Float32 value);

Float32 wPhysVehicleGetTireTurnForceHelper(wNode* Car,
                                           Int32 tireIndex);
void wPhysVehicleSetTireSpinTorqueFactor(wNode* Car,
                                         Int32 tireIndex,
                                         Float32 value);

Float32 wPhysVehicleGetTireSpinTorqueFactor(wNode* Car,
                                            Int32 tireIndex);

void wPhysVehicleSetTireTorquePosition(wNode* Car,
                                       Int32 tireIndex,
                                       wVector3f position);

wVector3f  wPhysVehicleGetTireTorquePosition(wNode* Car,
                                             Int32 tireIndex);

Float32 wPhysVehicleGetTireLoad(wNode* Car,
                              Int32 tireIndex);

void wPhysVehicleSetTireSpinForce(wNode* Car,
                                  Int32 tireIndex,
                                  Float32 value);

Float32 wPhysVehicleGetTireSpinForce(wNode* Car,
                                     Int32 tireIndex);
Под лежачий камень мы всегда успеем...