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": {
"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": {
+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 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,
);
}
}
+1 -1
View File
@@ -30,7 +30,7 @@ impl Movement {
self.pos += self.direction * speed;
}
MovementType::Acceleration(acceleration) => {
self.direction += acceleration;
self.direction *= acceleration;
self.pos += self.direction;
}
}
-1
View File
@@ -1,4 +1,3 @@
use macroquad::miniquad::window::screen_size;
use macroquad::prelude::*;