From 6af65cb8db3e96f6e17ceb2fb75966cb8b54a62d Mon Sep 17 00:00:00 2001 From: ghostlyzsh Date: Sun, 7 Apr 2024 16:25:13 -0500 Subject: [PATCH] better, but not perfect physics --- server/src/main.rs | 10 +++++++--- starkingdoms-client/src/pages/Play.svelte | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 74aa16bf4f4e5b459ea8bc55042e2b3fcc36807f..7eea944bd0c4a08c881c0ea0332f38e466f1a4a3 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -21,6 +21,7 @@ static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc; use std::collections::HashMap; use std::net::IpAddr; +use std::num::NonZeroUsize; use crate::mathutil::rot2d; use crate::ws::{StkTungsteniteServerConfig, StkTungsteniteServerPlugin, WsEvent}; @@ -151,10 +152,13 @@ fn main() { } fn setup_integration_parameters(mut context: ResMut) { - context.integration_parameters.dt = 1.0 / 60.0; + context.integration_parameters.dt = 1.0 / 20.0; context.integration_parameters.joint_erp = 0.2; - context.integration_parameters.erp = 0.5; - //context.integration_parameters.num_solver_iterations = NonZeroUsize::new(16).unwrap(); + context.integration_parameters.erp = 0.1; + //context.integration_parameters.num_solver_iterations = NonZeroUsize::new(1).unwrap(); + //context.integration_parameters.num_internal_pgs_iterations = 1; + context.integration_parameters.max_penetration_correction = 0.5; + //context.integration_parameters.switch_to_standard_pgs_solver(); } fn spawn_planets(mut commands: Commands) { info!("Spawning planets"); diff --git a/starkingdoms-client/src/pages/Play.svelte b/starkingdoms-client/src/pages/Play.svelte index 1e448b75481d68e23e75551010842dba4b17b591..32de48aeb2862776337f2980520d4e04927ad7e4 100644 --- a/starkingdoms-client/src/pages/Play.svelte +++ b/starkingdoms-client/src/pages/Play.svelte @@ -39,11 +39,11 @@ }*/ function handlewheel(e: WheelEvent) { - let delta = e.shiftKey ? 0.01 : 0.1; + let delta = e.shiftKey ? 0.95 : 0.8; if (e.deltaY < 0) { - global.scale += delta; + global.scale *= 1/delta; } else { - global.scale -= delta; + global.scale *= delta; } if (global.scale > 5) { global.scale = 5;