From 5dcf2b35f8f6a3555387079a5a5e575e6b3dd24b Mon Sep 17 00:00:00 2001 From: Mikhail Aristov <12281487+MikhailAristov@users.noreply.github.com> Date: Fri, 26 Jan 2024 22:10:03 +0100 Subject: [PATCH] +random faces --- godot/scenes/Boundary.gd | 4 ++-- godot/scenes/crowd/person.gd | 26 ++++++++++++++++++++++++++ godot/scenes/crowd/person.tscn | 9 ++++++--- 3 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 godot/scenes/crowd/person.gd diff --git a/godot/scenes/Boundary.gd b/godot/scenes/Boundary.gd index 4fe97d8..6861257 100644 --- a/godot/scenes/Boundary.gd +++ b/godot/scenes/Boundary.gd @@ -1,14 +1,14 @@ class_name Boundary extends Node2D -@export var width = 200 +@export var width = 200. # 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): +func _process(_delta): pass func get_most_left_position(): diff --git a/godot/scenes/crowd/person.gd b/godot/scenes/crowd/person.gd new file mode 100644 index 0000000..f11181b --- /dev/null +++ b/godot/scenes/crowd/person.gd @@ -0,0 +1,26 @@ +extends Sprite2D + +@export var head : Node2D +@export var face : Node2D + +var known_faces : Array[String] = [ + "res://scenes/faces/face_curly.tscn", + "res://scenes/faces/face_moritz.tscn", + "res://scenes/faces/face_ronald.tscn", + # Add more scenes as needed +] + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + if face == null: + set_random_face() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(_delta): + pass + +func set_random_face(): + var face_res = load(known_faces[randi() % known_faces.size()]) + face = face_res.instantiate() + head.add_child(face) diff --git a/godot/scenes/crowd/person.tscn b/godot/scenes/crowd/person.tscn index 0ff6a26..bbae611 100644 --- a/godot/scenes/crowd/person.tscn +++ b/godot/scenes/crowd/person.tscn @@ -1,13 +1,16 @@ [gd_scene load_steps=3 format=3 uid="uid://cl4fax7fbh2g7"] -[ext_resource type="PackedScene" uid="uid://bvc6fbd5cgb0i" path="res://scenes/faces/face_curly.tscn" id="1_jccgy"] +[ext_resource type="Script" path="res://scenes/crowd/person.gd" id="1_mx0i8"] [sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_kbo53"] size = Vector2(20, 30) -[node name="Person" type="Sprite2D"] +[node name="Person" type="Sprite2D" node_paths=PackedStringArray("head", "face")] texture = SubResource("PlaceholderTexture2D_kbo53") +script = ExtResource("1_mx0i8") +head = NodePath("Head") +face = NodePath("") -[node name="FaceCurly" parent="." instance=ExtResource("1_jccgy")] +[node name="Head" type="Node2D" parent="."] position = Vector2(0, -16) scale = Vector2(0.3, 0.3)