Make menu players move and slide

This commit is contained in:
Sofia 2026-07-29 02:13:50 +03:00
parent 62c8a687f3
commit 5e7de8d936
2 changed files with 18 additions and 5 deletions

View File

@ -2,8 +2,14 @@
[ext_resource type="PackedScene" uid="uid://bod6b3befmyt5" path="res://scenes/player/soldier_m.tscn" id="1_pgypt"] [ext_resource type="PackedScene" uid="uid://bod6b3befmyt5" path="res://scenes/player/soldier_m.tscn" id="1_pgypt"]
[node name="menu_player" type="MenuPlayer" unique_id=928718358 node_paths=PackedStringArray("mesh")] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1cgct"]
[node name="menu_player" type="MenuPlayer" unique_id=724765640 node_paths=PackedStringArray("mesh")]
mesh = NodePath("soldier_m") mesh = NodePath("soldier_m")
[node name="soldier_m" parent="." unique_id=281995630 instance=ExtResource("1_pgypt")] [node name="soldier_m" parent="." unique_id=281995630 instance=ExtResource("1_pgypt")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0) transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
[node name="collision_shape_3d" type="CollisionShape3D" parent="." unique_id=1493078812]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.995473, 0)
shape = SubResource("CapsuleShape3D_1cgct")

View File

@ -1,21 +1,28 @@
use godot::prelude::*; use godot::{
classes::{CharacterBody3D, ICharacterBody3D},
prelude::*,
};
use crate::player::soldier_mesh::SoldierMesh; use crate::player::soldier_mesh::SoldierMesh;
#[derive(GodotClass)] #[derive(GodotClass)]
#[class(base=Node3D, init)] #[class(base=CharacterBody3D, init)]
pub struct MenuPlayer { pub struct MenuPlayer {
#[export] #[export]
mesh: Option<Gd<SoldierMesh>>, mesh: Option<Gd<SoldierMesh>>,
base: Base<Node3D>, base: Base<CharacterBody3D>,
} }
#[godot_api] #[godot_api]
impl INode3D for MenuPlayer { impl ICharacterBody3D for MenuPlayer {
fn ready(&mut self) { fn ready(&mut self) {
if let Some(mesh) = &mut self.mesh { if let Some(mesh) = &mut self.mesh {
mesh.bind_mut().spawn_raygun(); mesh.bind_mut().spawn_raygun();
} }
} }
fn physics_process(&mut self, _: f64) {
self.base_mut().move_and_slide();
}
} }