kitgit

tirbofish/dropbear · diff

5eb186d · Thribhu K

fix: ensured speed was constant with deltaTime (double FPS meant double speed, not expected). feature: complete the rest of buttons types, more testing needed, still doesnt **really** work Unverified

diff --git a/Cargo.toml b/Cargo.toml
index 8d56500..dfaefea 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -77,6 +77,7 @@ yakui = { git = "https://github.com/SecondHalfGames/yakui", rev = "ddf7614" }
 yakui-wgpu = { git = "https://github.com/SecondHalfGames/yakui", rev = "ddf7614" }
 thiserror = "2.0"
 tempfile = "3.24"
+combine = "4.6"
 
 [workspace.dependencies.image]
 version = "0.25"
diff --git a/crates/dropbear-engine/src/camera.rs b/crates/dropbear-engine/src/camera.rs
index 325733d..423883a 100644
--- a/crates/dropbear-engine/src/camera.rs
+++ b/crates/dropbear-engine/src/camera.rs
@@ -240,43 +240,43 @@ impl Camera {
         self.uniform.view_proj = mvp.as_mat4().to_cols_array_2d();
     }
 
-    pub fn move_forwards(&mut self) {
+    pub fn move_forwards(&mut self, dt: f32) {
         let forward = (self.target - self.eye).normalize();
-        self.eye += forward * self.settings.speed;
-        self.target += forward * self.settings.speed;
+        self.eye += forward * self.settings.speed * dt as f64;
+        self.target += forward * self.settings.speed * dt as f64;
     }
 
-    pub fn move_back(&mut self) {
+    pub fn move_back(&mut self, dt: f32) {
         let forward = (self.target - self.eye).normalize();
-        self.eye -= forward * self.settings.speed;
-        self.target -= forward * self.settings.speed;
+        self.eye -= forward * self.settings.speed * dt as f64;
+        self.target -= forward * self.settings.speed * dt as f64;
     }
 
-    pub fn move_right(&mut self) {
+    pub fn move_right(&mut self, dt: f32) {
         let forward = (self.target - self.eye).normalize();
         // LH: right = up.cross(forward)
         let right = self.up.cross(forward).normalize();
-        self.eye += right * self.settings.speed;
-        self.target += right * self.settings.speed;
+        self.eye += right * self.settings.speed * dt as f64;
+        self.target += right * self.settings.speed * dt as f64;
     }
 
-    pub fn move_left(&mut self) {

Large diffs are not rendered by default. Showing the first 50 of 1658 lines. Show full diff