You are not logged in.

#1 2019-01-21 23:26:12

Txori
Admin

Bug de rotation Z sur playership nodes et lasers

Reproduction
Appuyer sur R et virer à droite tout en tirant. Plus on tourne, et plus les lasers partent vers le bas.
Même problème avec L + gauche + laser.

Si on affiche les nodes de collisions, il y a exactement le même problème.

  model m = CreateModel(Laser);

  float X, Y, Z, SX, CX, SY, CY, SZ, CZ;

  X = shooter.Rotation.X*PI*2;
  Y = shooter.Rotation.Y*PI*2;
  Z = (shooter == PlayerShip ? PlayerRotationZ : shooter.Rotation.Z) *PI*2;

  SX = sin(X); CX = cos(X);
  SY = sin(Y); CY = cos(Y);
  SZ = sin(Z); CZ = cos(Z);

  X = pos.X;
  Y = pos.Y;
  Z = pos.Z;

  m.Rotation = shooter.Rotation;
  if (shooter == PlayerShip) m.Rotation.Z = PlayerRotationZ;

  m.Position.X = shooter.Position.X + CY*CZ*X + (SX*SY*CZ-CX*SZ)*Y + (CX*SY*CZ+SX*SZ)*Z;
  m.Position.Y = shooter.Position.Y + CY*SZ*X + (SX*SY*SZ+CX*CZ)*Y + (CX*SY*SZ-SX*CZ)*Z;
  m.Position.Z = shooter.Position.Z + SX*CY*Y - SY*X + CX*CY*Z;

  m.Velocity.X = -1 * (CX*SY*CZ+SX*SZ) * speed;
  m.Velocity.Y = -1 * (CX*SY*SZ-SX*CZ) * speed;
  m.Velocity.Z = -1 * (CX*CY) * speed;

Offline

#2 2019-02-15 08:22:02

Txori
Admin

Re: Bug de rotation Z sur playership nodes et lasers

Problème à moitié réparé dans la version 130219:
Les tirs ne partent plus vers le bas, mais ils ne suivent plus la rotation sur l'axe Z du player. C'est moins gênant, mais pas très immersif...

Offline

Board footer

Powered by FluxBB