Updated goose_talk to allow for interruptions (unfinished); improved
chicken animation, reduced scale in-engine.
This commit is contained in:
parent
462b0fc4b0
commit
2a7e1a2b6c
16 changed files with 221 additions and 254 deletions
|
|
@ -134,7 +134,7 @@ _data = {
|
|||
&"explode": SubResource("Animation_epg4t")
|
||||
}
|
||||
|
||||
[node name="EnemyTest" type="Area2D" unique_id=1433837580 groups=["enemies"]]
|
||||
[node name="Enemy" type="Area2D" unique_id=1433837580 groups=["enemies"]]
|
||||
script = ExtResource("1_4gyqm")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2115910138]
|
||||
|
|
|
|||
57
scenes/enemy_chicken.gd
Normal file
57
scenes/enemy_chicken.gd
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
extends Area2D
|
||||
|
||||
var bullet_scene = preload("res://scenes/enemy_bullet.tscn")
|
||||
var start_pos = Vector2.ZERO
|
||||
var speed = 0
|
||||
var tween_speed: float = 1.4
|
||||
|
||||
var exploding = false
|
||||
|
||||
var enemy_move_aggression = randf_range(5, 20)
|
||||
var enemy_shoot_aggression = randf_range(4, 20)
|
||||
|
||||
@onready var screensize = get_viewport_rect().size
|
||||
|
||||
|
||||
func start(pos):
|
||||
speed = 0
|
||||
position = Vector2(pos.x, -pos.y)
|
||||
start_pos = pos
|
||||
await get_tree().create_timer(randf_range(0.25, 0.55)).timeout
|
||||
var tween = create_tween().set_trans(Tween.TRANS_BACK)
|
||||
tween.tween_property(self, "position:y", start_pos.y, tween_speed)
|
||||
await tween.finished
|
||||
$MoveTimer.wait_time = enemy_move_aggression
|
||||
$MoveTimer.start()
|
||||
$ShootTimer.wait_time = enemy_shoot_aggression
|
||||
$ShootTimer.start()
|
||||
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
speed = randf_range(75, 100)
|
||||
|
||||
func _on_shoot_timer_timeout():
|
||||
var b = bullet_scene.instantiate()
|
||||
get_tree().root.add_child(b)
|
||||
b.start(position)
|
||||
$ShootTimer.wait_time = randf_range(4, 20)
|
||||
$ShootTimer.start()
|
||||
|
||||
func _process(delta):
|
||||
position.y += speed * delta
|
||||
if position.y > screensize.y + 32:
|
||||
start(start_pos)
|
||||
|
||||
|
||||
func explode():
|
||||
if exploding: return
|
||||
exploding = true
|
||||
print_debug("Enemy explode!")
|
||||
EventBus.enemy_hit.emit(5)
|
||||
speed = 0
|
||||
#$AnimationPlayer.play("explode")
|
||||
#set_deferred("monitoring", false)
|
||||
#await $AnimationPlayer.animation_finished
|
||||
queue_free()
|
||||
EventBus.enemy_died.emit()
|
||||
|
||||
1
scenes/enemy_chicken.gd.uid
Normal file
1
scenes/enemy_chicken.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://i0r17jo6838m
|
||||
72
scenes/enemy_chicken.tscn
Normal file
72
scenes/enemy_chicken.tscn
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
[gd_scene format=3 uid="uid://drwm27rxxpq3t"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://i0r17jo6838m" path="res://scenes/enemy_chicken.gd" id="1_s7c3p"]
|
||||
[ext_resource type="Texture2D" uid="uid://cy4jggxmnohbb" path="res://sprites/chicken.png" id="2_h1rgn"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4gyqm"]
|
||||
size = Vector2(21, 23)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_h1rgn"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_s7c3p"]
|
||||
resource_name = "flap"
|
||||
length = 0.4
|
||||
loop_mode = 2
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.0009999999, 0.2, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_7ellt"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_h1rgn"),
|
||||
&"flap": SubResource("Animation_s7c3p")
|
||||
}
|
||||
|
||||
[node name="EnemyChicken" type="Area2D" unique_id=1433837580 groups=["enemies"]]
|
||||
scale = Vector2(0.7, 0.7)
|
||||
script = ExtResource("1_s7c3p")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2115910138]
|
||||
texture = ExtResource("2_h1rgn")
|
||||
hframes = 3
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 84, 32)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1841693239]
|
||||
scale = Vector2(1.5384617, 1.5384617)
|
||||
shape = SubResource("RectangleShape2D_4gyqm")
|
||||
|
||||
[node name="MoveTimer" type="Timer" parent="." unique_id=1928257014]
|
||||
one_shot = true
|
||||
|
||||
[node name="ShootTimer" type="Timer" parent="." unique_id=1985644907]
|
||||
one_shot = true
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=702523492]
|
||||
libraries/ = SubResource("AnimationLibrary_7ellt")
|
||||
autoplay = &"flap"
|
||||
|
||||
[connection signal="timeout" from="MoveTimer" to="." method="_on_timer_timeout"]
|
||||
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]
|
||||
|
|
@ -1,225 +0,0 @@
|
|||
[gd_scene format=3 uid="uid://drwm27rxxpq3t"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://xoihsrr4hw4k" path="res://scenes/enemy.gd" id="1_ainam"]
|
||||
[ext_resource type="Texture2D" uid="uid://deyu1prtitqcp" path="res://_graphics/Mini Pixel Pack 3/Enemies/Bon_Bon (16 x 16).png" id="2_mo2s0"]
|
||||
[ext_resource type="Texture2D" uid="uid://h04wm5a27u0" path="res://_graphics/Mini Pixel Pack 3/Effects/Explosion (16 x 16).png" id="3_1yn4p"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4gyqm"]
|
||||
size = Vector2(14, 8)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_iifgy"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:texture")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ExtResource("2_mo2s0")]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:hframes")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [4]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:frame")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [2]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_qi2p4"]
|
||||
resource_name = "bounce"
|
||||
loop_mode = 1
|
||||
step = 0.05
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:texture")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ExtResource("2_mo2s0")]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:hframes")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [4]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:frame")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1023555, 0.2, 0.3, 0.35),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 1, 0, 3, 0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_epg4t"]
|
||||
resource_name = "explode"
|
||||
step = 0.05
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2, 4, 5]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:texture")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [ExtResource("3_1yn4p")]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:hframes")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [6]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3yqyl"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_iifgy"),
|
||||
&"bounce": SubResource("Animation_qi2p4"),
|
||||
&"explode": SubResource("Animation_epg4t")
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ainam"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_mo2s0"]
|
||||
resource_name = "wiggle"
|
||||
length = 3.0
|
||||
loop_mode = 1
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 8, -0.16666667, 0, 0.083333336, 0, 0, -0.16666667, 0, 0, 0, -7, -0.083333336, 1.1666667, 0, 0, 0, -0.16666667, -1.1666667, 0, 0),
|
||||
"times": PackedFloat32Array(0, 1, 1.5, 2, 3)
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 2, 0, 2, 2),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 7.162058, -0.16666667, -1.3333334, 0.083333336, 0.6666667, 12, -0.16666667, -2, 0, 0, 8, -0.083333336, 0.6666667, 0, 0, 0, -0.16666667, 1.3333334, 0, 0),
|
||||
"times": PackedFloat32Array(0, 1, 1.5, 2, 3)
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1yn4p"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ainam"),
|
||||
&"wiggle": SubResource("Animation_mo2s0")
|
||||
}
|
||||
|
||||
[sub_resource type="Curve2D" id="Curve2D_1yn4p"]
|
||||
_data = {
|
||||
"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, -13, 0, 0, 0, 0, 30, 9, 0, 0, 0, 0, 10, 23, 8.891694, -1.4366493, -8.891694, 1.4366493, 0, 27, 0, 0, 0, 0, -18, 7, 0, 0, 0, 0, -14, -11, 0, 0, 0, 0, 0, 0)
|
||||
}
|
||||
point_count = 8
|
||||
|
||||
[node name="EnemyTest" type="Area2D" unique_id=1433837580 groups=["enemies"]]
|
||||
script = ExtResource("1_ainam")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2115910138]
|
||||
texture = ExtResource("2_mo2s0")
|
||||
hframes = 4
|
||||
frame = 2
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1841693239]
|
||||
shape = SubResource("RectangleShape2D_4gyqm")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=505814518]
|
||||
libraries/ = SubResource("AnimationLibrary_3yqyl")
|
||||
autoplay = &"bounce"
|
||||
|
||||
[node name="AnimationWiggle" type="AnimationPlayer" parent="." unique_id=800893512]
|
||||
libraries/ = SubResource("AnimationLibrary_1yn4p")
|
||||
autoplay = &"MoveAlongPath"
|
||||
|
||||
[node name="MoveTimer" type="Timer" parent="." unique_id=1928257014]
|
||||
one_shot = true
|
||||
|
||||
[node name="ShootTimer" type="Timer" parent="." unique_id=1985644907]
|
||||
one_shot = true
|
||||
|
||||
[node name="Path2D" type="Path2D" parent="." unique_id=1830415709]
|
||||
visible = false
|
||||
curve = SubResource("Curve2D_1yn4p")
|
||||
|
||||
[node name="PathFollow2D" type="PathFollow2D" parent="Path2D" unique_id=1294967533]
|
||||
visible = false
|
||||
rotation = -0.7140907
|
||||
|
||||
[connection signal="timeout" from="MoveTimer" to="." method="_on_timer_timeout"]
|
||||
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]
|
||||
|
|
@ -1,22 +1,45 @@
|
|||
extends Area2D
|
||||
|
||||
var goose_talking: bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
EventBus.goose_talk.connect(_on_goose_talk)
|
||||
|
||||
|
||||
func _on_goose_talk(frame_index: int):
|
||||
print("QUACK")
|
||||
self.show()
|
||||
$DapperGoose/Bubble.set_frame(frame_index)
|
||||
var tween = create_tween()
|
||||
tween.tween_property(self, "position:x", position.x - 50, .5).set_ease(tween.EASE_OUT)
|
||||
await tween.finished
|
||||
$DapperGoose/Bubble.show()
|
||||
await get_tree().create_timer(3).timeout
|
||||
$DapperGoose/Bubble.hide()
|
||||
|
||||
tween = create_tween()
|
||||
tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN)
|
||||
await tween.finished
|
||||
self.hide()
|
||||
|
||||
#var quacking = get_tree().create_timer(3).timeout
|
||||
|
||||
if goose_talking == false:
|
||||
print("QUACK")
|
||||
#goose_talking = true
|
||||
self.show()
|
||||
$DapperGoose/Bubble.set_frame(frame_index)
|
||||
var tween = create_tween()
|
||||
tween.tween_property(self, "position:x", position.x - 50, .5).set_ease(tween.EASE_OUT)
|
||||
await tween.finished
|
||||
$DapperGoose/Bubble.show()
|
||||
$DapperGoose/Quacking.start()
|
||||
await $DapperGoose/Quacking.timeout
|
||||
$DapperGoose/Bubble.hide()
|
||||
goose_talking = false
|
||||
tween = create_tween()
|
||||
tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN)
|
||||
await tween.finished
|
||||
self.hide()
|
||||
|
||||
if goose_talking == true:
|
||||
print("I'm interrupting")
|
||||
$DapperGoose/Quacking.stop()
|
||||
$DapperGosse/Bubble.set_frame(frame_index)
|
||||
$DapperGoose/Quacking.start()
|
||||
await $DapperGoose/Quacking.timeout
|
||||
$DapperGoose/Bubble.hide()
|
||||
goose_talking = false
|
||||
tween = create_tween()
|
||||
tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN)
|
||||
await tween.finished
|
||||
self.hide()
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,10 @@ texture = ExtResource("1_wo8sg")
|
|||
[node name="Bubble" type="Sprite2D" parent="DapperGoose" unique_id=2012258473]
|
||||
position = Vector2(-108, -21)
|
||||
texture = ExtResource("3_g7ad0")
|
||||
hframes = 3
|
||||
hframes = 4
|
||||
|
||||
[node name="Quacking" type="Timer" parent="DapperGoose" unique_id=1836315393]
|
||||
wait_time = 3.0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1718121082]
|
||||
position = Vector2(-18.5, 1)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
extends Node2D
|
||||
|
||||
var enemy = preload("res://scenes/enemy.tscn")
|
||||
var player = preload("res://scenes/player.tscn")
|
||||
var instance = null
|
||||
var playing: bool = false
|
||||
|
|
@ -78,7 +77,7 @@ func _on_player_died():
|
|||
# get_tree().call_group("enemies", "queue_free")
|
||||
# $Player.set_process(false)
|
||||
# get_tree().call_group("enemies", "set_process", false)
|
||||
enemy_win()
|
||||
EventBus.goose_talk.emit(3)
|
||||
instance.queue_free()
|
||||
game_over.show()
|
||||
await get_tree().create_timer(2).timeout
|
||||
|
|
@ -117,7 +116,7 @@ func new_game():
|
|||
|
||||
# Tell the enemies to spawn!
|
||||
#await get_tree().create_timer(.5).timeout
|
||||
$Wave.spawn_enemies()
|
||||
$Wave.spawn_enemies()
|
||||
|
||||
|
||||
# Tell the game we're playing.
|
||||
|
|
@ -145,6 +144,3 @@ func win_game():
|
|||
game_over.hide()
|
||||
$CanvasLayer/Title.show()
|
||||
start_button.show()
|
||||
|
||||
func enemy_win() -> void:
|
||||
print("Enemy win!")
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ z_index = -100
|
|||
self_modulate = Color(0.09185078, 0.09185078, 0.09185078, 1)
|
||||
z_index = 5
|
||||
scroll_scale = Vector2(-1, 1)
|
||||
scroll_offset = Vector2(-87, -1)
|
||||
scroll_offset = Vector2(-88, -1)
|
||||
repeat_size = Vector2(0, 64)
|
||||
autoscroll = Vector2(0, 12)
|
||||
repeat_times = 6
|
||||
|
|
@ -24,7 +24,7 @@ region_rect = Rect2(0, 0, 64, 64)
|
|||
|
||||
[node name="Sprite2D2" type="Sprite2D" parent="Foreground" unique_id=197485442]
|
||||
texture_repeat = 2
|
||||
position = Vector2(293, 160)
|
||||
position = Vector2(296, 160)
|
||||
texture = ExtResource("1_b1x6b")
|
||||
flip_h = true
|
||||
hframes = 4
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ extends Node2D
|
|||
|
||||
var wave_count: int = 0
|
||||
var enemy_count: int = 0
|
||||
var enemy = preload("res://scenes/enemy.tscn")
|
||||
var enemy = preload("res://scenes/enemy_chicken.tscn")
|
||||
|
||||
@export var wave_complete: bool = false
|
||||
|
||||
const COLS: int = 9
|
||||
const COLS: int = 5
|
||||
const ROWS: int = 3
|
||||
|
||||
func _ready():
|
||||
|
|
@ -18,8 +18,8 @@ func spawn_enemies():
|
|||
print("Enemy Wave: ", wave_count)
|
||||
for x in range(COLS):
|
||||
for y in range(ROWS):
|
||||
var e = enemy.instantiate()
|
||||
var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
|
||||
var e = enemy.instantiate()
|
||||
var pos = Vector2(x * (28 + 4) + 56, 28 * 2 + y * 38)
|
||||
add_child(e)
|
||||
e.start(pos)
|
||||
enemy_count = ROWS * COLS
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene format=3 uid="uid://drf1k1iulvy6f"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cqnotqarpsavn" path="res://wave.gd" id="1_y5ysc"]
|
||||
[ext_resource type="Script" uid="uid://cqnotqarpsavn" path="res://scenes/wave.gd" id="1_y5ysc"]
|
||||
|
||||
[node name="Wave" type="Node2D" unique_id=2117861058]
|
||||
script = ExtResource("1_y5ysc")
|
||||
|
|
|
|||
BIN
sprites/Screen Recording 2026-02-14 at 00.23.06.mov
Normal file
BIN
sprites/Screen Recording 2026-02-14 at 00.23.06.mov
Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
sprites/chicken.png
Normal file
BIN
sprites/chicken.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 KiB |
40
sprites/chicken.png.import
Normal file
40
sprites/chicken.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cy4jggxmnohbb"
|
||||
path="res://.godot/imported/chicken.png-fad9cdcbe0face9d67d25185baea2fd4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/chicken.png"
|
||||
dest_files=["res://.godot/imported/chicken.png-fad9cdcbe0face9d67d25185baea2fd4.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
Loading…
Add table
Add a link
Reference in a new issue