feat: Fix the bullet acceleration problem

This commit is contained in:
uttarayan21
2024-07-05 13:35:32 +05:30
parent 5a702770c0
commit bc48eb3923
5 changed files with 51 additions and 35 deletions
Generated
+9 -9
View File
@@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1718730147, "lastModified": 1720025378,
"narHash": "sha256-QmD6B6FYpuoCqu6ZuPJH896ItNquDkn0ulQlOn4ykN8=", "narHash": "sha256-zlIdj0oLvMEHlllP/7tvY+kE987xsN4FPux6WHSOh00=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "32c21c29b034d0a93fdb2379d6fabc40fc3d0e6c", "rev": "087e08a41009bf083d51ab35d8e30b1b7eafa7b0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -40,11 +40,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1718823610, "lastModified": 1720159656,
"narHash": "sha256-3abXGB+m4OMicaeB2IgGhnOvJTKYkcJ2o5wN9atjtt8=", "narHash": "sha256-QEou2V+wcV0JRbWTTEdBXVe+n+7n32r0w1oJyZbjp1A=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "34105c6b2f2c7e0b0914ded066dbbee043cff57c", "rev": "f15b44e5f29cd55ca5bbdf7e704ed8d9859e9a1d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -68,11 +68,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1718763539, "lastModified": 1720145907,
"narHash": "sha256-JHqQyO5XppLpMSKBaYlxbmPHMc4DpwuavKIch9W+hv4=", "narHash": "sha256-mNO3vfM43+w4Bp+zMC8Dkf4ktLpYYRpk9tAOp4iumio=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "69fcfaebbe564d162a85cadeaadd4dec646be4a2", "rev": "5ad2d5884b9b16319c9c5ca4e80a5b8606b083ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
+35
View File
@@ -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();
}
}
+6 -24
View File
@@ -4,6 +4,7 @@ use std::time::Duration;
use draw::Drawable as _; use draw::Drawable as _;
use macroquad::prelude::*; use macroquad::prelude::*;
use tick::{TickEvery, Ticker as _}; use tick::{TickEvery, Ticker as _};
mod cursor;
mod draw; mod draw;
mod enemy; mod enemy;
mod entity; mod entity;
@@ -27,37 +28,18 @@ fn window_conf() -> Conf {
#[macroquad::main(window_conf)] #[macroquad::main(window_conf)]
async fn main() { async fn main() {
let mut cursor = Cursor::default(); let mut cursor = cursor::Cursor::default();
cursor.handle_mouse();
let mut world = world::World::new(); let mut world = world::World::new();
// .every(Duration::from_millis(200));
loop { loop {
cursor.tick();
world.tick();
cursor.draw(); cursor.draw();
world.draw(); world.draw();
world.tick();
world.next_frame(); world.next_frame();
next_frame().await 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,
);
}
}
+1 -1
View File
@@ -30,7 +30,7 @@ impl Movement {
self.pos += self.direction * speed; self.pos += self.direction * speed;
} }
MovementType::Acceleration(acceleration) => { MovementType::Acceleration(acceleration) => {
self.direction += acceleration; self.direction *= acceleration;
self.pos += self.direction; self.pos += self.direction;
} }
} }
-1
View File
@@ -1,4 +1,3 @@
use macroquad::miniquad::window::screen_size; use macroquad::miniquad::window::screen_size;
use macroquad::prelude::*; use macroquad::prelude::*;