new, more active spawning created

This commit is contained in:
tonydero 2024-10-08 20:51:11 -06:00
parent 786f61e644
commit 8d5495bcaf
3 changed files with 158 additions and 1 deletions

View File

@ -11,7 +11,7 @@ config_version=5
[application]
config/name="Semi-Idle ARPG"
run/main_scene="res://scenes/testInstanceScene.tscn"
run/main_scene="res://scenes/testScrollScene.tscn"
config/features=PackedStringArray("4.3", "Forward Plus")
config/icon="res://assets/icon.svg"

View File

@ -0,0 +1,93 @@
[gd_scene load_steps=2 format=3 uid="uid://0h3dpe6fuhe8"]
[ext_resource type="Script" path="res://scripts/test_scroll_scene.gd" id="1_gc1kb"]
[node name="TestInstanceScene" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_gc1kb")
debug = true
[node name="SpawnArea" type="PanelContainer" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
[node name="SpawnTimer" type="Timer" parent="SpawnArea"]
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="Menus" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
[node name="MenuButtons" type="HBoxContainer" parent="MarginContainer/Menus"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
[node name="MainMenuButton" type="Button" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
text = "Menu"
[node name="MapMenuButton" type="Button" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
text = "Map"
[node name="SkillsMenuButton" type="Button" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
text = "Skills"
[node name="InvMenuButton" type="Button" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
text = "Inventory"
[node name="LogMenuButton" type="Button" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
text = "Log"
[node name="CraftMenuButton" type="Button" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
text = "Crafting"
[node name="DebugMenu" type="HBoxContainer" parent="MarginContainer/Menus/MenuButtons"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
[node name="ButtonTest" type="Button" parent="MarginContainer/Menus/MenuButtons/DebugMenu"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
text = "Spawn Enemies"
[node name="TouchScreenButton" type="TouchScreenButton" parent="MarginContainer/Menus/MenuButtons/DebugMenu/ButtonTest"]
[node name="ButtonExit" type="Button" parent="MarginContainer/Menus/MenuButtons/DebugMenu"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 8
text = "Exit"
[node name="TouchScreenButton" type="TouchScreenButton" parent="MarginContainer/Menus/MenuButtons/DebugMenu/ButtonExit"]
[connection signal="timeout" from="SpawnArea/SpawnTimer" to="." method="_on_spawn_timer_timeout"]
[connection signal="pressed" from="MarginContainer/Menus/MenuButtons/DebugMenu/ButtonTest" to="." method="_on_button_test_pressed"]
[connection signal="pressed" from="MarginContainer/Menus/MenuButtons/DebugMenu/ButtonExit" to="." method="_on_button_exit_pressed"]

View File

@ -0,0 +1,64 @@
extends Control
@export var debug = false
@export var spawnTimerValue = 5.0
var deltaCount := 0
var enemyMoveSpeed := 5.0
var questsComplete := false
func _ready() -> void:
if not debug:
$MarginContainer/Menus/MenuButtons/DebugMenu.hide()
$SpawnArea/SpawnTimer.start(spawnTimerValue)
func _create_enemy():
var enemy = load("res://scenes/npc.tscn").instantiate()
enemy.scale = Vector2.ONE*0.5
enemy.position = Vector2(randi_range(0, get_viewport_rect().size.x), -50)
#enemy.get_node("%NPCNameLabel").text = "Test"
return enemy
func _spawn_enemies() -> void:
#await get_tree().create_timer(time).timeout
var middleX := get_viewport_rect().size.x/2
var targetPosition = Vector2(middleX, get_viewport_rect().size.y*(0.75))
var numEnemies = randi_range(1, 5)
for i in range(numEnemies):
var enemy = _create_enemy()
%SpawnArea.add_child(enemy)
var randEnemyMoveSpeed := randf_range(0.5, 2.0)*enemyMoveSpeed
create_tween().tween_property(enemy, "position", targetPosition, randEnemyMoveSpeed)
func _process(delta: float) -> void:
deltaCount += 1
var enemies := %SpawnArea.get_children()
var numEnemies := %SpawnArea.get_child_count()
if numEnemies != 0 and (deltaCount % 60) == 0:
# change movement test, not sure it's working right...
#create_tween().tween_property(enemies[randi_range(0, numEnemies-1)], "position", Vector2(100, 100), 1.0)
pass
if questsComplete:
%SpawnArea/SpawnTimer.stop()
func _on_button_test_pressed() -> void:
# remove all existing enemies from scene and array
#for enemy in enemies:
#remove_child(enemy)
#enemies = []
questsComplete = true
func _on_button_exit_pressed() -> void:
get_tree().quit()
func _on_spawn_timer_timeout() -> void:
_spawn_enemies()