Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 8000d0a0 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

Add a dummy struct to see if it works on the godot side

parent 3e9c3e17
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
use godot::{
classes::{ISprite2D, Sprite2D},
prelude::*,
};
#[derive(GodotClass)]
#[class(base=Sprite2D)]
struct Player {
speed: f64,
angular_speed: f64,
base: Base<Sprite2D>,
}
#[godot_api]
impl ISprite2D for Player {
fn init(base: Base<Sprite2D>) -> Self {
godot_print!("Hello, world!"); // Prints to the Godot console
Self {
speed: 400.0,
angular_speed: std::f64::consts::PI,
base,
}
}
fn physics_process(&mut self, delta: f64) {
// GDScript code:
//
// rotation += angular_speed * delta
// var velocity = Vector2.UP.rotated(rotation) * speed
// position += velocity * delta
let radians = (self.angular_speed * delta) as f32;
self.base_mut().rotate(radians);
let rotation = self.base().get_rotation();
let velocity = Vector2::UP.rotated(rotation) * self.speed as f32;
self.base_mut().translate(velocity * delta as f32);
// or verbose:
// let this = self.base_mut();
// this.set_position(
// this.position() + velocity * delta as f32
// );
}
}
#[godot_api]
impl Player {
#[func]
fn increase_speed(&mut self, amount: f64) {
self.speed += amount;
self.base_mut().emit_signal("speed_increased", &[]);
}
#[signal]
fn speed_increased();
}
...@@ -2,3 +2,12 @@ pub mod spell; ...@@ -2,3 +2,12 @@ pub mod spell;
pub mod expr; pub mod expr;
pub mod state; pub mod state;
pub mod error; pub mod error;
pub mod dummy;
use godot::prelude::*;
struct GrimoireExtension;
#[gdextension]
unsafe impl ExtensionLibrary for GrimoireExtension {}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter