From 2e1bcbc225e8abf7c51202f7e0ce5082c3612bc6 Mon Sep 17 00:00:00 2001 From: Felipe M Date: Tue, 18 May 2021 20:53:49 +0200 Subject: [PATCH] Missiles break bricks --- metroidvania/Scenes/Objects/Brick.tscn | 4 +++- metroidvania/Scenes/Player/PlayerMissile.gd | 15 +++++++++++++++ metroidvania/Scenes/Player/PlayerMissile.tscn | 6 ++++-- metroidvania/Scenes/World/World.tscn | 18 +++++++++++++++++- metroidvania/project.godot | 1 + 5 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 metroidvania/Scenes/Player/PlayerMissile.gd diff --git a/metroidvania/Scenes/Objects/Brick.tscn b/metroidvania/Scenes/Objects/Brick.tscn index ffb0c03..719ddfa 100644 --- a/metroidvania/Scenes/Objects/Brick.tscn +++ b/metroidvania/Scenes/Objects/Brick.tscn @@ -6,11 +6,13 @@ extents = Vector2( 8, 8 ) [node name="Brick" type="StaticBody2D"] +collision_layer = 18 +collision_mask = 0 [node name="Sprite" type="Sprite" parent="."] texture = ExtResource( 1 ) centered = false -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +[node name="Collider" type="CollisionShape2D" parent="."] position = Vector2( 8, 8 ) shape = SubResource( 1 ) diff --git a/metroidvania/Scenes/Player/PlayerMissile.gd b/metroidvania/Scenes/Player/PlayerMissile.gd new file mode 100644 index 0000000..c0683dd --- /dev/null +++ b/metroidvania/Scenes/Player/PlayerMissile.gd @@ -0,0 +1,15 @@ +extends "res://Scenes/Objects/Proyectile.gd" + +const EnemyDeathEffect = preload("res://Scenes/Effects/EnemyDeathEffect.tscn") + +const BRICK_LAYER_BIT = 4 + + +func _ready(): + pass # Replace with function body. + +func _on_Hitbox_body_entered(body): + if body.get_collision_layer_bit(BRICK_LAYER_BIT): + body.queue_free() + Utils.instance_scene_on_main(EnemyDeathEffect, body.global_position + Vector2(8, 8)) + ._on_Hitbox_body_entered(body) diff --git a/metroidvania/Scenes/Player/PlayerMissile.tscn b/metroidvania/Scenes/Player/PlayerMissile.tscn index 3260db5..06cc365 100644 --- a/metroidvania/Scenes/Player/PlayerMissile.tscn +++ b/metroidvania/Scenes/Player/PlayerMissile.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://Assets/Player/PlayerMissile.png" type="Texture" id=1] [ext_resource path="res://Scenes/Objects/Proyectile.tscn" type="PackedScene" id=2] [ext_resource path="res://Assets/Effects/Particle.png" type="Texture" id=3] +[ext_resource path="res://Scenes/Player/PlayerMissile.gd" type="Script" id=4] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 7, 2 ) @@ -25,6 +26,7 @@ orbit_velocity_random = 0.0 scale_curve = SubResource( 3 ) [node name="PlayerMissile" instance=ExtResource( 2 )] +script = ExtResource( 4 ) [node name="Sprite" parent="." index="0"] texture = ExtResource( 1 ) @@ -34,7 +36,7 @@ position = Vector2( -0.5, 0 ) scale = Vector2( 2.125, 1 ) [node name="Hitbox" parent="." index="3"] -collision_mask = 10 +collision_mask = 26 damage = 3 [node name="Collider" parent="Hitbox" index="0"] diff --git a/metroidvania/Scenes/World/World.tscn b/metroidvania/Scenes/World/World.tscn index 32fc948..6862914 100644 --- a/metroidvania/Scenes/World/World.tscn +++ b/metroidvania/Scenes/World/World.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://Scenes/World/TileMap.tscn" type="PackedScene" id=1] [ext_resource path="res://Scenes/Player/Player.tscn" type="PackedScene" id=2] @@ -10,6 +10,7 @@ [ext_resource path="res://Scenes/Enemies/FlyingEnemy.tscn" type="PackedScene" id=8] [ext_resource path="res://Scenes/Enemies/PlantEnemy.tscn" type="PackedScene" id=9] [ext_resource path="res://Scenes/Enemies/CrawlingEnemy.tscn" type="PackedScene" id=10] +[ext_resource path="res://Scenes/Objects/Brick.tscn" type="PackedScene" id=11] [node name="World" type="Node"] script = ExtResource( 3 ) @@ -50,5 +51,20 @@ rotation = 3.14159 [node name="CrawlingEnemy" parent="." instance=ExtResource( 10 )] position = Vector2( 72, 160 ) +[node name="Brick" parent="." instance=ExtResource( 11 )] +position = Vector2( 111, 96 ) + +[node name="Brick2" parent="." instance=ExtResource( 11 )] +position = Vector2( 111, 112 ) + +[node name="Brick3" parent="." instance=ExtResource( 11 )] +position = Vector2( 111, 80 ) + +[node name="Brick4" parent="." instance=ExtResource( 11 )] +position = Vector2( 111, 64 ) + +[node name="Brick5" parent="." instance=ExtResource( 11 )] +position = Vector2( 111, 48 ) + [editable path="Player"] [editable path="Player/Hurtbox"] diff --git a/metroidvania/project.godot b/metroidvania/project.godot index 4a928b0..c23d7b3 100644 --- a/metroidvania/project.godot +++ b/metroidvania/project.godot @@ -122,6 +122,7 @@ fire_missile={ 2d_physics/layer_2="World" 2d_physics/layer_3="PlayerHurtbox" 2d_physics/layer_4="EnemyHurtbox" +2d_physics/layer_5="Brick" [rendering]