From bc48eb3923038d0a5e6f8878081d441eae8789c2 Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Fri, 5 Jul 2024 13:35:32 +0530 Subject: [PATCH] feat: Fix the bullet acceleration problem --- flake.lock | 18 +++++++++--------- src/cursor.rs | 35 +++++++++++++++++++++++++++++++++++ src/main.rs | 30 ++++++------------------------ src/movement.rs | 2 +- src/world.rs | 1 - 5 files changed, 51 insertions(+), 35 deletions(-) create mode 100644 src/cursor.rs diff --git a/flake.lock b/flake.lock index 9a6fa38..5c1b10f 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1718730147, - "narHash": "sha256-QmD6B6FYpuoCqu6ZuPJH896ItNquDkn0ulQlOn4ykN8=", + "lastModified": 1720025378, + "narHash": "sha256-zlIdj0oLvMEHlllP/7tvY+kE987xsN4FPux6WHSOh00=", "owner": "ipetkov", "repo": "crane", - "rev": "32c21c29b034d0a93fdb2379d6fabc40fc3d0e6c", + "rev": "087e08a41009bf083d51ab35d8e30b1b7eafa7b0", "type": "github" }, "original": { @@ -40,11 +40,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1718823610, - "narHash": "sha256-3abXGB+m4OMicaeB2IgGhnOvJTKYkcJ2o5wN9atjtt8=", + "lastModified": 1720159656, + "narHash": "sha256-QEou2V+wcV0JRbWTTEdBXVe+n+7n32r0w1oJyZbjp1A=", "owner": "nixos", "repo": "nixpkgs", - "rev": "34105c6b2f2c7e0b0914ded066dbbee043cff57c", + "rev": "f15b44e5f29cd55ca5bbdf7e704ed8d9859e9a1d", "type": "github" }, "original": { @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1718763539, - "narHash": "sha256-JHqQyO5XppLpMSKBaYlxbmPHMc4DpwuavKIch9W+hv4=", + "lastModified": 1720145907, + "narHash": "sha256-mNO3vfM43+w4Bp+zMC8Dkf4ktLpYYRpk9tAOp4iumio=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "69fcfaebbe564d162a85cadeaadd4dec646be4a2", + "rev": "5ad2d5884b9b16319c9c5ca4e80a5b8606b083ae", "type": "github" }, "original": { diff --git a/src/cursor.rs b/src/cursor.rs new file mode 100644 index 0000000..7cc78c6 --- /dev/null +++ b/src/cursor.rs @@ -0,0 +1,35 @@ +use crate::{draw::Drawable, tick::Ticker}; +use macroquad::prelude::*; + +#[derive(Default)] +pub struct Cursor { + pos: Vec2, +} + +impl Cursor { + pub fn handle_mouse(&mut self) { + let mouse_pos = mouse_position(); + self.pos = vec2(mouse_pos.0, mouse_pos.1); + } + + pub fn draw(&self) { + draw_triangle( + self.pos, + self.pos + vec2(10.0, 14.0), + self.pos + vec2(-2.0, 16.0), + RED, + ); + } +} + +impl Drawable for Cursor { + fn draw(&self) { + self.draw(); + } +} + +impl Ticker for Cursor { + fn tick(&mut self) { + self.handle_mouse(); + } +} diff --git a/src/main.rs b/src/main.rs index 2dca961..574cd17 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ use std::time::Duration; use draw::Drawable as _; use macroquad::prelude::*; use tick::{TickEvery, Ticker as _}; +mod cursor; mod draw; mod enemy; mod entity; @@ -27,37 +28,18 @@ fn window_conf() -> Conf { #[macroquad::main(window_conf)] async fn main() { - let mut cursor = Cursor::default(); - cursor.handle_mouse(); + let mut cursor = cursor::Cursor::default(); let mut world = world::World::new(); + // .every(Duration::from_millis(200)); loop { + cursor.tick(); + world.tick(); + cursor.draw(); world.draw(); - world.tick(); world.next_frame(); next_frame().await } } - -#[derive(Default)] -pub struct Cursor { - pos: Vec2, -} - -impl Cursor { - pub fn handle_mouse(&mut self) { - let mouse_pos = mouse_position(); - self.pos = vec2(mouse_pos.0, mouse_pos.1); - } - - pub fn draw(&self) { - draw_triangle( - self.pos, - self.pos + vec2(10.0, 14.0), - self.pos + vec2(-2.0, 16.0), - RED, - ); - } -} diff --git a/src/movement.rs b/src/movement.rs index 6a25a15..1ba3f54 100644 --- a/src/movement.rs +++ b/src/movement.rs @@ -30,7 +30,7 @@ impl Movement { self.pos += self.direction * speed; } MovementType::Acceleration(acceleration) => { - self.direction += acceleration; + self.direction *= acceleration; self.pos += self.direction; } } diff --git a/src/world.rs b/src/world.rs index e114f58..3ad7933 100644 --- a/src/world.rs +++ b/src/world.rs @@ -1,4 +1,3 @@ - use macroquad::miniquad::window::screen_size; use macroquad::prelude::*;