wheeeee but also try signal

main
Bel LaPointe 2025-03-02 14:39:37 -07:00
parent a2f4fce705
commit 3893702330
1 changed files with 18 additions and 4 deletions

View File

@ -2,27 +2,41 @@ use godot::{prelude::*, classes::{ISprite2D, Sprite2D}};
#[derive(GodotClass)]
#[class(base=Sprite2D)]
struct BreeLPlayer {
base: Base<Sprite2D>
base: Base<Sprite2D>,
speed: f64,
radians: f32,
}
#[godot_api]
impl ISprite2D for BreeLPlayer {
fn init(base: Base<Sprite2D>) -> Self {
BreeLPlayer{base: base}
BreeLPlayer{base: base, speed: 200.0, radians: 1.0}
}
fn physics_process(&mut self, delta: f64) {
let radians = (1.0 * delta) as f32;
let radians = self.radians * delta as f32;
self.base_mut().rotate(radians);
let rotation = self.base().get_rotation();
let velocity = Vector2::UP.rotated(rotation) * 200 as f32;
let velocity = Vector2::UP.rotated(rotation) * self.speed as f32;
self.base_mut().translate(velocity * delta as f32);
self.increase_speed(100.0 * delta as f64);
self.radians *= 1.01 as f32;
}
}
#[godot_api]
impl BreeLPlayer {
#[func]
fn increase_speed(&mut self, amount: f64) {
self.speed += amount;
self.base_mut().emit_signal("speed_increased", &[]);
}
#[signal]
fn speed_increased();
fn drop(&mut self) {
eprintln!("drop");
}