Bläddra i källkod

:sparkles: bots visually explode now

Felix Bytow 10 månader sedan
förälder
incheckning
cb8bf64ef9

+ 11 - 1
assets/scenes/bot.gd

@@ -5,6 +5,7 @@ const SKINS: Array[String] = ["blue", "green", "red", "yellow"]
 
 @onready var sprite: AnimatedSprite2D = $AnimatedSprite2D
 @onready var base: Area2D = null
+@onready var explosion_scene: PackedScene = load("res://assets/scenes/explosion.tscn")
 
 @export var speed: float = 42.0
 
@@ -18,6 +19,15 @@ func _ready() -> void:
 func get_base_center() -> Vector2:
 	return base.get_child(0).global_position
 
-func _physics_process(delta) -> void:
+func _physics_process(delta: float) -> void:
 	if base != null:
 		global_position = global_position.move_toward(get_base_center(), speed * delta)
+
+func _on_area_entered(area: Area2D):
+	if area.is_in_group("base"):
+		var explosion = explosion_scene.instantiate()
+		explosion.global_position = global_position
+		add_sibling(explosion)
+		queue_free()
+		
+		

+ 2 - 0
assets/scenes/bot.tscn

@@ -74,3 +74,5 @@ animation = &"red"
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
 position = Vector2(7, 0)
 shape = SubResource("RectangleShape2D_7wci8")
+
+[connection signal="area_entered" from="." to="." method="_on_area_entered"]

+ 5 - 0
assets/scenes/explosion.gd

@@ -0,0 +1,5 @@
+extends Node2D
+class_name Explosion
+
+func _animation_finished():
+	queue_free()

+ 51 - 0
assets/scenes/explosion.tscn

@@ -0,0 +1,51 @@
+[gd_scene load_steps=10 format=3 uid="uid://dg4lfkqrtedxg"]
+
+[ext_resource type="Texture2D" uid="uid://bgtpy7rkgpt5v" path="res://assets/textures/explosion/explosion_animation_1.png" id="1_co4ui"]
+[ext_resource type="Script" path="res://assets/scenes/explosion.gd" id="1_q2lxq"]
+[ext_resource type="Texture2D" uid="uid://21sqipoqnfox" path="res://assets/textures/explosion/explosion_animation_2.png" id="2_sifmb"]
+[ext_resource type="Texture2D" uid="uid://cfb5vxdx6ndt1" path="res://assets/textures/explosion/explosion_animation_3.png" id="3_42uc1"]
+[ext_resource type="Texture2D" uid="uid://cb5p6rrecjihx" path="res://assets/textures/explosion/explosion_animation_4.png" id="4_mq835"]
+[ext_resource type="Texture2D" uid="uid://cuxeht00edohj" path="res://assets/textures/explosion/explosion_animation_5.png" id="5_phsaf"]
+[ext_resource type="Texture2D" uid="uid://dftc3x7vfop46" path="res://assets/textures/explosion/explosion_animation_6.png" id="6_llvbn"]
+[ext_resource type="AudioStream" uid="uid://c8e6a4uxb6qql" path="res://assets/audio/explosionCrunch_000.ogg" id="7_x5vbv"]
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_yqenh"]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": ExtResource("1_co4ui")
+}, {
+"duration": 1.0,
+"texture": ExtResource("2_sifmb")
+}, {
+"duration": 1.0,
+"texture": ExtResource("3_42uc1")
+}, {
+"duration": 1.0,
+"texture": ExtResource("4_mq835")
+}, {
+"duration": 1.0,
+"texture": ExtResource("5_phsaf")
+}, {
+"duration": 1.0,
+"texture": ExtResource("6_llvbn")
+}],
+"loop": false,
+"name": &"default",
+"speed": 10.0
+}]
+
+[node name="Explosion" type="Node2D"]
+script = ExtResource("1_q2lxq")
+
+[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
+sprite_frames = SubResource("SpriteFrames_yqenh")
+autoplay = "default"
+frame = 5
+frame_progress = 1.0
+
+[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
+stream = ExtResource("7_x5vbv")
+autoplay = true
+
+[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_animation_finished"]

BIN
assets/textures/explosion/explosion_animation_1.png


+ 34 - 0
assets/textures/explosion/explosion_animation_1.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bgtpy7rkgpt5v"
+path="res://.godot/imported/explosion_animation_1.png-0045d347b4f1ceb2a5ecd81435c6f1ca.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/explosion/explosion_animation_1.png"
+dest_files=["res://.godot/imported/explosion_animation_1.png-0045d347b4f1ceb2a5ecd81435c6f1ca.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
assets/textures/explosion/explosion_animation_2.png


+ 34 - 0
assets/textures/explosion/explosion_animation_2.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://21sqipoqnfox"
+path="res://.godot/imported/explosion_animation_2.png-e19ee5cd93dde9e906c5134a2e89f7ba.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/explosion/explosion_animation_2.png"
+dest_files=["res://.godot/imported/explosion_animation_2.png-e19ee5cd93dde9e906c5134a2e89f7ba.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
assets/textures/explosion/explosion_animation_3.png


+ 34 - 0
assets/textures/explosion/explosion_animation_3.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cfb5vxdx6ndt1"
+path="res://.godot/imported/explosion_animation_3.png-6b5cc114b50a3439cf12d23c589b5385.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/explosion/explosion_animation_3.png"
+dest_files=["res://.godot/imported/explosion_animation_3.png-6b5cc114b50a3439cf12d23c589b5385.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
assets/textures/explosion/explosion_animation_4.png


+ 34 - 0
assets/textures/explosion/explosion_animation_4.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cb5p6rrecjihx"
+path="res://.godot/imported/explosion_animation_4.png-441f866455ccaf713f76577c1fdf2218.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/explosion/explosion_animation_4.png"
+dest_files=["res://.godot/imported/explosion_animation_4.png-441f866455ccaf713f76577c1fdf2218.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
assets/textures/explosion/explosion_animation_5.png


+ 34 - 0
assets/textures/explosion/explosion_animation_5.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cuxeht00edohj"
+path="res://.godot/imported/explosion_animation_5.png-d64eff6ae5fbb41dd5da36b0a787c21f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/explosion/explosion_animation_5.png"
+dest_files=["res://.godot/imported/explosion_animation_5.png-d64eff6ae5fbb41dd5da36b0a787c21f.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
assets/textures/explosion/explosion_animation_6.png


+ 34 - 0
assets/textures/explosion/explosion_animation_6.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dftc3x7vfop46"
+path="res://.godot/imported/explosion_animation_6.png-8dcc37a9309fe52a3a035a2844ca41e5.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/explosion/explosion_animation_6.png"
+dest_files=["res://.godot/imported/explosion_animation_6.png-8dcc37a9309fe52a3a035a2844ca41e5.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

+ 0 - 1
screens/game.gd

@@ -47,5 +47,4 @@ func base_hit() -> void:
 
 func _on_base_area_entered(area: Area2D) -> void:
 	if area.is_in_group("foe") || area.is_in_group("foe_weapons"):
-		area.queue_free()
 		base_hit()