🩹 You can now grab npcs

main
Ervan Lefevre 2 years ago
parent a604c99a42
commit 709ff4e6c1
  1. 12
      nodes/npc/npc.gd
  2. 6
      nodes/npc/npc.tscn
  3. 2
      nodes/player/player.gd
  4. 1
      nodes/player/player.tscn
  5. 1
      scenes/poc.tscn

@ -11,6 +11,7 @@ const QUEUE_FREE_DELAY = 10
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity") var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
var direction = 0 var direction = 0
var rising_speed = 0 var rising_speed = 0
@onready var original_parent = get_parent()
func _ready(): func _ready():
pick_new_direction() pick_new_direction()
@ -49,6 +50,17 @@ func die(level_speed):
rising_speed = level_speed rising_speed = level_speed
func grabbed(by):
$shape.disabled = true
$fsm.set_physics_process(false)
reparent(by)
func dropped():
$shape.disabled = false
$fsm.set_physics_process(true)
reparent(original_parent)
rotation = 0
func pick_new_direction(): func pick_new_direction():
direction = [1,-1][randi_range(0,1)] * SPEED direction = [1,-1][randi_range(0,1)] * SPEED

@ -5,10 +5,10 @@
[ext_resource type="Script" path="res://scripts/ia/fsm.gd" id="3_vhp64"] [ext_resource type="Script" path="res://scripts/ia/fsm.gd" id="3_vhp64"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_f223n"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_f223n"]
radius = 1.0 radius = 6.0
height = 4.0 height = 14.0
[node name="npc" type="CharacterBody2D" groups=["npc"]] [node name="npc" type="CharacterBody2D" groups=["npc", "obstacle"]]
script = ExtResource("1_38jh5") script = ExtResource("1_38jh5")
[node name="shape" type="CollisionShape2D" parent="."] [node name="shape" type="CollisionShape2D" parent="."]

@ -155,11 +155,9 @@ func handle_grab():
if Input.is_action_just_pressed('player_action'): if Input.is_action_just_pressed('player_action'):
if grabbed_obstacle == null: if grabbed_obstacle == null:
var collision = grab_ray.get_collider() var collision = grab_ray.get_collider()
print('collision', collision)
if collision: if collision:
var obstacle = collision var obstacle = collision
print('obstacle', obstacle)
if obstacle.is_in_group("obstacle"): if obstacle.is_in_group("obstacle"):
do_grab(obstacle) do_grab(obstacle)
else: else:

@ -5,6 +5,7 @@
[ext_resource type="Script" path="res://scripts/ia/fsm.gd" id="2_ix1o4"] [ext_resource type="Script" path="res://scripts/ia/fsm.gd" id="2_ix1o4"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_w17ly"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_w17ly"]
radius = 9.0
height = 24.0 height = 24.0
[node name="player" type="CharacterBody2D"] [node name="player" type="CharacterBody2D"]

@ -243,6 +243,7 @@ position = Vector2(1608, 1312)
[node name="water_level" type="Area2D" parent="." groups=["level"]] [node name="water_level" type="Area2D" parent="." groups=["level"]]
position = Vector2(1736, 3056) position = Vector2(1736, 3056)
monitorable = false monitorable = false
linear_damp_space_override = 1
script = ExtResource("4_ts3u4") script = ExtResource("4_ts3u4")
RISING_SPEED = 10 RISING_SPEED = 10

Loading…
Cancel
Save