Added maggie's CRT destruction sound.
This commit is contained in:
parent
661098529d
commit
7e75a96795
8 changed files with 160 additions and 66 deletions
|
|
@ -1,11 +1,16 @@
|
|||
extends Area2D
|
||||
|
||||
@onready var bullet = $Bullet/Sprite2D
|
||||
|
||||
@export var speed = -250
|
||||
var shader_active = false
|
||||
var pause = false
|
||||
|
||||
func start(pos):
|
||||
position = pos
|
||||
|
||||
func _process(delta):
|
||||
if pause == true: return
|
||||
position.y += speed * delta
|
||||
|
||||
# Signal checks to see if the bullet leaves the viewport then removes bullet.
|
||||
|
|
@ -13,7 +18,32 @@ func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
|
|||
queue_free()
|
||||
|
||||
func _on_area_entered(area: Area2D) -> void:
|
||||
if area.is_in_group("enemies"):
|
||||
area.explode()
|
||||
queue_free()
|
||||
|
||||
|
||||
var enemies = get_tree().get_nodes_in_group("enemies")
|
||||
|
||||
for enemy in enemies:
|
||||
match enemy.enemy_type:
|
||||
"crt":
|
||||
if area.is_in_group("enemies"):
|
||||
if enemy.vulnerable == true:
|
||||
area.explode()
|
||||
queue_free()
|
||||
if enemy.vulnerable == false:
|
||||
print("blocked!")
|
||||
enemy.block()
|
||||
#await bullet_fx()
|
||||
queue_free()
|
||||
|
||||
_:
|
||||
if area.is_in_group("enemies"):
|
||||
area.explode()
|
||||
queue_free()
|
||||
|
||||
#func bullet_fx():
|
||||
#shader_active = true
|
||||
#bullet.material.set_shader_parameter("toggle", 1.0)
|
||||
#pause = true
|
||||
#await get_tree().create_timer(1).timeout
|
||||
#pause = false
|
||||
#shader_active = false
|
||||
#bullet.material.set_shader_parameter("toggle", 0.0)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
[gd_scene format=3 uid="uid://bwxxdrdvo3le0"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c6oorp45vpqpc" path="res://scenes/bullet.gd" id="1_v8qja"]
|
||||
[ext_resource type="Shader" uid="uid://dfywtah53il1m" path="res://shaders/player_hit.gdshader" id="2_eoqba"]
|
||||
[ext_resource type="Texture2D" uid="uid://bnc77g20gb20h" path="res://sprites/david-head.png" id="2_y25gk"]
|
||||
[ext_resource type="Texture2D" uid="uid://dwd6pycecukqb" path="res://sprites/david-headshot.png" id="3_l5glv"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_qncy5"]
|
||||
shader = ExtResource("2_eoqba")
|
||||
shader_parameter/toggle = 0.0
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_eoqba"]
|
||||
particle_flag_disable_z = true
|
||||
gravity = Vector3(0, 98, 0)
|
||||
|
|
@ -16,6 +21,7 @@ z_index = -1
|
|||
script = ExtResource("1_v8qja")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=29933687]
|
||||
material = SubResource("ShaderMaterial_qncy5")
|
||||
position = Vector2(1.1920929e-07, 2.9802322e-07)
|
||||
scale = Vector2(1.1111112, 1.1764706)
|
||||
texture = ExtResource("2_y25gk")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
extends Area2D
|
||||
|
||||
var enemy_type: String = "chicken"
|
||||
|
||||
var bullet_scene = preload("res://scenes/enemy_bullet.tscn")
|
||||
var start_pos = Vector2.ZERO
|
||||
var speed = 0
|
||||
|
|
|
|||
|
|
@ -1,28 +1,40 @@
|
|||
extends Area2D
|
||||
|
||||
var enemy_type: String = "crt"
|
||||
|
||||
var bullet_scene = preload("res://scenes/enemy_bullet.tscn")
|
||||
var start_pos = Vector2.ZERO
|
||||
var move_break
|
||||
var speed = 0
|
||||
var direction = Vector2(0,1)
|
||||
var tween_speed: float = 1.4
|
||||
|
||||
var exploding = false
|
||||
var can_shoot = true
|
||||
var vulnerable = true
|
||||
var stunned = false
|
||||
var blocking = false
|
||||
|
||||
var shader_active = false
|
||||
|
||||
var enemy_move_aggression = randf_range(5, 20)
|
||||
var enemy_shoot_aggression = randf_range(4, 20)
|
||||
|
||||
const TILE = 32
|
||||
|
||||
@onready var screensize = get_viewport_rect().size
|
||||
@onready var timer = $MoveTimer
|
||||
|
||||
@onready var crt = $EnemyCRT/CRT
|
||||
|
||||
func _ready():
|
||||
timer.start()
|
||||
|
||||
func start(pos):
|
||||
speed = 2
|
||||
var pos_mod = randf_range(-32,32) #modify the start position randomly
|
||||
position = Vector2(pos.x + pos_mod, -pos.y) #add the modifier
|
||||
#position = Vector2(pos.x, -pos.y)
|
||||
$CRT.frame = 0
|
||||
#var pos_mod = randf_range(-TILE,TILE) #modify the start position randomly
|
||||
#position = Vector2(pos.x + pos_mod, -pos.y) #add the modifier
|
||||
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)
|
||||
|
|
@ -38,65 +50,74 @@ func _on_timer_timeout():
|
|||
$DirectionTimer.start()
|
||||
|
||||
func _on_direction_timer_timeout():
|
||||
direction = Vector2(randf_range(-1, 1), randf_range(0, 1))
|
||||
direction = direction.snapped(Vector2(0,1))
|
||||
match direction:
|
||||
Vector2(0,1):
|
||||
$EnemyCRT.set_frame(0)
|
||||
Vector2(1,0):
|
||||
$EnemyCRT.set_frame(1)
|
||||
Vector2(-1,0):
|
||||
$EnemyCRT.set_frame(2)
|
||||
var move_direction = int(randf_range(0,2))
|
||||
match move_direction:
|
||||
0:
|
||||
$CRT.frame = 0
|
||||
direction = Vector2(0,1)
|
||||
can_shoot = true
|
||||
vulnerable = true
|
||||
1:
|
||||
$CRT.frame = 1
|
||||
direction = Vector2(1,0)
|
||||
can_shoot = false
|
||||
vulnerable = false
|
||||
2:
|
||||
$CRT.frame = 2
|
||||
direction = Vector2(-1,0)
|
||||
can_shoot = false
|
||||
vulnerable = false
|
||||
|
||||
$DirectionTimer.start()
|
||||
|
||||
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()
|
||||
if can_shoot == true:
|
||||
var b = bullet_scene.instantiate()
|
||||
get_tree().root.add_child(b)
|
||||
b.start(position)
|
||||
$ShootTimer.wait_time = randf_range(4, 20)
|
||||
$ShootTimer.start()
|
||||
|
||||
else:
|
||||
$ShootTimer.start()
|
||||
|
||||
func _process(delta):
|
||||
|
||||
if stunned == true:
|
||||
return
|
||||
|
||||
position += direction * speed * delta
|
||||
|
||||
|
||||
if position.x > screensize.x + 32:
|
||||
start(start_pos)
|
||||
|
||||
|
||||
|
||||
|
||||
#direction = direction.snapped(Vector2(1, 0)) # Snap to horizontal
|
||||
#direction = direction.snapped(Vector2(0, 1)) # Snap to vertical
|
||||
|
||||
|
||||
|
||||
if position.y > screensize.y + 32:
|
||||
start(start_pos)
|
||||
|
||||
#if position.x > screensize.x + 32:
|
||||
#start(start_pos)
|
||||
#
|
||||
#if position.x < screensize.x + 32:
|
||||
#start(start_pos)
|
||||
|
||||
#if Input.is_action_just_pressed("ui_right"):
|
||||
#direction = Vector2(1, 0) # Move right
|
||||
#elif Input.is_action_just_pressed("ui_left"):
|
||||
#direction = Vector2(-1, 0) # Move left
|
||||
#elif Input.is_action_just_pressed("ui_up"):
|
||||
#direction = Vector2(0, -1) # Move up
|
||||
#elif Input.is_action_just_pressed("ui_down"):
|
||||
#direction = Vector2(0, 1) # Move down
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
func explode():
|
||||
if exploding: return
|
||||
exploding = true
|
||||
EventBus.enemy_hit.emit(5)
|
||||
speed = 0
|
||||
$ImpactCRT.play()
|
||||
$AnimationPlayer.play("explode")
|
||||
#set_deferred("monitoring", false)
|
||||
await $AnimationPlayer.animation_finished
|
||||
queue_free()
|
||||
EventBus.enemy_died.emit()
|
||||
|
||||
func block():
|
||||
if blocking: return
|
||||
blocking = true
|
||||
stunned = true
|
||||
await get_tree().create_timer(5).timeout
|
||||
shader_active = true
|
||||
crt.material.set_shader_parameter("toggle", 1.0)
|
||||
await get_tree().create_timer(1).timeout
|
||||
shader_active = false
|
||||
crt.material.set_shader_parameter("toggle", 0.0)
|
||||
stunned = false
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,14 @@
|
|||
|
||||
[ext_resource type="Script" uid="uid://7ls7phfcupal" path="res://scenes/enemy_crt.gd" id="1_ugdur"]
|
||||
[ext_resource type="Texture2D" uid="uid://b5pswf7r8b7j4" path="res://sprites/crt.png" id="2_emiuq"]
|
||||
[ext_resource type="Shader" uid="uid://dfywtah53il1m" path="res://shaders/player_hit.gdshader" id="2_gas3w"]
|
||||
[ext_resource type="Texture2D" uid="uid://cy4jggxmnohbb" path="res://sprites/chicken.png" id="2_ugdur"]
|
||||
[ext_resource type="Texture2D" uid="uid://bm7fgqwqfqmf4" path="res://sprites/explosion_pallete-swap.png" id="3_emiuq"]
|
||||
[ext_resource type="AudioStream" uid="uid://cbi5q575w1g1n" path="res://sounds/CRT_IMPACT.wav" id="6_gas3w"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gas3w"]
|
||||
shader = ExtResource("2_gas3w")
|
||||
shader_parameter/toggle = 0.0
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4gyqm"]
|
||||
size = Vector2(32.727318, 27.272764)
|
||||
|
|
@ -13,7 +19,7 @@ length = 0.001
|
|||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/path = NodePath("CRT:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
|
|
@ -25,7 +31,7 @@ tracks/0/keys = {
|
|||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:texture")
|
||||
tracks/1/path = NodePath("CRT:texture")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
|
|
@ -37,7 +43,7 @@ tracks/1/keys = {
|
|||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:hframes")
|
||||
tracks/2/path = NodePath("CRT:hframes")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
|
|
@ -49,7 +55,7 @@ tracks/2/keys = {
|
|||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite2D:region_rect")
|
||||
tracks/3/path = NodePath("CRT:region_rect")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
|
|
@ -77,7 +83,7 @@ step = 0.2
|
|||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:texture")
|
||||
tracks/0/path = NodePath("CRT:texture")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
|
|
@ -89,7 +95,7 @@ tracks/0/keys = {
|
|||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:frame")
|
||||
tracks/1/path = NodePath("CRT:frame")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
|
|
@ -101,7 +107,7 @@ tracks/1/keys = {
|
|||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:hframes")
|
||||
tracks/2/path = NodePath("CRT:hframes")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
|
|
@ -113,7 +119,7 @@ tracks/2/keys = {
|
|||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite2D:region_rect")
|
||||
tracks/3/path = NodePath("CRT:region_rect")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
|
|
@ -142,7 +148,7 @@ loop_mode = 2
|
|||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/path = NodePath("CRT:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
|
|
@ -154,7 +160,7 @@ tracks/0/keys = {
|
|||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:texture")
|
||||
tracks/1/path = NodePath("CRT:texture")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
|
|
@ -166,7 +172,7 @@ tracks/1/keys = {
|
|||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:hframes")
|
||||
tracks/2/path = NodePath("CRT:hframes")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
|
|
@ -178,7 +184,7 @@ tracks/2/keys = {
|
|||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite2D:region_rect")
|
||||
tracks/3/path = NodePath("CRT:region_rect")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
|
|
@ -198,7 +204,9 @@ _data = {
|
|||
[node name="EnemyCRT" type="Area2D" unique_id=1433837580 groups=["enemies"]]
|
||||
script = ExtResource("1_ugdur")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2115910138]
|
||||
[node name="CRT" type="Sprite2D" parent="." unique_id=2115910138]
|
||||
material = SubResource("ShaderMaterial_gas3w")
|
||||
position = Vector2(0, -8)
|
||||
texture = ExtResource("2_emiuq")
|
||||
hframes = 3
|
||||
region_enabled = true
|
||||
|
|
@ -213,13 +221,17 @@ shape = SubResource("RectangleShape2D_4gyqm")
|
|||
one_shot = true
|
||||
|
||||
[node name="ShootTimer" type="Timer" parent="." unique_id=1985644907]
|
||||
wait_time = 0.35
|
||||
one_shot = true
|
||||
|
||||
[node name="DirectionTimer" type="Timer" parent="." unique_id=2080229505]
|
||||
wait_time = 0.25
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=702523492]
|
||||
libraries/ = SubResource("AnimationLibrary_7ellt")
|
||||
|
||||
[node name="DirectionTimer" type="Timer" parent="." unique_id=2080229505]
|
||||
wait_time = 5.0
|
||||
[node name="ImpactCRT" type="AudioStreamPlayer2D" parent="." unique_id=518408763]
|
||||
stream = ExtResource("6_gas3w")
|
||||
|
||||
[connection signal="timeout" from="MoveTimer" to="." method="_on_timer_timeout"]
|
||||
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]
|
||||
|
|
|
|||
|
|
@ -123,12 +123,11 @@ process_material = SubResource("ParticleProcessMaterial_b26j0")
|
|||
|
||||
[node name="Head" type="Sprite2D" parent="Ship" unique_id=522385006]
|
||||
z_index = -1
|
||||
position = Vector2(1, -17)
|
||||
position = Vector2(2, -17)
|
||||
texture = ExtResource("8_ur7pv")
|
||||
hframes = 3
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1614510161]
|
||||
position = Vector2(0, -0.4999997)
|
||||
scale = Vector2(2.0054688, 2.0054688)
|
||||
shape = SubResource("RectangleShape2D_op7ga")
|
||||
|
||||
|
|
|
|||
BIN
sounds/CRT_IMPACT.wav
Normal file
BIN
sounds/CRT_IMPACT.wav
Normal file
Binary file not shown.
24
sounds/CRT_IMPACT.wav.import
Normal file
24
sounds/CRT_IMPACT.wav.import
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cbi5q575w1g1n"
|
||||
path="res://.godot/imported/CRT_IMPACT.wav-af51af94afffec0024af9a47ed165c45.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sounds/CRT_IMPACT.wav"
|
||||
dest_files=["res://.godot/imported/CRT_IMPACT.wav-af51af94afffec0024af9a47ed165c45.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
Loading…
Add table
Add a link
Reference in a new issue