I'm trying to make a 3d flight controller with a more arcade feel (think Ace Combat or Rogue Squadron). I'm somewhat new to working in 3d in Godot though and I don't really understand what methods I should be using to achieve this.

I want up and down to control pitch and left and right to be something of a hybrid roll/yaw. I'm setting direction to -transform.basis.z and multiplying that by speed, but when I use rotate_x() with the pitch, the plane itself rotates, but I only move flatly across the world plane rather than climbing up or down as I'm attempting to achieve.

What am I missing here?

you are viewing a single comment's thread
view the rest of the comments
[–] 1 point 3 years ago* (last edited 3 years ago)

I think you need to learn about world transforms and local transforms. My guess is you're translating along the world Z or the Z of the level instead of the local Z of the plane scene.

Different coordinates spaces: https://docs.godotengine.org/en/3.1/tutorials/math/matrices_and_transforms.html

  • source
  • parent