Added aliens and glow on the numbers
34
Alien.gd
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
class_name Alien
|
||||||
|
|
||||||
|
signal alien_died(value : int)
|
||||||
|
|
||||||
|
@export var hits : int = 5
|
||||||
|
@export var points : int = 500
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$Sprite2D.play("default")
|
||||||
|
move_random()
|
||||||
|
|
||||||
|
func move_random() -> void:
|
||||||
|
velocity = Vector2(randf() - 0.5, randf() - 0.5).normalized() * 30
|
||||||
|
get_tree().create_timer(randf() * 3).timeout.connect(move_random)
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
if position.y < 28:
|
||||||
|
position.y += delta * 30
|
||||||
|
else:
|
||||||
|
move_and_slide()
|
||||||
|
|
||||||
|
func hit() -> void:
|
||||||
|
hits -= 1
|
||||||
|
if hits <= 0:
|
||||||
|
alien_died.emit(points)
|
||||||
|
get_parent().call_deferred("remove_child", self)
|
||||||
|
call_deferred("queue_free")
|
||||||
|
else:
|
||||||
|
$AlienSound.play()
|
||||||
|
var tween = get_tree().create_tween()
|
||||||
|
$Sprite2D.modulate = Color(1, 1, 1, 0)
|
||||||
|
tween.tween_property($Sprite2D, "modulate", Color(1, 1, 1, 1), 0.3)
|
||||||
95
Alien.tscn
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
[gd_scene load_steps=21 format=3 uid="uid://bob33k7lrnm6o"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Alien.gd" id="1_ciw1s"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://deqh06kv1anp5" path="res://Aliens/Tri/Tri-0001.png" id="2_1hklp"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://sfyq2erohryl" path="res://Sounds/AlienHit.wav" id="2_j1jdb"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dsuvjulxsa5l" path="res://Aliens/Tri/Tri-0002.png" id="3_1x3cl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b8in8j4yaxowb" path="res://Aliens/Tri/Tri-0003.png" id="4_nyt8o"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://0upjpvbh4oeg" path="res://Aliens/Tri/Tri-0004.png" id="5_x2w4f"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dpoftuxompm4s" path="res://Aliens/Tri/Tri-0005.png" id="6_bae3i"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://5pwc323g6n8c" path="res://Aliens/Tri/Tri-0006.png" id="7_vmnl7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://btnvtnpebha76" path="res://Aliens/Tri/Tri-0007.png" id="8_06vyj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bhux6lxg17klj" path="res://Aliens/Tri/Tri-0008.png" id="9_juw8u"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://2q8t5flat6dl" path="res://Aliens/Tri/Tri-0009.png" id="10_ig0fr"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bayl5uu7b1akh" path="res://Aliens/Tri/Tri-0010.png" id="11_pvk2s"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d51nga80ks41" path="res://Aliens/Tri/Tri-0011.png" id="12_3racv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dlvu83w7pugwa" path="res://Aliens/Tri/Tri-0012.png" id="13_5ljjq"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://qrrrwetvtu3a" path="res://Aliens/Tri/Tri-0013.png" id="14_wewpv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://i6e0y736pxql" path="res://Aliens/Tri/Tri-0014.png" id="15_arfuj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cguwuqqbomqx1" path="res://Aliens/Tri/Tri-0015.png" id="16_diyot"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://e8700wifkedm" path="res://Aliens/Tri/Tri-0016.png" id="17_8rd6i"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_kcrvk"]
|
||||||
|
size = Vector2(24, 24)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_nevay"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("2_1hklp")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("3_1x3cl")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("4_nyt8o")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("5_x2w4f")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("6_bae3i")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("7_vmnl7")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8_06vyj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("9_juw8u")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("10_ig0fr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("11_pvk2s")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("12_3racv")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("13_5ljjq")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("14_wewpv")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("15_arfuj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("16_diyot")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("17_8rd6i")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 12.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[node name="Alien" type="CharacterBody2D"]
|
||||||
|
position = Vector2(64, 32)
|
||||||
|
collision_layer = 32
|
||||||
|
collision_mask = 16
|
||||||
|
script = ExtResource("1_ciw1s")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource("RectangleShape2D_kcrvk")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
sprite_frames = SubResource("SpriteFrames_nevay")
|
||||||
|
|
||||||
|
[node name="AlienSound" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_j1jdb")
|
||||||
|
bus = &"Effects"
|
||||||
BIN
Aliens/Tri/Tri-0001.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
34
Aliens/Tri/Tri-0001.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://deqh06kv1anp5"
|
||||||
|
path="res://.godot/imported/Tri-0001.png-add91fcd7a06353d37f4d29009170085.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0001.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0001.png-add91fcd7a06353d37f4d29009170085.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0002.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
34
Aliens/Tri/Tri-0002.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dsuvjulxsa5l"
|
||||||
|
path="res://.godot/imported/Tri-0002.png-07e567acb4608321964766495e6492a9.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0002.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0002.png-07e567acb4608321964766495e6492a9.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0003.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0003.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b8in8j4yaxowb"
|
||||||
|
path="res://.godot/imported/Tri-0003.png-b1a5ceccf6138637f097330d988dc7f4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0003.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0003.png-b1a5ceccf6138637f097330d988dc7f4.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0004.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0004.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://0upjpvbh4oeg"
|
||||||
|
path="res://.godot/imported/Tri-0004.png-f18fd6d4cdbff0987da377969c236304.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0004.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0004.png-f18fd6d4cdbff0987da377969c236304.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0005.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
34
Aliens/Tri/Tri-0005.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dpoftuxompm4s"
|
||||||
|
path="res://.godot/imported/Tri-0005.png-74cb6ce197fa3f5bf3c377ebb93d3184.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0005.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0005.png-74cb6ce197fa3f5bf3c377ebb93d3184.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0006.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0006.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://5pwc323g6n8c"
|
||||||
|
path="res://.godot/imported/Tri-0006.png-3ac9e8db2165119fccabceee0ff17491.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0006.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0006.png-3ac9e8db2165119fccabceee0ff17491.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0007.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0007.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://btnvtnpebha76"
|
||||||
|
path="res://.godot/imported/Tri-0007.png-cab1e046ee6b2bb20c8fe3713ce193c8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0007.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0007.png-cab1e046ee6b2bb20c8fe3713ce193c8.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0008.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0008.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bhux6lxg17klj"
|
||||||
|
path="res://.godot/imported/Tri-0008.png-0cdffe76aaafbf0f669005eda804fbfe.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0008.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0008.png-0cdffe76aaafbf0f669005eda804fbfe.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0009.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0009.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://2q8t5flat6dl"
|
||||||
|
path="res://.godot/imported/Tri-0009.png-9648e2e371867637bc89616e26e46b23.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0009.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0009.png-9648e2e371867637bc89616e26e46b23.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0010.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0010.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bayl5uu7b1akh"
|
||||||
|
path="res://.godot/imported/Tri-0010.png-6132c6d355dd292114c6158c50d421dd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0010.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0010.png-6132c6d355dd292114c6158c50d421dd.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0011.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0011.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d51nga80ks41"
|
||||||
|
path="res://.godot/imported/Tri-0011.png-1764b09d0f5a85c6112aa8f0c71fe9ed.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0011.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0011.png-1764b09d0f5a85c6112aa8f0c71fe9ed.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0012.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0012.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dlvu83w7pugwa"
|
||||||
|
path="res://.godot/imported/Tri-0012.png-f92231825c23ffbde964b7e9b2adfb4f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0012.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0012.png-f92231825c23ffbde964b7e9b2adfb4f.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0013.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0013.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://qrrrwetvtu3a"
|
||||||
|
path="res://.godot/imported/Tri-0013.png-972d1b6c47a35b932665ee4fceb39c4f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0013.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0013.png-972d1b6c47a35b932665ee4fceb39c4f.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0014.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
34
Aliens/Tri/Tri-0014.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://i6e0y736pxql"
|
||||||
|
path="res://.godot/imported/Tri-0014.png-968ab6a7bdcad39d721097ae920e8656.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0014.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0014.png-968ab6a7bdcad39d721097ae920e8656.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0015.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
34
Aliens/Tri/Tri-0015.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cguwuqqbomqx1"
|
||||||
|
path="res://.godot/imported/Tri-0015.png-6b6a34ae38c32dd6d88c17be06188759.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0015.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0015.png-6b6a34ae38c32dd6d88c17be06188759.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Aliens/Tri/Tri-0016.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
34
Aliens/Tri/Tri-0016.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://e8700wifkedm"
|
||||||
|
path="res://.godot/imported/Tri-0016.png-8b3e819334af3e34e7b38877035723d0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Aliens/Tri/Tri-0016.png"
|
||||||
|
dest_files=["res://.godot/imported/Tri-0016.png-8b3e819334af3e34e7b38877035723d0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
12
Ball/Ball.gd
@@ -8,6 +8,7 @@ signal hit_brick(ball : Node, brick : Node)
|
|||||||
signal hit_paddle(ball : Node)
|
signal hit_paddle(ball : Node)
|
||||||
signal hit_floor(ball : Node)
|
signal hit_floor(ball : Node)
|
||||||
signal hit_wall(ball : Node)
|
signal hit_wall(ball : Node)
|
||||||
|
signal hit_alien(ball : Node, alien : Node)
|
||||||
|
|
||||||
var captured : bool = false
|
var captured : bool = false
|
||||||
var capture_object : Node2D
|
var capture_object : Node2D
|
||||||
@@ -15,7 +16,7 @@ var capture_offset : Vector2 = Vector2.ZERO
|
|||||||
|
|
||||||
var speed : float = 100
|
var speed : float = 100
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(_delta: float) -> void:
|
||||||
# angular_velocity = 0
|
# angular_velocity = 0
|
||||||
rotation = 0
|
rotation = 0
|
||||||
if captured:
|
if captured:
|
||||||
@@ -50,6 +51,10 @@ func release() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_body_exited(body: Node) -> void:
|
func _on_body_exited(body: Node) -> void:
|
||||||
|
if body is Alien:
|
||||||
|
body.hit()
|
||||||
|
hit_alien.emit(self, body)
|
||||||
|
return
|
||||||
if body is Brick:
|
if body is Brick:
|
||||||
if not body.visible:
|
if not body.visible:
|
||||||
return
|
return
|
||||||
@@ -81,7 +86,7 @@ func slowdown() -> void:
|
|||||||
speed = 100
|
speed = 100
|
||||||
|
|
||||||
|
|
||||||
func _on_body_entered(body: Node) -> void:
|
func _on_body_entered(_body: Node) -> void:
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
func enable_sparkles() -> void:
|
func enable_sparkles() -> void:
|
||||||
@@ -89,3 +94,6 @@ func enable_sparkles() -> void:
|
|||||||
|
|
||||||
func disable_sparkles() -> void:
|
func disable_sparkles() -> void:
|
||||||
$CPUParticles2D.emitting = false
|
$CPUParticles2D.emitting = false
|
||||||
|
|
||||||
|
func is_sparkles() -> bool:
|
||||||
|
return $CPUParticles2D.emitting
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ radius = 3.0
|
|||||||
colors = PackedColorArray(1, 1, 0, 1, 1, 1, 0, 0)
|
colors = PackedColorArray(1, 1, 0, 1, 1, 1, 0, 0)
|
||||||
|
|
||||||
[node name="Ball" type="RigidBody2D"]
|
[node name="Ball" type="RigidBody2D"]
|
||||||
collision_layer = 4
|
collision_layer = 8
|
||||||
collision_mask = 5
|
collision_mask = 37
|
||||||
mass = 0.01
|
mass = 0.01
|
||||||
physics_material_override = ExtResource("1_vk3rj")
|
physics_material_override = ExtResource("1_vk3rj")
|
||||||
gravity_scale = 0.0
|
gravity_scale = 0.0
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ func _show_block() -> void:
|
|||||||
tween.tween_property($TextureRect, "modulate", original_color, 0.25)
|
tween.tween_property($TextureRect, "modulate", original_color, 0.25)
|
||||||
visible = true
|
visible = true
|
||||||
if not pass_mode:
|
if not pass_mode:
|
||||||
collision_layer = 1
|
collision_layer = 0b10001
|
||||||
|
|
||||||
|
|
||||||
func type(base : int, color : Color) -> void:
|
func type(base : int, color : Color) -> void:
|
||||||
@@ -78,15 +78,13 @@ func type(base : int, color : Color) -> void:
|
|||||||
func _on_area_2d_body_entered(body: Node2D) -> void:
|
func _on_area_2d_body_entered(body: Node2D) -> void:
|
||||||
if not pass_mode: return
|
if not pass_mode: return
|
||||||
if body is Ball:
|
if body is Ball:
|
||||||
print("Area hit ball")
|
|
||||||
body._on_body_exited(self)
|
body._on_body_exited(self)
|
||||||
pass # Replace with function body.
|
|
||||||
|
|
||||||
func enable_pass() -> void:
|
func enable_pass() -> void:
|
||||||
collision_layer = 0
|
collision_layer = 0b10000
|
||||||
pass_mode = true
|
pass_mode = true
|
||||||
|
|
||||||
func disable_pass() -> void:
|
func disable_pass() -> void:
|
||||||
if visible:
|
if visible:
|
||||||
collision_layer = 1
|
collision_layer = 0b10001
|
||||||
pass_mode = false
|
pass_mode = false
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ size = Vector2(32, 16)
|
|||||||
size = Vector2(32, 16)
|
size = Vector2(32, 16)
|
||||||
|
|
||||||
[node name="Brick" type="StaticBody2D"]
|
[node name="Brick" type="StaticBody2D"]
|
||||||
|
collision_layer = 17
|
||||||
|
collision_mask = 17
|
||||||
input_pickable = true
|
input_pickable = true
|
||||||
physics_material_override = ExtResource("1_it5u2")
|
physics_material_override = ExtResource("1_it5u2")
|
||||||
script = ExtResource("1_eylhu")
|
script = ExtResource("1_eylhu")
|
||||||
@@ -38,8 +40,8 @@ texture = ExtResource("2_v230s")
|
|||||||
stretch_mode = 2
|
stretch_mode = 2
|
||||||
|
|
||||||
[node name="Area2D" type="Area2D" parent="."]
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
collision_layer = 4
|
collision_layer = 8
|
||||||
collision_mask = 4
|
collision_mask = 8
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
shape = SubResource("RectangleShape2D_wi5j7")
|
shape = SubResource("RectangleShape2D_wi5j7")
|
||||||
|
|||||||
228
Dunkanoid.gd
@@ -3,6 +3,27 @@ extends Node2D
|
|||||||
var _Brick = preload("res://Brick/Brick.tscn")
|
var _Brick = preload("res://Brick/Brick.tscn")
|
||||||
var _Ball = preload("res://Ball/Ball.tscn")
|
var _Ball = preload("res://Ball/Ball.tscn")
|
||||||
var _Upgrade = preload("res://Upgrade/Upgrade.tscn")
|
var _Upgrade = preload("res://Upgrade/Upgrade.tscn")
|
||||||
|
var _Alien = preload("res://Alien.tscn")
|
||||||
|
|
||||||
|
@onready var ScoreNode = $ScoreCard/Score/ScoreBox
|
||||||
|
@onready var LivesNode = $ScoreCard/Lives/LivesBox
|
||||||
|
@onready var RunTimeNode = $ScoreCard/RunTime/RunTime
|
||||||
|
@onready var BestTimeNode = $ScoreCard/BestTime/BestTime
|
||||||
|
@onready var BricksNode = $Bricks
|
||||||
|
@onready var BackgroundNode = $Background
|
||||||
|
@onready var PaddleNode = $Paddle
|
||||||
|
@onready var PipesNode = $Pipes
|
||||||
|
@onready var AliensNode = $Aliens
|
||||||
|
@onready var RunTimerNode = $RunTimer
|
||||||
|
@onready var NewBestNode = $NewBestTime
|
||||||
|
@onready var NewBestTimeNode = $NewBestTime/HBoxContainer/BestTime
|
||||||
|
@onready var StartTitleNode = $Start/VBoxContainer/PanelContainer/VBoxContainer/Title
|
||||||
|
@onready var StartRoundNode = $Start/VBoxContainer/PanelContainer/VBoxContainer/Round
|
||||||
|
@onready var StartNode = $Start
|
||||||
|
@onready var PowerballTimerNode = $PowerBallTimer
|
||||||
|
@onready var FloorSoundNode = $Sounds/FloorSound
|
||||||
|
@onready var UpgradeSoundNode = $Sounds/UpgradeCollected
|
||||||
|
@onready var AlienDieSoundNode = $Sounds/AlienDie
|
||||||
|
|
||||||
var bricks : Array = []
|
var bricks : Array = []
|
||||||
var balls : Array[Node] = []
|
var balls : Array[Node] = []
|
||||||
@@ -42,44 +63,51 @@ func _ready() -> void:
|
|||||||
new_level()
|
new_level()
|
||||||
Music.play_game()
|
Music.play_game()
|
||||||
|
|
||||||
|
var opened: bool = false
|
||||||
|
|
||||||
func _process(delta : float) -> void:
|
func _process(delta : float) -> void:
|
||||||
|
|
||||||
if OS.has_feature("editor"):
|
if OS.has_feature("editor"):
|
||||||
if Input.is_action_just_pressed("cheat"):
|
if Input.is_action_just_pressed("cheat"):
|
||||||
for i in 10:
|
spawn_alien()
|
||||||
|
for i in 50:
|
||||||
add_ball()
|
add_ball()
|
||||||
|
|
||||||
if mode == MODE_EXIT:
|
if mode == MODE_EXIT:
|
||||||
if $Paddle.global_position.x - ($Paddle.width / 2) <= 20:
|
if PaddleNode.global_position.x - (PaddleNode.width / 2) <= 20:
|
||||||
level = level_data.left
|
level = level_data.left
|
||||||
leave(-1)
|
leave(-1)
|
||||||
if $Paddle.global_position.x + ($Paddle.width / 2) >= 412:
|
if PaddleNode.global_position.x + (PaddleNode.width / 2) >= 412:
|
||||||
level = level_data.right
|
level = level_data.right
|
||||||
leave(+1)
|
leave(+1)
|
||||||
|
|
||||||
if mode == MODE_LEAVE:
|
if mode == MODE_LEAVE:
|
||||||
$Paddle.global_position.x += (delta * leave_direction * 20.0)
|
PaddleNode.global_position.x += (delta * leave_direction * 20.0)
|
||||||
if $Paddle.global_position.x < -16 or $Paddle.global_position.x > 428:
|
if PaddleNode.global_position.x < -16 or PaddleNode.global_position.x > 462:
|
||||||
|
if opened:
|
||||||
|
PipesNode.close_door(Pipes.BOTTOM_LEFT)
|
||||||
|
PipesNode.close_door(Pipes.BOTTOM_RIGHT)
|
||||||
|
opened = false
|
||||||
if not Music.jingle_playing:
|
if not Music.jingle_playing:
|
||||||
new_level()
|
new_level()
|
||||||
else:
|
else:
|
||||||
if Input.is_action_pressed("left"):
|
if Input.is_action_pressed("left"):
|
||||||
var leftmost = 16 + $Paddle.width / 2
|
var leftmost = 16 + PaddleNode.width / 2
|
||||||
$Paddle.position.x -= delta * PADDLE_SPEED
|
PaddleNode.position.x -= delta * PADDLE_SPEED
|
||||||
$Paddle.position.y = 340
|
PaddleNode.position.y = 340
|
||||||
if $Paddle.position.x < leftmost:
|
if PaddleNode.position.x < leftmost:
|
||||||
$Paddle.position.x = leftmost
|
PaddleNode.position.x = leftmost
|
||||||
if Input.is_action_pressed("right"):
|
if Input.is_action_pressed("right"):
|
||||||
var rightmost = 432 - $Paddle.width / 2
|
var rightmost = 432 - PaddleNode.width / 2
|
||||||
$Paddle.position.x += delta * PADDLE_SPEED
|
PaddleNode.position.x += delta * PADDLE_SPEED
|
||||||
$Paddle.position.y = 340
|
PaddleNode.position.y = 340
|
||||||
if $Paddle.position.x > rightmost:
|
if PaddleNode.position.x > rightmost:
|
||||||
$Paddle.position.x = rightmost
|
PaddleNode.position.x = rightmost
|
||||||
if Input.is_action_just_pressed("fire"):
|
if Input.is_action_just_pressed("fire"):
|
||||||
if mode == MODE_PLAY:
|
if mode == MODE_PLAY:
|
||||||
if level_starting:
|
if level_starting:
|
||||||
level_starting = false
|
level_starting = false
|
||||||
$RunTimer.start()
|
RunTimerNode.start()
|
||||||
time_run = true
|
time_run = true
|
||||||
for ball in balls:
|
for ball in balls:
|
||||||
if (ball.captured):
|
if (ball.captured):
|
||||||
@@ -87,7 +115,7 @@ func _process(delta : float) -> void:
|
|||||||
|
|
||||||
|
|
||||||
if time_run:
|
if time_run:
|
||||||
$ScoreCard/RunTime.text = "%02d:%05.2f" % [$RunTimer.elapsed_time / 60000, $RunTimer.elapsed_time % 60000 / 1000.0]
|
RunTimeNode.text = "%02d:%05.2f" % [RunTimerNode.elapsed_time / 60000, RunTimerNode.elapsed_time % 60000 / 1000.0]
|
||||||
|
|
||||||
|
|
||||||
func leave(dir : int) -> void:
|
func leave(dir : int) -> void:
|
||||||
@@ -95,37 +123,38 @@ func leave(dir : int) -> void:
|
|||||||
leave_direction = dir
|
leave_direction = dir
|
||||||
|
|
||||||
func new_level() -> void:
|
func new_level() -> void:
|
||||||
$NewBestTime.visible = false
|
NewBestNode.visible = false
|
||||||
time_run = false
|
time_run = false
|
||||||
level_starting = true
|
level_starting = true
|
||||||
$Paddle.normal()
|
PaddleNode.normal()
|
||||||
$Paddle.position.x = 224
|
PaddleNode.position.x = 224
|
||||||
mode = MODE_WAIT
|
mode = MODE_WAIT
|
||||||
$Exits.visible = false
|
|
||||||
for ball in balls:
|
for ball in balls:
|
||||||
|
if ball.get_parent() != self:
|
||||||
|
print("For some reason this ball's parent has got lost")
|
||||||
remove_child(ball)
|
remove_child(ball)
|
||||||
ball.queue_free()
|
ball.queue_free()
|
||||||
balls.clear()
|
balls.clear()
|
||||||
for brick in bricks:
|
for brick in bricks:
|
||||||
$Bricks.remove_child(brick)
|
BricksNode.remove_child(brick)
|
||||||
brick.queue_free()
|
brick.queue_free()
|
||||||
bricks.clear()
|
bricks.clear()
|
||||||
chr += 1
|
chr += 1
|
||||||
level_data = load_level_from_disk(level)
|
level_data = load_level_from_disk(level)
|
||||||
$ScoreCard/BestTime.text = format_time(Global.get_best_time(level_data.name))
|
BestTimeNode.text = format_time(Global.get_best_time(level_data.name))
|
||||||
$Start/VBoxContainer/PanelContainer/VBoxContainer/Title.text = level
|
StartTitleNode.text = level
|
||||||
$Start/VBoxContainer/PanelContainer/VBoxContainer/Round.text = "ROUND %3d" % [chr]
|
StartRoundNode.text = "ROUND %3d" % [chr]
|
||||||
$Background.texture = load("res://Backgrounds/%s.png" % level_data.background)
|
BackgroundNode.texture = load("res://Backgrounds/%s.png" % level_data.background)
|
||||||
$Background.modulate = Color("#%s" % level_data.get("tint", "FFFFFF"))
|
BackgroundNode.modulate = Color("#%s" % level_data.get("tint", "FFFFFF"))
|
||||||
load_level(level_data.data)
|
load_level(level_data.data)
|
||||||
var ball = _Ball.instantiate()
|
var ball = _Ball.instantiate()
|
||||||
ball.capture($Paddle, Vector2((randf() * 32) - 16, 8))
|
ball.capture(PaddleNode, Vector2((randf() * 32) - 16, 8))
|
||||||
ball.hit_paddle.connect(_on_hit_paddle)
|
ball.hit_paddle.connect(_on_hit_paddle)
|
||||||
ball.hit_floor.connect(_on_hit_floor)
|
ball.hit_floor.connect(_on_hit_floor)
|
||||||
add_child(ball)
|
add_child(ball)
|
||||||
balls.push_back(ball)
|
balls.push_back(ball)
|
||||||
|
|
||||||
$Start.visible = true
|
StartNode.visible = true
|
||||||
Music.jingle_finished.connect(_on_start_round_finished)
|
Music.jingle_finished.connect(_on_start_round_finished)
|
||||||
Music.jingle(Music.JINGLE_LEVEL_START)
|
Music.jingle(Music.JINGLE_LEVEL_START)
|
||||||
|
|
||||||
@@ -148,7 +177,7 @@ func _brick_destroyed(brick) -> void:
|
|||||||
upgrade.set_upgrade("R", Color.LIGHT_CORAL)
|
upgrade.set_upgrade("R", Color.LIGHT_CORAL)
|
||||||
5:
|
5:
|
||||||
upgrade.set_upgrade("P", Color.AQUAMARINE)
|
upgrade.set_upgrade("P", Color.AQUAMARINE)
|
||||||
add_child(upgrade)
|
call_deferred("add_child", upgrade)
|
||||||
bricks.erase(brick)
|
bricks.erase(brick)
|
||||||
var brick_count = 0
|
var brick_count = 0
|
||||||
for abrick in bricks:
|
for abrick in bricks:
|
||||||
@@ -157,30 +186,36 @@ func _brick_destroyed(brick) -> void:
|
|||||||
|
|
||||||
if brick_count == 0:
|
if brick_count == 0:
|
||||||
for ball in balls:
|
for ball in balls:
|
||||||
remove_child(ball)
|
call_deferred("remove_child", ball)
|
||||||
ball.queue_free()
|
ball.call_deferred("queue_free")
|
||||||
balls.clear()
|
balls.clear()
|
||||||
|
|
||||||
for c in get_children():
|
for c in get_children():
|
||||||
if c is Upgrade:
|
if c is Upgrade:
|
||||||
remove_child(c)
|
call_deferred("remove_child", c)
|
||||||
c.queue_free()
|
c.call_deferred("queue_free")
|
||||||
|
|
||||||
|
for c in AliensNode.get_children():
|
||||||
|
AliensNode.call_deferred("remove_child", c)
|
||||||
|
c.call_deferred("queue_free")
|
||||||
|
|
||||||
mode = MODE_EXIT
|
mode = MODE_EXIT
|
||||||
$Exits.visible = true
|
PipesNode.open_door(Pipes.BOTTOM_LEFT)
|
||||||
|
PipesNode.open_door(Pipes.BOTTOM_RIGHT)
|
||||||
|
opened = true
|
||||||
Music.jingle(Music.JINGLE_LEVEL_WON)
|
Music.jingle(Music.JINGLE_LEVEL_WON)
|
||||||
var elapsed = $RunTimer.elapsed_time
|
var elapsed = RunTimerNode.elapsed_time
|
||||||
var best = Global.get_best_time(level_data.name)
|
var best = Global.get_best_time(level_data.name)
|
||||||
if elapsed < best:
|
if elapsed < best:
|
||||||
Global.set_best_time(level_data.name, elapsed)
|
Global.set_best_time(level_data.name, elapsed)
|
||||||
$RunTimer.pause()
|
RunTimerNode.pause()
|
||||||
$NewBestTime/BestTime.text = format_time(elapsed)
|
NewBestTimeNode.text = format_time(elapsed)
|
||||||
$NewBestTime.visible = true
|
NewBestNode.visible = true
|
||||||
|
|
||||||
func format_time(time : int) -> String:
|
func format_time(time : int) -> String:
|
||||||
if time > 3600000:
|
if time > 3600000:
|
||||||
return "--:--.--"
|
return "--:--.--"
|
||||||
return "%02d:%05.2f" % [time / 60000, time % 60000 / 1000.0]
|
return "%02d:%05.2f" % [int(time / 60000.0), time % 60000 / 1000.0]
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if paused:
|
if paused:
|
||||||
@@ -188,20 +223,20 @@ func _input(event: InputEvent) -> void:
|
|||||||
if event is InputEventMouseMotion:
|
if event is InputEventMouseMotion:
|
||||||
if mode != MODE_LEAVE:
|
if mode != MODE_LEAVE:
|
||||||
if Global.relative_mouse:
|
if Global.relative_mouse:
|
||||||
var leftmost = 16 + $Paddle.width / 2
|
var leftmost = 16 + PaddleNode.width / 2
|
||||||
var rightmost = 432 - $Paddle.width / 2
|
var rightmost = 432 - PaddleNode.width / 2
|
||||||
$Paddle.position.x += event.relative.x
|
PaddleNode.position.x += event.relative.x
|
||||||
$Paddle.position.y = 340
|
PaddleNode.position.y = 340
|
||||||
if $Paddle.position.x < leftmost:
|
if PaddleNode.position.x < leftmost:
|
||||||
$Paddle.position.x = leftmost
|
PaddleNode.position.x = leftmost
|
||||||
if $Paddle.position.x > rightmost:
|
if PaddleNode.position.x > rightmost:
|
||||||
$Paddle.position.x = rightmost
|
PaddleNode.position.x = rightmost
|
||||||
else:
|
else:
|
||||||
$Paddle.position = Vector2(min(max(16 + $Paddle.width/2, event.position.x), 432-$Paddle.width/2), 340)
|
PaddleNode.position = Vector2(min(max(16 + PaddleNode.width/2, event.position.x), 432-PaddleNode.width/2), 340)
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
if mode == MODE_PLAY:
|
if mode == MODE_PLAY:
|
||||||
if level_starting:
|
if level_starting:
|
||||||
$RunTimer.start()
|
RunTimerNode.start()
|
||||||
level_starting = false
|
level_starting = false
|
||||||
time_run = true
|
time_run = true
|
||||||
|
|
||||||
@@ -210,30 +245,30 @@ func _input(event: InputEvent) -> void:
|
|||||||
ball.release()
|
ball.release()
|
||||||
|
|
||||||
func _on_hit_paddle(ball) -> void:
|
func _on_hit_paddle(ball) -> void:
|
||||||
if $Paddle.is_capture():
|
if PaddleNode.is_capture():
|
||||||
var diff = $Paddle.global_position.x - ball.global_position.x
|
var diff = PaddleNode.global_position.x - ball.global_position.x
|
||||||
ball.capture($Paddle, Vector2(diff, 8))
|
ball.capture(PaddleNode, Vector2(diff, 8))
|
||||||
|
|
||||||
func _on_hit_floor(ball) -> void:
|
func _on_hit_floor(ball) -> void:
|
||||||
$Sounds/FloorSound.play()
|
FloorSoundNode.play()
|
||||||
balls.erase(ball)
|
balls.erase(ball)
|
||||||
remove_child(ball)
|
call_deferred("remove_child", ball)
|
||||||
ball.call_deferred("queue_free")
|
ball.call_deferred("queue_free")
|
||||||
if balls.size() == 0:
|
if balls.size() == 0:
|
||||||
for c in get_children():
|
for c in get_children():
|
||||||
if c is Upgrade:
|
if c is Upgrade:
|
||||||
remove_child(c)
|
remove_child(c)
|
||||||
c.queue_free()
|
c.queue_free()
|
||||||
$Paddle.normal()
|
PaddleNode.normal()
|
||||||
ball = _Ball.instantiate()
|
ball = _Ball.instantiate()
|
||||||
ball.capture($Paddle, Vector2((randf() * 32) - 16, 8))
|
ball.capture(PaddleNode, Vector2((randf() * 32) - 16, 8))
|
||||||
ball.hit_paddle.connect(_on_hit_paddle)
|
ball.hit_paddle.connect(_on_hit_paddle)
|
||||||
ball.hit_floor.connect(_on_hit_floor)
|
ball.hit_floor.connect(_on_hit_floor)
|
||||||
add_child(ball)
|
add_child(ball)
|
||||||
balls.push_back(ball)
|
balls.push_back(ball)
|
||||||
Music.jingle_finished.connect(_on_start_round_finished)
|
Music.jingle_finished.connect(_on_start_round_finished)
|
||||||
Music.jingle(Music.JINGLE_LEVEL_START)
|
Music.jingle(Music.JINGLE_LEVEL_START)
|
||||||
$Start.visible = true
|
StartNode.visible = true
|
||||||
mode = MODE_WAIT
|
mode = MODE_WAIT
|
||||||
lives -= 1
|
lives -= 1
|
||||||
if lives <= 0:
|
if lives <= 0:
|
||||||
@@ -245,14 +280,14 @@ func _on_round_won_finished() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_update_score(score) -> void:
|
func _on_update_score(score) -> void:
|
||||||
$ScoreCard/ScoreBox.text = "%08d" % score
|
ScoreNode.text = "%08d" % score
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
func _on_upgrade_collected(code : String) -> void:
|
func _on_upgrade_collected(code : String) -> void:
|
||||||
$Sounds/UpgradeCollected.play()
|
UpgradeSoundNode.play()
|
||||||
match code:
|
match code:
|
||||||
"C":
|
"C":
|
||||||
$Paddle.capture()
|
PaddleNode.capture()
|
||||||
"T":
|
"T":
|
||||||
add_ball()
|
add_ball()
|
||||||
add_ball()
|
add_ball()
|
||||||
@@ -260,9 +295,9 @@ func _on_upgrade_collected(code : String) -> void:
|
|||||||
for ball in balls:
|
for ball in balls:
|
||||||
ball.slowdown()
|
ball.slowdown()
|
||||||
"E":
|
"E":
|
||||||
$Paddle.big()
|
PaddleNode.big()
|
||||||
"R":
|
"R":
|
||||||
$Paddle.small()
|
PaddleNode.small()
|
||||||
"P":
|
"P":
|
||||||
start_powerball()
|
start_powerball()
|
||||||
|
|
||||||
@@ -276,9 +311,11 @@ func add_ball() -> void:
|
|||||||
newball.hit_paddle.connect(_on_hit_paddle)
|
newball.hit_paddle.connect(_on_hit_paddle)
|
||||||
newball.hit_floor.connect(_on_hit_floor)
|
newball.hit_floor.connect(_on_hit_floor)
|
||||||
newball.speed = balls[0].speed
|
newball.speed = balls[0].speed
|
||||||
|
if balls[0].is_sparkles():
|
||||||
|
newball.enable_sparkles()
|
||||||
if balls[0].captured:
|
if balls[0].captured:
|
||||||
newball.capture($Paddle, Vector2((randf() - 0.5) * 32, 8))
|
newball.capture(PaddleNode, Vector2((randf() - 0.5) * 32, 8))
|
||||||
add_child(newball)
|
call_deferred("add_child", newball)
|
||||||
balls.push_back(newball)
|
balls.push_back(newball)
|
||||||
|
|
||||||
|
|
||||||
@@ -319,21 +356,21 @@ func load_level(data) -> void:
|
|||||||
brick.position = Vector2(x * 32 + 16 + 16, y * 16 + 8 + 16)
|
brick.position = Vector2(x * 32 + 16 + 16, y * 16 + 8 + 16)
|
||||||
bricks.push_back(brick)
|
bricks.push_back(brick)
|
||||||
brick.brick_destroyed.connect(_brick_destroyed)
|
brick.brick_destroyed.connect(_brick_destroyed)
|
||||||
$Bricks.add_child(brick)
|
BricksNode.add_child(brick)
|
||||||
|
|
||||||
func _on_start_round_finished(item : int) -> void:
|
func _on_start_round_finished(_item : int) -> void:
|
||||||
Music.jingle_finished.disconnect(_on_start_round_finished)
|
Music.jingle_finished.disconnect(_on_start_round_finished)
|
||||||
$Start.visible = false
|
StartNode.visible = false
|
||||||
mode = MODE_PLAY
|
mode = MODE_PLAY
|
||||||
|
|
||||||
func _on_update_lives() -> void:
|
func _on_update_lives() -> void:
|
||||||
$ScoreCard/LivesBox.text = "%d" % lives
|
LivesNode.text = "%d" % lives
|
||||||
|
|
||||||
func load_level_from_disk(name : String) -> Dictionary:
|
func load_level_from_disk(lname : String) -> Dictionary:
|
||||||
if FileAccess.file_exists("user://Levels/%s.json" % name):
|
if FileAccess.file_exists("user://Levels/%s.json" % lname):
|
||||||
return JSON.parse_string(FileAccess.get_file_as_string("user://Levels/%s.json" % name))
|
return JSON.parse_string(FileAccess.get_file_as_string("user://Levels/%s.json" % lname))
|
||||||
if FileAccess.file_exists("res://Levels/%s.json" % name):
|
if FileAccess.file_exists("res://Levels/%s.json" % lname):
|
||||||
return JSON.parse_string(FileAccess.get_file_as_string("res://Levels/%s.json" % name))
|
return JSON.parse_string(FileAccess.get_file_as_string("res://Levels/%s.json" % lname))
|
||||||
return JSON.parse_string(FileAccess.get_file_as_string("res://Levels/NOTFOUND.json"))
|
return JSON.parse_string(FileAccess.get_file_as_string("res://Levels/NOTFOUND.json"))
|
||||||
|
|
||||||
func _on_paddle_effect_finished(effect: int) -> void:
|
func _on_paddle_effect_finished(effect: int) -> void:
|
||||||
@@ -345,16 +382,53 @@ func _on_paddle_effect_finished(effect: int) -> void:
|
|||||||
func start_powerball() -> void:
|
func start_powerball() -> void:
|
||||||
for ball in balls:
|
for ball in balls:
|
||||||
ball.enable_sparkles()
|
ball.enable_sparkles()
|
||||||
for brick in $Bricks.get_children():
|
for brick in BricksNode.get_children():
|
||||||
brick.enable_pass()
|
brick.enable_pass()
|
||||||
$PowerBallTimer.start(10)
|
PowerballTimerNode.start(10)
|
||||||
|
|
||||||
func stop_powerball() -> void:
|
func stop_powerball() -> void:
|
||||||
for ball in balls:
|
for ball in balls:
|
||||||
ball.disable_sparkles()
|
ball.disable_sparkles()
|
||||||
for brick in $Bricks.get_children():
|
for brick in BricksNode.get_children():
|
||||||
brick.disable_pass()
|
brick.disable_pass()
|
||||||
|
|
||||||
|
|
||||||
func _on_power_ball_timer_timeout() -> void:
|
func _on_power_ball_timer_timeout() -> void:
|
||||||
stop_powerball()
|
stop_powerball()
|
||||||
|
|
||||||
|
func spawn_alien() -> void:
|
||||||
|
if AliensNode.get_child_count() < 3:
|
||||||
|
var door : int = Pipes.TOP_LEFT if randf() < 0.5 else Pipes.TOP_RIGHT
|
||||||
|
PipesNode.open_door(door)
|
||||||
|
|
||||||
|
func _on_pipes_door_opened(door) -> void:
|
||||||
|
match door:
|
||||||
|
Pipes.TOP_LEFT:
|
||||||
|
var alien = _Alien.instantiate()
|
||||||
|
alien.position = Vector2(128, -12)
|
||||||
|
alien.velocity = Vector2(0, 50)
|
||||||
|
alien.alien_died.connect(_alien_died)
|
||||||
|
AliensNode.add_child(alien)
|
||||||
|
get_tree().create_timer(2).timeout.connect(_close_top_left)
|
||||||
|
pass
|
||||||
|
Pipes.TOP_RIGHT:
|
||||||
|
var alien = _Alien.instantiate()
|
||||||
|
alien.position = Vector2(320, -12)
|
||||||
|
alien.velocity = Vector2(0, 50)
|
||||||
|
alien.alien_died.connect(_alien_died)
|
||||||
|
AliensNode.add_child(alien)
|
||||||
|
get_tree().create_timer(2).timeout.connect(_close_top_right)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _close_top_left() -> void:
|
||||||
|
PipesNode.close_door(Pipes.TOP_LEFT)
|
||||||
|
|
||||||
|
func _close_top_right() -> void:
|
||||||
|
PipesNode.close_door(Pipes.TOP_RIGHT)
|
||||||
|
|
||||||
|
func _on_alien_timer_timeout() -> void:
|
||||||
|
spawn_alien()
|
||||||
|
|
||||||
|
func _alien_died(points : int) -> void:
|
||||||
|
Global.score += points
|
||||||
|
AlienDieSoundNode.play()
|
||||||
|
|||||||
304
Dunkanoid.tscn
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=17 format=3 uid="uid://4q0epdnb0x4s"]
|
[gd_scene load_steps=27 format=3 uid="uid://4q0epdnb0x4s"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Dunkanoid.gd" id="1_kv4if"]
|
[ext_resource type="Script" path="res://Dunkanoid.gd" id="1_kv4if"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dndemjw7up2r6" path="res://Paddle/Paddle.tscn" id="2_26c5i"]
|
[ext_resource type="PackedScene" uid="uid://dndemjw7up2r6" path="res://Paddle/Paddle.tscn" id="2_26c5i"]
|
||||||
@@ -9,9 +9,19 @@
|
|||||||
[ext_resource type="PhysicsMaterial" uid="uid://cql6t5hd40fgn" path="res://CorePhysics.tres" id="7_300m5"]
|
[ext_resource type="PhysicsMaterial" uid="uid://cql6t5hd40fgn" path="res://CorePhysics.tres" id="7_300m5"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bojc0es7165ed" path="res://Sounds/Collected.wav" id="8_fpbsr"]
|
[ext_resource type="AudioStream" uid="uid://bojc0es7165ed" path="res://Sounds/Collected.wav" id="8_fpbsr"]
|
||||||
[ext_resource type="Theme" uid="uid://cfvww0geatnnk" path="res://MainTheme.tres" id="8_wcf7g"]
|
[ext_resource type="Theme" uid="uid://cfvww0geatnnk" path="res://MainTheme.tres" id="8_wcf7g"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://cpf0y72o6wrv2" path="res://Sounds/AlienDie.wav" id="9_lt28f"]
|
||||||
[ext_resource type="Material" uid="uid://bv4vhjg83fqpn" path="res://ArkanoidMaterial.tres" id="9_ouuij"]
|
[ext_resource type="Material" uid="uid://bv4vhjg83fqpn" path="res://ArkanoidMaterial.tres" id="9_ouuij"]
|
||||||
[ext_resource type="Script" path="res://Paused.gd" id="12_8qv0d"]
|
[ext_resource type="Script" path="res://Paused.gd" id="12_8qv0d"]
|
||||||
[ext_resource type="Script" path="res://RunTimer.gd" id="12_nyw3s"]
|
[ext_resource type="Script" path="res://RunTimer.gd" id="12_nyw3s"]
|
||||||
|
[ext_resource type="Script" path="res://Pipes.gd" id="13_12te1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://biqt5k34w683i" path="res://Pipes/vPipe.png" id="14_33cmo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cg5olju1mcceh" path="res://Pipes/hPipe.png" id="15_n2p48"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bh8om6bv1qumy" path="res://Pipes/vPipeEndLow.png" id="16_osyku"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://n81u6nrroi18" path="res://Pipes/CornerTopLeft.png" id="17_jvxfq"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://btiaapyjul68s" path="res://Pipes/CornerTopRight.png" id="18_2ed71"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://1ar54kb0l0sm" path="res://Pipes/vPipeEndHigh.png" id="19_6cngp"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bj28rs6816gn8" path="res://Pipes/hPipeEndLeft.png" id="20_fr68l"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dnm2slmsm5wnw" path="res://Pipes/hPipeEndRight.png" id="21_hha8q"]
|
||||||
|
|
||||||
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_jsudl"]
|
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_jsudl"]
|
||||||
normal = Vector2(0, 1)
|
normal = Vector2(0, 1)
|
||||||
@@ -47,6 +57,8 @@ input_pickable = false
|
|||||||
physics_material_override = null
|
physics_material_override = null
|
||||||
|
|
||||||
[node name="Wall" type="StaticBody2D" parent="."]
|
[node name="Wall" type="StaticBody2D" parent="."]
|
||||||
|
collision_layer = 17
|
||||||
|
collision_mask = 17
|
||||||
physics_material_override = ExtResource("7_300m5")
|
physics_material_override = ExtResource("7_300m5")
|
||||||
script = ExtResource("4_evt42")
|
script = ExtResource("4_evt42")
|
||||||
|
|
||||||
@@ -60,7 +72,8 @@ shape = SubResource("WorldBoundaryShape2D_3e48c")
|
|||||||
shape = SubResource("WorldBoundaryShape2D_jt2f6")
|
shape = SubResource("WorldBoundaryShape2D_jt2f6")
|
||||||
|
|
||||||
[node name="Floor" type="StaticBody2D" parent="."]
|
[node name="Floor" type="StaticBody2D" parent="."]
|
||||||
collision_layer = 3
|
collision_layer = 19
|
||||||
|
collision_mask = 17
|
||||||
script = ExtResource("5_sravy")
|
script = ExtResource("5_sravy")
|
||||||
|
|
||||||
[node name="Bottom" type="CollisionShape2D" parent="Floor"]
|
[node name="Bottom" type="CollisionShape2D" parent="Floor"]
|
||||||
@@ -76,33 +89,9 @@ bus = &"Effects"
|
|||||||
stream = ExtResource("8_fpbsr")
|
stream = ExtResource("8_fpbsr")
|
||||||
bus = &"Effects"
|
bus = &"Effects"
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="."]
|
[node name="AlienDie" type="AudioStreamPlayer" parent="Sounds"]
|
||||||
offset_right = 16.0
|
stream = ExtResource("9_lt28f")
|
||||||
offset_bottom = 360.0
|
bus = &"Effects"
|
||||||
|
|
||||||
[node name="ColorRect2" type="ColorRect" parent="."]
|
|
||||||
offset_left = 432.0
|
|
||||||
offset_right = 448.0
|
|
||||||
offset_bottom = 360.0
|
|
||||||
|
|
||||||
[node name="ColorRect3" type="ColorRect" parent="."]
|
|
||||||
offset_right = 432.0
|
|
||||||
offset_bottom = 16.0
|
|
||||||
|
|
||||||
[node name="Exits" type="Node2D" parent="."]
|
|
||||||
|
|
||||||
[node name="Left" type="ColorRect" parent="Exits"]
|
|
||||||
offset_top = 312.0
|
|
||||||
offset_right = 16.0
|
|
||||||
offset_bottom = 360.0
|
|
||||||
color = Color(0, 0, 1, 1)
|
|
||||||
|
|
||||||
[node name="Right" type="ColorRect" parent="Exits"]
|
|
||||||
offset_left = 432.0
|
|
||||||
offset_top = 312.0
|
|
||||||
offset_right = 448.0
|
|
||||||
offset_bottom = 360.0
|
|
||||||
color = Color(0, 0, 1, 1)
|
|
||||||
|
|
||||||
[node name="ColorRect4" type="ColorRect" parent="."]
|
[node name="ColorRect4" type="ColorRect" parent="."]
|
||||||
offset_left = 448.0
|
offset_left = 448.0
|
||||||
@@ -113,11 +102,12 @@ color = Color(0, 0, 0, 1)
|
|||||||
|
|
||||||
[node name="Bricks" type="Node2D" parent="."]
|
[node name="Bricks" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Aliens" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="RunTimer" type="Node" parent="."]
|
[node name="RunTimer" type="Node" parent="."]
|
||||||
script = ExtResource("12_nyw3s")
|
script = ExtResource("12_nyw3s")
|
||||||
|
|
||||||
[node name="NewBestTime" type="VBoxContainer" parent="."]
|
[node name="NewBestTime" type="VBoxContainer" parent="."]
|
||||||
visible = false
|
|
||||||
offset_right = 448.0
|
offset_right = 448.0
|
||||||
offset_bottom = 360.0
|
offset_bottom = 360.0
|
||||||
|
|
||||||
@@ -133,14 +123,27 @@ text = "NEW BEST TIME"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="BestTime" type="Label" parent="NewBestTime"]
|
[node name="HBoxContainer" type="HBoxContainer" parent="NewBestTime"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="NewBestTime/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
|
[node name="BestTime" type="Label" parent="NewBestTime/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("8_wcf7g")
|
theme = ExtResource("8_wcf7g")
|
||||||
theme_type_variation = &"Numbers"
|
theme_type_variation = &"Numbers"
|
||||||
text = "00:00"
|
text = "00:00.00"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HSeparator2" type="HSeparator" parent="NewBestTime/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
[node name="VSeparator2" type="VSeparator" parent="NewBestTime"]
|
[node name="VSeparator2" type="VSeparator" parent="NewBestTime"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@@ -149,7 +152,7 @@ theme = ExtResource("8_wcf7g")
|
|||||||
[node name="ScoreCard" type="VBoxContainer" parent="."]
|
[node name="ScoreCard" type="VBoxContainer" parent="."]
|
||||||
offset_left = 448.0
|
offset_left = 448.0
|
||||||
offset_top = 40.0
|
offset_top = 40.0
|
||||||
offset_right = 640.0
|
offset_right = 641.0
|
||||||
offset_bottom = 312.0
|
offset_bottom = 312.0
|
||||||
|
|
||||||
[node name="ScoreLabel" type="Label" parent="ScoreCard"]
|
[node name="ScoreLabel" type="Label" parent="ScoreCard"]
|
||||||
@@ -159,7 +162,15 @@ text = "SCORE"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="ScoreBox" type="Label" parent="ScoreCard"]
|
[node name="Score" type="HBoxContainer" parent="ScoreCard"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="ScoreCard/Score"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
|
[node name="ScoreBox" type="Label" parent="ScoreCard/Score"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("8_wcf7g")
|
theme = ExtResource("8_wcf7g")
|
||||||
theme_type_variation = &"Numbers"
|
theme_type_variation = &"Numbers"
|
||||||
@@ -167,6 +178,11 @@ text = "00000000"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HSeparator2" type="HSeparator" parent="ScoreCard/Score"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
[node name="VSeparator" type="VSeparator" parent="ScoreCard"]
|
[node name="VSeparator" type="VSeparator" parent="ScoreCard"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@@ -179,7 +195,15 @@ text = "LIVES"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="LivesBox" type="Label" parent="ScoreCard"]
|
[node name="Lives" type="HBoxContainer" parent="ScoreCard"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="ScoreCard/Lives"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
|
[node name="LivesBox" type="Label" parent="ScoreCard/Lives"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("8_wcf7g")
|
theme = ExtResource("8_wcf7g")
|
||||||
theme_type_variation = &"Numbers"
|
theme_type_variation = &"Numbers"
|
||||||
@@ -187,6 +211,11 @@ text = "3"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HSeparator2" type="HSeparator" parent="ScoreCard/Lives"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
[node name="VSeparator2" type="VSeparator" parent="ScoreCard"]
|
[node name="VSeparator2" type="VSeparator" parent="ScoreCard"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@@ -199,7 +228,15 @@ text = "TIME"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="RunTime" type="Label" parent="ScoreCard"]
|
[node name="RunTime" type="HBoxContainer" parent="ScoreCard"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="ScoreCard/RunTime"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
|
[node name="RunTime" type="Label" parent="ScoreCard/RunTime"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("8_wcf7g")
|
theme = ExtResource("8_wcf7g")
|
||||||
theme_type_variation = &"Numbers"
|
theme_type_variation = &"Numbers"
|
||||||
@@ -207,6 +244,11 @@ text = "00:00.00"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HSeparator2" type="HSeparator" parent="ScoreCard/RunTime"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
[node name="VSeparator3" type="VSeparator" parent="ScoreCard"]
|
[node name="VSeparator3" type="VSeparator" parent="ScoreCard"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@@ -219,7 +261,15 @@ text = "BEST TIME"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="BestTime" type="Label" parent="ScoreCard"]
|
[node name="BestTime" type="HBoxContainer" parent="ScoreCard"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="ScoreCard/BestTime"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
|
[node name="BestTime" type="Label" parent="ScoreCard/BestTime"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("8_wcf7g")
|
theme = ExtResource("8_wcf7g")
|
||||||
theme_type_variation = &"Numbers"
|
theme_type_variation = &"Numbers"
|
||||||
@@ -227,6 +277,11 @@ text = "00:00.00"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HSeparator2" type="HSeparator" parent="ScoreCard/BestTime"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("8_wcf7g")
|
||||||
|
|
||||||
[node name="Start" type="Node2D" parent="."]
|
[node name="Start" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="Start"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="Start"]
|
||||||
@@ -328,7 +383,182 @@ theme = ExtResource("8_wcf7g")
|
|||||||
[node name="PowerBallTimer" type="Timer" parent="."]
|
[node name="PowerBallTimer" type="Timer" parent="."]
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="Pipes" type="Node2D" parent="."]
|
||||||
|
script = ExtResource("13_12te1")
|
||||||
|
|
||||||
|
[node name="LeftDoor" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_top = 312.0
|
||||||
|
offset_right = 16.0
|
||||||
|
offset_bottom = 360.0
|
||||||
|
texture = ExtResource("14_33cmo")
|
||||||
|
metadata/open = Vector2(0, 265)
|
||||||
|
metadata/closed = Vector2(0, 312)
|
||||||
|
|
||||||
|
[node name="RightDoor" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 432.0
|
||||||
|
offset_top = 312.0
|
||||||
|
offset_right = 448.0
|
||||||
|
offset_bottom = 360.0
|
||||||
|
texture = ExtResource("14_33cmo")
|
||||||
|
metadata/open = Vector2(432, 265)
|
||||||
|
metadata/closed = Vector2(432, 312)
|
||||||
|
|
||||||
|
[node name="TopDoor1L" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 112.0
|
||||||
|
offset_right = 128.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
metadata/open = Vector2(96, 0)
|
||||||
|
metadata/closed = Vector2(112, 0)
|
||||||
|
|
||||||
|
[node name="TopDoor1R" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 128.0
|
||||||
|
offset_right = 144.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
metadata/open = Vector2(144, 0)
|
||||||
|
metadata/closed = Vector2(128, 0)
|
||||||
|
|
||||||
|
[node name="TopDoor2L" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 304.0
|
||||||
|
offset_right = 320.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
metadata/open = Vector2(288, 0)
|
||||||
|
metadata/closed = Vector2(304, 0)
|
||||||
|
|
||||||
|
[node name="TopDoor2R" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 320.0
|
||||||
|
offset_right = 336.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
metadata/open = Vector2(336, 0)
|
||||||
|
metadata/closed = Vector2(320, 0)
|
||||||
|
|
||||||
|
[node name="LeftWall" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 16.0
|
||||||
|
offset_bottom = 296.0
|
||||||
|
texture = ExtResource("14_33cmo")
|
||||||
|
|
||||||
|
[node name="RightWall" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 432.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 448.0
|
||||||
|
offset_bottom = 296.0
|
||||||
|
texture = ExtResource("14_33cmo")
|
||||||
|
|
||||||
|
[node name="LeftLowEnd" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_top = 296.0
|
||||||
|
offset_right = 16.0
|
||||||
|
offset_bottom = 312.0
|
||||||
|
texture = ExtResource("16_osyku")
|
||||||
|
|
||||||
|
[node name="RightLowEnd" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 432.0
|
||||||
|
offset_top = 296.0
|
||||||
|
offset_right = 448.0
|
||||||
|
offset_bottom = 312.0
|
||||||
|
texture = ExtResource("16_osyku")
|
||||||
|
|
||||||
|
[node name="LeftCorner" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_right = 16.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("17_jvxfq")
|
||||||
|
|
||||||
|
[node name="RightCorner" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 432.0
|
||||||
|
offset_right = 448.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("18_2ed71")
|
||||||
|
|
||||||
|
[node name="LeftJoin1" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_top = 96.0
|
||||||
|
offset_right = 16.0
|
||||||
|
offset_bottom = 112.0
|
||||||
|
texture = ExtResource("16_osyku")
|
||||||
|
|
||||||
|
[node name="LeftJoin15" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 432.0
|
||||||
|
offset_top = 162.0
|
||||||
|
offset_right = 448.0
|
||||||
|
offset_bottom = 178.0
|
||||||
|
texture = ExtResource("16_osyku")
|
||||||
|
|
||||||
|
[node name="LeftJoin2" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 16.0
|
||||||
|
offset_bottom = 32.0
|
||||||
|
texture = ExtResource("19_6cngp")
|
||||||
|
|
||||||
|
[node name="LeftJoin16" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 432.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 448.0
|
||||||
|
offset_bottom = 32.0
|
||||||
|
texture = ExtResource("19_6cngp")
|
||||||
|
|
||||||
|
[node name="LeftJoin3" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 16.0
|
||||||
|
offset_right = 32.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("20_fr68l")
|
||||||
|
|
||||||
|
[node name="LeftJoin5" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 144.0
|
||||||
|
offset_right = 160.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("20_fr68l")
|
||||||
|
|
||||||
|
[node name="LeftJoin11" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 336.0
|
||||||
|
offset_right = 352.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("20_fr68l")
|
||||||
|
|
||||||
|
[node name="LeftJoin6" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 96.0
|
||||||
|
offset_right = 112.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("21_hha8q")
|
||||||
|
|
||||||
|
[node name="LeftJoin9" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 288.0
|
||||||
|
offset_right = 304.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("21_hha8q")
|
||||||
|
|
||||||
|
[node name="LeftJoin4" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 32.0
|
||||||
|
offset_right = 96.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
|
||||||
|
[node name="LeftJoin8" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 160.0
|
||||||
|
offset_right = 288.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
|
||||||
|
[node name="LeftJoin12" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 352.0
|
||||||
|
offset_right = 416.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("15_n2p48")
|
||||||
|
|
||||||
|
[node name="LeftJoin17" type="TextureRect" parent="Pipes"]
|
||||||
|
offset_left = 416.0
|
||||||
|
offset_right = 432.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
texture = ExtResource("21_hha8q")
|
||||||
|
|
||||||
|
[node name="AlienTimer" type="Timer" parent="."]
|
||||||
|
wait_time = 30.0
|
||||||
|
autostart = true
|
||||||
|
|
||||||
[connection signal="update_lives" from="." to="." method="_on_update_lives"]
|
[connection signal="update_lives" from="." to="." method="_on_update_lives"]
|
||||||
[connection signal="effect_finished" from="Paddle" to="." method="_on_paddle_effect_finished"]
|
[connection signal="effect_finished" from="Paddle" to="." method="_on_paddle_effect_finished"]
|
||||||
[connection signal="pressed" from="Paused/VBoxContainer/HBoxContainer/Quit" to="Paused" method="_on_quit_pressed"]
|
[connection signal="pressed" from="Paused/VBoxContainer/HBoxContainer/Quit" to="Paused" method="_on_quit_pressed"]
|
||||||
[connection signal="timeout" from="PowerBallTimer" to="." method="_on_power_ball_timer_timeout"]
|
[connection signal="timeout" from="PowerBallTimer" to="." method="_on_power_ball_timer_timeout"]
|
||||||
|
[connection signal="door_opened" from="Pipes" to="." method="_on_pipes_door_opened"]
|
||||||
|
[connection signal="timeout" from="AlienTimer" to="." method="_on_alien_timer_timeout"]
|
||||||
|
|||||||
@@ -43,7 +43,15 @@ text = "Score"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="ScoreBox" type="Label" parent="VBoxContainer"]
|
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HSeparator" type="HSeparator" parent="VBoxContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("3_km2fx")
|
||||||
|
|
||||||
|
[node name="ScoreBox" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("3_km2fx")
|
theme = ExtResource("3_km2fx")
|
||||||
theme_type_variation = &"Numbers"
|
theme_type_variation = &"Numbers"
|
||||||
@@ -51,6 +59,11 @@ text = "00000000"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme = ExtResource("3_km2fx")
|
||||||
|
|
||||||
[node name="VSeparator3" type="VSeparator" parent="VBoxContainer"]
|
[node name="VSeparator3" type="VSeparator" parent="VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ func _ready() -> void:
|
|||||||
else:
|
else:
|
||||||
highscore = 0
|
highscore = 0
|
||||||
relative_mouse = true
|
relative_mouse = true
|
||||||
music_volume = AudioServer.get_bus_volume_db(1)
|
music_volume = int(AudioServer.get_bus_volume_db(1))
|
||||||
effects_volume = AudioServer.get_bus_volume_db(2)
|
effects_volume = int(AudioServer.get_bus_volume_db(2))
|
||||||
best_times = {}
|
best_times = {}
|
||||||
_loading = false
|
_loading = false
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="Theme" load_steps=16 format=3 uid="uid://cfvww0geatnnk"]
|
[gd_resource type="Theme" load_steps=17 format=3 uid="uid://cfvww0geatnnk"]
|
||||||
|
|
||||||
[ext_resource type="FontFile" uid="uid://dfkm2dibf0c3b" path="res://Fonts/fonts-DSEG_v046/DSEG7-Classic-MINI/DSEG7ClassicMini-Italic.ttf" id="1_17to7"]
|
[ext_resource type="FontFile" uid="uid://dfkm2dibf0c3b" path="res://Fonts/fonts-DSEG_v046/DSEG7-Classic-MINI/DSEG7ClassicMini-Italic.ttf" id="1_17to7"]
|
||||||
[ext_resource type="FontFile" uid="uid://bx41ej4o03nbx" path="res://Fonts/arkanoid/Arka_solid.ttf" id="1_s07ae"]
|
[ext_resource type="FontFile" uid="uid://bx41ej4o03nbx" path="res://Fonts/arkanoid/Arka_solid.ttf" id="1_s07ae"]
|
||||||
@@ -85,6 +85,15 @@ corner_radius_top_right = 3
|
|||||||
corner_radius_bottom_right = 3
|
corner_radius_bottom_right = 3
|
||||||
corner_radius_bottom_left = 3
|
corner_radius_bottom_left = 3
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8xhb1"]
|
||||||
|
bg_color = Color(0.6, 0.6, 0.6, 0)
|
||||||
|
corner_radius_top_left = 40
|
||||||
|
corner_radius_top_right = 40
|
||||||
|
corner_radius_bottom_right = 40
|
||||||
|
corner_radius_bottom_left = 40
|
||||||
|
shadow_color = Color(0.909804, 0.584314, 0.207843, 0.235294)
|
||||||
|
shadow_size = 10
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sf0ln"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sf0ln"]
|
||||||
bg_color = Color(0, 0, 0, 1)
|
bg_color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
@@ -138,6 +147,7 @@ Numbers/constants/shadow_offset_y = 0
|
|||||||
Numbers/constants/shadow_outline_size = 3
|
Numbers/constants/shadow_outline_size = 3
|
||||||
Numbers/font_sizes/font_size = 18
|
Numbers/font_sizes/font_size = 18
|
||||||
Numbers/fonts/font = ExtResource("1_17to7")
|
Numbers/fonts/font = ExtResource("1_17to7")
|
||||||
|
Numbers/styles/normal = SubResource("StyleBoxFlat_8xhb1")
|
||||||
PanelContainer/styles/panel = SubResource("StyleBoxFlat_sf0ln")
|
PanelContainer/styles/panel = SubResource("StyleBoxFlat_sf0ln")
|
||||||
RoundStart/base_type = &"PanelContainer"
|
RoundStart/base_type = &"PanelContainer"
|
||||||
RoundStart/styles/panel = SubResource("StyleBoxFlat_mruxx")
|
RoundStart/styles/panel = SubResource("StyleBoxFlat_mruxx")
|
||||||
|
|||||||
81
Pipes.gd
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
class_name Pipes
|
||||||
|
|
||||||
|
signal door_opened(door : int)
|
||||||
|
signal door_closed(door : int)
|
||||||
|
|
||||||
|
enum {
|
||||||
|
TOP_LEFT,
|
||||||
|
TOP_RIGHT,
|
||||||
|
BOTTOM_LEFT,
|
||||||
|
BOTTOM_RIGHT
|
||||||
|
}
|
||||||
|
|
||||||
|
func open_door(door : int) -> void:
|
||||||
|
match door:
|
||||||
|
TOP_LEFT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($TopDoor1L, "position", $TopDoor1L.get_meta("open"), 1)
|
||||||
|
tween.tween_property($TopDoor1R, "position", $TopDoor1R.get_meta("open"), 1)
|
||||||
|
tween.finished.connect(_top_left_opened)
|
||||||
|
TOP_RIGHT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($TopDoor2L, "position", $TopDoor2L.get_meta("open"), 1)
|
||||||
|
tween.tween_property($TopDoor2R, "position", $TopDoor2R.get_meta("open"), 1)
|
||||||
|
tween.finished.connect(_top_right_opened)
|
||||||
|
BOTTOM_LEFT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($LeftDoor, "position", $LeftDoor.get_meta("open"), 1)
|
||||||
|
tween.finished.connect(_bottom_left_opened)
|
||||||
|
BOTTOM_RIGHT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($RightDoor, "position", $RightDoor.get_meta("open"), 1)
|
||||||
|
tween.finished.connect(_bottom_right_opened)
|
||||||
|
|
||||||
|
func _top_left_opened() -> void:
|
||||||
|
door_opened.emit(TOP_LEFT)
|
||||||
|
|
||||||
|
func _top_right_opened() -> void:
|
||||||
|
door_opened.emit(TOP_RIGHT)
|
||||||
|
|
||||||
|
func _bottom_left_opened() -> void:
|
||||||
|
door_opened.emit(BOTTOM_LEFT)
|
||||||
|
|
||||||
|
func _bottom_right_opened() -> void:
|
||||||
|
door_opened.emit(BOTTOM_LEFT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func close_door(door : int) -> void:
|
||||||
|
match door:
|
||||||
|
TOP_LEFT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($TopDoor1L, "position", $TopDoor1L.get_meta("closed"), 1)
|
||||||
|
tween.tween_property($TopDoor1R, "position", $TopDoor1R.get_meta("closed"), 1)
|
||||||
|
tween.finished.connect(_top_left_closed)
|
||||||
|
TOP_RIGHT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($TopDoor2L, "position", $TopDoor2L.get_meta("closed"), 1)
|
||||||
|
tween.tween_property($TopDoor2R, "position", $TopDoor2R.get_meta("closed"), 1)
|
||||||
|
tween.finished.connect(_top_right_closed)
|
||||||
|
BOTTOM_LEFT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($LeftDoor, "position", $LeftDoor.get_meta("closed"), 1)
|
||||||
|
tween.finished.connect(_bottom_left_closed)
|
||||||
|
BOTTOM_RIGHT:
|
||||||
|
var tween = get_tree().create_tween().set_parallel(true)
|
||||||
|
tween.tween_property($RightDoor, "position", $RightDoor.get_meta("closed"), 1)
|
||||||
|
tween.finished.connect(_bottom_right_closed)
|
||||||
|
|
||||||
|
func _top_left_closed() -> void:
|
||||||
|
door_closed.emit(TOP_LEFT)
|
||||||
|
|
||||||
|
func _top_right_closed() -> void:
|
||||||
|
door_closed.emit(TOP_RIGHT)
|
||||||
|
|
||||||
|
func _bottom_left_closed() -> void:
|
||||||
|
door_closed.emit(BOTTOM_LEFT)
|
||||||
|
|
||||||
|
func _bottom_right_closed() -> void:
|
||||||
|
door_closed.emit(BOTTOM_LEFT)
|
||||||
BIN
Pipes/CornerTopLeft.png
Normal file
|
After Width: | Height: | Size: 613 B |
34
Pipes/CornerTopLeft.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://n81u6nrroi18"
|
||||||
|
path="res://.godot/imported/CornerTopLeft.png-9c7801ca96786af1b30bcf44c473aade.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/CornerTopLeft.png"
|
||||||
|
dest_files=["res://.godot/imported/CornerTopLeft.png-9c7801ca96786af1b30bcf44c473aade.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/CornerTopRight.png
Normal file
|
After Width: | Height: | Size: 688 B |
34
Pipes/CornerTopRight.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://btiaapyjul68s"
|
||||||
|
path="res://.godot/imported/CornerTopRight.png-95804b50e9085e82822dd334fc2012c2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/CornerTopRight.png"
|
||||||
|
dest_files=["res://.godot/imported/CornerTopRight.png-95804b50e9085e82822dd334fc2012c2.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/hPipe.png
Normal file
|
After Width: | Height: | Size: 505 B |
34
Pipes/hPipe.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cg5olju1mcceh"
|
||||||
|
path="res://.godot/imported/hPipe.png-dd737fb114781ca561fdf4c32a7a82f5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/hPipe.png"
|
||||||
|
dest_files=["res://.godot/imported/hPipe.png-dd737fb114781ca561fdf4c32a7a82f5.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/hPipeEndLeft.png
Normal file
|
After Width: | Height: | Size: 626 B |
34
Pipes/hPipeEndLeft.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bj28rs6816gn8"
|
||||||
|
path="res://.godot/imported/hPipeEndLeft.png-25343b46ddf5e7283a3aba2a3b5f9576.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/hPipeEndLeft.png"
|
||||||
|
dest_files=["res://.godot/imported/hPipeEndLeft.png-25343b46ddf5e7283a3aba2a3b5f9576.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/hPipeEndRight.png
Normal file
|
After Width: | Height: | Size: 611 B |
34
Pipes/hPipeEndRight.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dnm2slmsm5wnw"
|
||||||
|
path="res://.godot/imported/hPipeEndRight.png-e22e44e2c095687eff82351e852cfc9a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/hPipeEndRight.png"
|
||||||
|
dest_files=["res://.godot/imported/hPipeEndRight.png-e22e44e2c095687eff82351e852cfc9a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/vPipe.png
Normal file
|
After Width: | Height: | Size: 501 B |
34
Pipes/vPipe.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://biqt5k34w683i"
|
||||||
|
path="res://.godot/imported/vPipe.png-8c7ec6430c180095d6ace49edd67760d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/vPipe.png"
|
||||||
|
dest_files=["res://.godot/imported/vPipe.png-8c7ec6430c180095d6ace49edd67760d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/vPipeEndHigh.png
Normal file
|
After Width: | Height: | Size: 601 B |
34
Pipes/vPipeEndHigh.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://1ar54kb0l0sm"
|
||||||
|
path="res://.godot/imported/vPipeEndHigh.png-f79454df341f72f97605f3dd6885d0f8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/vPipeEndHigh.png"
|
||||||
|
dest_files=["res://.godot/imported/vPipeEndHigh.png-f79454df341f72f97605f3dd6885d0f8.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Pipes/vPipeEndLow.png
Normal file
|
After Width: | Height: | Size: 577 B |
34
Pipes/vPipeEndLow.png.import
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bh8om6bv1qumy"
|
||||||
|
path="res://.godot/imported/vPipeEndLow.png-aa228021fc62aafe6d852b4176ec3de7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Pipes/vPipeEndLow.png"
|
||||||
|
dest_files=["res://.godot/imported/vPipeEndLow.png-aa228021fc62aafe6d852b4176ec3de7.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
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/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
|
||||||
BIN
Sounds/AlienDie.wav
Normal file
24
Sounds/AlienDie.wav.import
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cpf0y72o6wrv2"
|
||||||
|
path="res://.godot/imported/AlienDie.wav-f584a9487163e66e8e70219dc289f113.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Sounds/AlienDie.wav"
|
||||||
|
dest_files=["res://.godot/imported/AlienDie.wav-f584a9487163e66e8e70219dc289f113.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=0
|
||||||
BIN
Sounds/AlienHit.wav
Normal file
24
Sounds/AlienHit.wav.import
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://sfyq2erohryl"
|
||||||
|
path="res://.godot/imported/AlienHit.wav-fc14161267e2dcec4bd378e6681216e1.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Sounds/AlienHit.wav"
|
||||||
|
dest_files=["res://.godot/imported/AlienHit.wav-fc14161267e2dcec4bd378e6681216e1.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=0
|
||||||
@@ -16,11 +16,11 @@ func set_upgrade(chr : String, color : Color) -> void:
|
|||||||
|
|
||||||
func _on_body_entered(body: Node) -> void:
|
func _on_body_entered(body: Node) -> void:
|
||||||
if body is Floor:
|
if body is Floor:
|
||||||
get_parent().remove_child(self)
|
get_parent().call_deferred("remove_child", self)
|
||||||
queue_free()
|
call_deferred("queue_free")
|
||||||
return
|
return
|
||||||
if body is Paddle:
|
if body is Paddle:
|
||||||
upgrade_collected.emit(character)
|
upgrade_collected.emit(character)
|
||||||
get_parent().remove_child(self)
|
get_parent().call_deferred("remove_child", self)
|
||||||
queue_free()
|
call_deferred("queue_free")
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ config_version=5
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Dunkanoid"
|
config/name="Dunkanoid"
|
||||||
config/version="0.5.5"
|
config/version="0.6.1"
|
||||||
run/main_scene="res://Intro.tscn"
|
run/main_scene="res://Intro.tscn"
|
||||||
config/features=PackedStringArray("4.2", "Forward Plus")
|
config/features=PackedStringArray("4.2", "Forward Plus")
|
||||||
run/max_fps=30
|
run/max_fps=30
|
||||||
@@ -103,6 +103,13 @@ play={
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
2d_physics/layer_1="Brick Bounce"
|
||||||
|
2d_physics/layer_2="Upgrade"
|
||||||
|
2d_physics/layer_5="Brick Pass"
|
||||||
|
2d_physics/layer_6="Alien Hit"
|
||||||
|
|
||||||
[physics]
|
[physics]
|
||||||
|
|
||||||
2d/default_gravity=0.0
|
2d/default_gravity=0.0
|
||||||
@@ -112,5 +119,6 @@ play={
|
|||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
textures/vram_compression/import_etc2_astc=true
|
||||||
anti_aliasing/screen_space_roughness_limiter/enabled=false
|
anti_aliasing/screen_space_roughness_limiter/enabled=false
|
||||||
environment/defaults/default_clear_color=Color(0, 0, 0, 1)
|
environment/defaults/default_clear_color=Color(0, 0, 0, 1)
|
||||||
|
|||||||