ladder kiiiiind of works
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://cgo4qyul7ix5p"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://cgo4qyul7ix5p"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/ladder.gd" id="1_8cik3"]
|
||||
[ext_resource type="Texture2D" uid="uid://y7skmb07dvc7" path="res://assets/Models/latter1.albedo.png" id="1_sa5qp"]
|
||||
[ext_resource type="Texture2D" uid="uid://3imms57ifxed" path="res://assets/Models/ladder1.normal.png" id="2_sljvk"]
|
||||
|
||||
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_a6qo5"]
|
||||
points = PackedVector3Array(-0.314334, -0.509434, -0.0955157, 3.70923, 0.496458, 0.0930522, 3.70923, 0.496458, -0.0955157, -0.314334, 0.496458, 0.0930522, 3.70923, -0.509434, 0.0930522, 3.70923, -0.509434, -0.0955157, -0.314334, 0.496458, -0.0955157, -0.314334, -0.509434, 0.0930522)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gxu3i"]
|
||||
size = Vector3(1, 4.30298, 1.6582)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_oksqm"]
|
||||
resource_name = "ladder1"
|
||||
cull_mode = 2
|
||||
@@ -47,8 +54,24 @@ blend_shape_mode = 0
|
||||
shadow_mesh = SubResource("ArrayMesh_4hcxi")
|
||||
|
||||
[node name="Ladder" type="Node3D"]
|
||||
script = ExtResource("1_8cik3")
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
transform = Transform3D(3.57628e-07, 1, 7.54979e-08, 1, -3.57628e-07, -7.54979e-08, -7.54979e-08, 7.54979e-08, -1, 0, 0, 0)
|
||||
shape = SubResource("ConvexPolygonShape3D_a6qo5")
|
||||
|
||||
[node name="Area3D" type="Area3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.70557, 0.329102)
|
||||
shape = SubResource("BoxShape3D_gxu3i")
|
||||
|
||||
[node name="Ladder1" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(3.57628e-07, 1, 7.54979e-08, 1, -3.57628e-07, -7.54979e-08, -7.54979e-08, 7.54979e-08, -1, 0, 0, 0)
|
||||
mesh = SubResource("ArrayMesh_meake")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[connection signal="body_entered" from="Area3D" to="." method="_on_area_3d_body_entered"]
|
||||
[connection signal="body_exited" from="Area3D" to="." method="_on_area_3d_body_exited"]
|
||||
|
||||
@@ -1465,6 +1465,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -56.263, 0.0535244, 52.2153)
|
||||
[node name="Ladder2" parent="." instance=ExtResource("33_0m4lq")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -56.263, 4.01174, 52.2153)
|
||||
|
||||
[node name="Ladder3" parent="." instance=ExtResource("33_0m4lq")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -56.263, 7.95479, 52.2153)
|
||||
|
||||
[node name="rat" parent="." instance=ExtResource("32_og4yo")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.123, 0.168887, 32.6325)
|
||||
|
||||
|
||||
24
scripts/ladder.gd
Normal file
24
scripts/ladder.gd
Normal file
@@ -0,0 +1,24 @@
|
||||
extends Node3D
|
||||
|
||||
var is_climbing = false
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
|
||||
func _on_area_3d_body_entered(body):
|
||||
if body.is_in_group("player"):
|
||||
is_climbing = true
|
||||
body.lader_collide(is_climbing)
|
||||
|
||||
|
||||
func _on_area_3d_body_exited(body):
|
||||
if body.is_in_group("player"):
|
||||
is_climbing = false
|
||||
body.lader_collide(is_climbing)
|
||||
@@ -4,6 +4,7 @@ extends CharacterBody3D
|
||||
var speed
|
||||
var double_jump = true
|
||||
var gravity = 9.8
|
||||
var default_gravity = gravity
|
||||
var mouse_input : Vector2
|
||||
|
||||
var rng = RandomNumberGenerator.new()
|
||||
@@ -277,6 +278,15 @@ func _on_pick_up_detection_body_entered(body):
|
||||
level_control.gun_spawn(weapon_id)
|
||||
|
||||
|
||||
func lader_collide(is_climbing):
|
||||
|
||||
if is_climbing == true:
|
||||
if Input.is_action_pressed("move_up"):
|
||||
velocity.y += 5
|
||||
gravity = 0.0
|
||||
else:
|
||||
gravity = default_gravity
|
||||
|
||||
func _on_pick_up_magnet_body_entered(body):
|
||||
if body.is_in_group("pickup") and body.is_in_group("magnet"):
|
||||
body.player = self
|
||||
|
||||
Reference in New Issue
Block a user