Fix axis layout and implement click raytracing

This commit is contained in:
2021-07-30 22:41:05 +02:00
parent 4c2409dbd0
commit 02ba2bb95a
8 changed files with 167 additions and 98 deletions

View File

@@ -1,7 +1,7 @@
use std::time::SystemTime;
use cgmath::{Deg, InnerSpace, Quaternion, Rotation3, vec3};
use cgmath::{Deg, Euler, Quaternion, vec3};
use winit::event::Event;
use level::{load_level, save_level};
@@ -66,6 +66,8 @@ impl Game for TestGame {
if self.input.button_down("print_framerate") {
println!("{:.0} ms / {:.0} FPS", frame_time * 1000.0, 1.0 / frame_time);
print_quat_as_euler(self.player.camera.rotation);
println!();
}
if self.input.button_just_pressed("test") {
@@ -77,7 +79,7 @@ impl Game for TestGame {
if !self.paused {
self.player.update(frame_time, &self.input, renderer);
}
self.game_objects[1].get_game_object_mut(renderer).unwrap().rotation = Quaternion::from_angle_y(Deg(time * -20.)).normalize();
// self.game_objects[1].get_game_object_mut(renderer).unwrap().rotation = Quaternion::from_angle_y(Deg(time * -20.)).normalize();
// End frame
self.last_time = time;
@@ -171,3 +173,8 @@ impl TestGame {
renderer.clear_all();
}
}
pub fn print_quat_as_euler(quat: Quaternion<f32>) {
let euler = Euler::from(quat);
print!("({:?},{:?},{:?})", Deg::from(euler.x), Deg::from(euler.y), Deg::from(euler.z));
}