From 03b8155b5249d129f05cc19e73edeb1efdb7d407 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 2 Feb 2025 14:32:56 +0100 Subject: [PATCH] 2.7 rigidbody3d and physics --- scenes/characters/Player.cs | 11 +++++++---- scenes/characters/player.tscn | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/scenes/characters/Player.cs b/scenes/characters/Player.cs index bd713a0..f096256 100644 --- a/scenes/characters/Player.cs +++ b/scenes/characters/Player.cs @@ -1,18 +1,21 @@ using Godot; using System; -public partial class Player : Node3D +public partial class Player : RigidBody3D { + private static Vector3 ZLeft = new Vector3(0.0f, 0.0f, 100.0f); + private static Vector3 ZRight = new Vector3(0.0f, 0.0f, -100.0f); public override void _Process(double delta) { + float fd = (float)delta; if (Input.IsActionPressed("ui_accept")){ - Position += new Vector3(0, 1, 0) * (float)delta; + ApplyCentralForce(Basis.Y * fd * 1000.0f); } if (Input.IsActionPressed("ui_left")){ - RotateZ((float)delta); + ApplyTorque(ZLeft * fd); } if (Input.IsActionPressed("ui_right")){ - RotateZ(-(float)delta); + ApplyTorque(ZRight * fd); } } } diff --git a/scenes/characters/player.tscn b/scenes/characters/player.tscn index 7fca474..61ca7a7 100644 --- a/scenes/characters/player.tscn +++ b/scenes/characters/player.tscn @@ -1,11 +1,21 @@ -[gd_scene load_steps=3 format=3 uid="uid://cuduv6fwqtocs"] +[gd_scene load_steps=4 format=3 uid="uid://cuduv6fwqtocs"] [ext_resource type="Script" path="res://scenes/characters/Player.cs" id="1_fr1bo"] [sub_resource type="CylinderMesh" id="CylinderMesh_dk8lw"] -[node name="Player" type="Node3D"] +[sub_resource type="CylinderShape3D" id="CylinderShape3D_bplwn"] + +[node name="Player" type="RigidBody3D"] +axis_lock_linear_z = true +axis_lock_angular_x = true +axis_lock_angular_y = true +linear_damp = 1.0 +angular_damp = 3.0 script = ExtResource("1_fr1bo") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] mesh = SubResource("CylinderMesh_dk8lw") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("CylinderShape3D_bplwn")