Skip to content

Commit

Permalink
Fix 2D rotation and add back player rototation to 2D demo (#197)
Browse files Browse the repository at this point in the history
  • Loading branch information
CedNaru committed Mar 12, 2024
1 parent e0fca1f commit 0186900
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions demo/project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -135,12 +135,12 @@ lock_listener={
}
rotate_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
rotate_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
kill_event={
Expand Down
18 changes: 9 additions & 9 deletions src/helpers/maths.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,19 @@ namespace godot {

static inline FMOD_3D_ATTRIBUTES get_3d_attributes_from_transform2d(const Transform2D& transform, const Vector2& velocity, const float distanceScale) {
Vector2 posVector = transform.get_origin() / distanceScale;
Vector3 pos(posVector.x, 0.0f, posVector.y);
Vector3 pos(-posVector.x, 0.0f, posVector.y);
Vector3 up(0, 1, 0);
Vector3 forward = Vector3(transform.columns[1].x, 0, transform.columns[1].y).normalized();
Vector3 vel(velocity.x, 0, velocity.y);
Vector3 forward = Vector3(-transform.columns[1].x, 0, transform.columns[1].y).normalized();
Vector3 vel(-velocity.x, 0, velocity.y);
const FMOD_VECTOR& posFmodVector = get_fmod_vector_from_3d(pos);
return get_3d_attributes(posFmodVector, get_fmod_vector_from_3d(up), get_fmod_vector_from_3d(forward), get_fmod_vector_from_3d(vel));
}

static inline FMOD_3D_ATTRIBUTES get_3d_attributes_from_transform2d(const Transform2D& transform, const float distanceScale) {
Vector2 posVector = transform.get_origin() / distanceScale;
Vector3 pos(posVector.x, 0.0f, posVector.y);
Vector3 pos(-posVector.x, 0.0f, posVector.y);
Vector3 up(0, 1, 0);
Vector3 forward = Vector3(transform.columns[1].x, 0, transform.columns[1].y).normalized();
Vector3 forward = Vector3(-transform.columns[1].x, 0, transform.columns[1].y).normalized();
Vector3 vel(0, 0, 0);
const FMOD_VECTOR& posFmodVector = get_fmod_vector_from_3d(pos);
return get_3d_attributes(posFmodVector, get_fmod_vector_from_3d(up), get_fmod_vector_from_3d(forward), get_fmod_vector_from_3d(vel));
Expand All @@ -75,10 +75,10 @@ namespace godot {

static inline Transform2D get_transform2d_from_3d_attributes(FMOD_3D_ATTRIBUTES& attr, const float distanceScale) {
Transform2D transform;
transform.set_origin(Vector2(attr.position.x, attr.position.z) * distanceScale);
const Vector2& forward = Vector2(attr.forward.x, attr.forward.z);
transform.set_origin(Vector2(-attr.position.x, attr.position.z) * distanceScale);
const Vector2& forward = Vector2(-attr.forward.x, attr.forward.z);
transform.columns[1] = forward;
transform.columns[0] = Vector2(forward.y, -forward.x);
transform.columns[0] = Vector2(forward.y, forward.x);
return transform;
}

Expand All @@ -87,7 +87,7 @@ namespace godot {
}

static inline Vector2 get_velocity2d_from_3d_attributes(FMOD_3D_ATTRIBUTES& attr, const float distanceScale) {
return {attr.velocity.x, attr.velocity.z};
return {-attr.velocity.x, attr.velocity.z};
}

}// namespace godot
Expand Down

0 comments on commit 0186900

Please sign in to comment.