added coopa

This commit is contained in:
Jonas Braus
2024-08-03 00:57:40 +02:00
parent a706375da0
commit 1cd04a27cf
8 changed files with 322 additions and 32 deletions
+3
View File
@@ -0,0 +1,3 @@
{
"godotTools.editorPath.godot4": "/home/jonas/Dokumente/Godot/Godot.x86_64"
}
+2 -1
View File
@@ -63,7 +63,8 @@ crawl={
} }
flower={ flower={
"deadzone": 0.5, "deadzone": 0.5,
"events": [] "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"echo":false,"script":null)
]
} }
[input_devices] [input_devices]
+11
View File
@@ -0,0 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://dflvi18e358ek"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_m1ni4"]
size = Vector2(16, 16)
[node name="StaticBody2D" type="StaticBody2D"]
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -8)
shape = SubResource("RectangleShape2D_m1ni4")
+112
View File
@@ -0,0 +1,112 @@
[gd_scene load_steps=10 format=3 uid="uid://bkpny146y0y0e"]
[ext_resource type="Texture2D" uid="uid://ddl5f3lldrp2n" path="res://assets/enemies.png" id="1_451aa"]
[ext_resource type="Script" path="res://scripts/enemies/coopa.gd" id="1_iin32"]
[ext_resource type="AudioStream" uid="uid://bh8t167vl6j2n" path="res://assets/sounds/NES - Super Mario Bros - Sound Effects/Super Mario Bros 1 and 2(JP)/Kick.wav" id="2_e5ron"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ub6x3"]
atlas = ExtResource("1_451aa")
region = Rect2(150, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_dr5y8"]
atlas = ExtResource("1_451aa")
region = Rect2(180, 0, 16, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_hduks"]
atlas = ExtResource("1_451aa")
region = Rect2(360, 4, 16, 15)
[sub_resource type="SpriteFrames" id="SpriteFrames_g2x7m"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ub6x3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dr5y8")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_hduks")
}],
"loop": true,
"name": &"shrink",
"speed": 5.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ti4si"]
radius = 7.0
height = 24.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dpvp1"]
size = Vector2(10, 0.5)
[node name="coopa" type="RigidBody2D"]
collision_layer = 128
lock_rotation = true
script = ExtResource("1_iin32")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(8, -12)
sprite_frames = SubResource("SpriteFrames_g2x7m")
autoplay = "default"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(8, -12)
shape = SubResource("CapsuleShape2D_ti4si")
[node name="RayCastLeft" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-8, 0)
collision_mask = 17
[node name="RayCastLeft2" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-8, 0)
collision_mask = 2
[node name="RayCastLeft3" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(-8, 0)
collision_mask = 128
[node name="RayCastRight" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(8, 0)
collision_mask = 17
[node name="RayCastRight2" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(8, 0)
collision_mask = 2
[node name="RayCastRight3" type="RayCast2D" parent="."]
position = Vector2(8, -8)
target_position = Vector2(8, 0)
collision_mask = 128
[node name="die" type="Area2D" parent="."]
position = Vector2(0, -8)
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="die"]
position = Vector2(8, -16.25)
shape = SubResource("RectangleShape2D_dpvp1")
[node name="dieSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("2_e5ron")
[node name="Timer2" type="Timer" parent="."]
one_shot = true
[node name="Timer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[connection signal="body_entered" from="die" to="." method="_on_die_body_entered"]
[connection signal="timeout" from="Timer2" to="." method="_on_timer_2_timeout"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+10 -27
View File
@@ -14,6 +14,7 @@
[ext_resource type="Script" path="res://scripts/Label_Platform.gd" id="12_uc2k2"] [ext_resource type="Script" path="res://scripts/Label_Platform.gd" id="12_uc2k2"]
[ext_resource type="Script" path="res://scripts/WorldBoundDown.gd" id="13_je7o8"] [ext_resource type="Script" path="res://scripts/WorldBoundDown.gd" id="13_je7o8"]
[ext_resource type="PackedScene" uid="uid://bm04qp5vgbi10" path="res://scenes/flag.tscn" id="14_ry537"] [ext_resource type="PackedScene" uid="uid://bm04qp5vgbi10" path="res://scenes/flag.tscn" id="14_ry537"]
[ext_resource type="PackedScene" uid="uid://dflvi18e358ek" path="res://scenes/blocks/enimie_barrier.tscn" id="15_ac2kk"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_sdqov"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_sdqov"]
texture = ExtResource("1_p04bh") texture = ExtResource("1_p04bh")
@@ -19057,9 +19058,6 @@ texture = ExtResource("1_p04bh")
physics_layer_0/collision_layer = 1 physics_layer_0/collision_layer = 1
sources/1 = SubResource("TileSetAtlasSource_sdqov") sources/1 = SubResource("TileSetAtlasSource_sdqov")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ipe5j"]
size = Vector2(16, 16)
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_tuxwn"] [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_tuxwn"]
[sub_resource type="SegmentShape2D" id="SegmentShape2D_khpgg"] [sub_resource type="SegmentShape2D" id="SegmentShape2D_khpgg"]
@@ -19297,30 +19295,6 @@ position = Vector2(752, 128)
[node name="invisible_barriers" type="Node" parent="."] [node name="invisible_barriers" type="Node" parent="."]
[node name="StaticBody2D" type="StaticBody2D" parent="invisible_barriers"]
position = Vector2(1056, -16)
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="invisible_barriers/StaticBody2D"]
position = Vector2(-8, 8)
shape = SubResource("RectangleShape2D_ipe5j")
[node name="StaticBody2D2" type="StaticBody2D" parent="invisible_barriers"]
position = Vector2(1312, -16)
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="invisible_barriers/StaticBody2D2"]
position = Vector2(-8, 8)
shape = SubResource("RectangleShape2D_ipe5j")
[node name="StaticBody2D4" type="StaticBody2D" parent="invisible_barriers"]
position = Vector2(1344, -16)
collision_layer = 16
[node name="CollisionShape2D" type="CollisionShape2D" parent="invisible_barriers/StaticBody2D4"]
position = Vector2(-8, 8)
shape = SubResource("RectangleShape2D_ipe5j")
[node name="StaticBody2D3" type="StaticBody2D" parent="invisible_barriers"] [node name="StaticBody2D3" type="StaticBody2D" parent="invisible_barriers"]
position = Vector2(-160, -16) position = Vector2(-160, -16)
collision_layer = 17 collision_layer = 17
@@ -19449,5 +19423,14 @@ text = "120"
[node name="Flag" parent="." instance=ExtResource("14_ry537")] [node name="Flag" parent="." instance=ExtResource("14_ry537")]
load_level = "level_2" load_level = "level_2"
[node name="StaticBody2D" parent="." instance=ExtResource("15_ac2kk")]
position = Vector2(1040, 0)
[node name="StaticBody2D2" parent="." instance=ExtResource("15_ac2kk")]
position = Vector2(1296, 0)
[node name="StaticBody2D3" parent="." instance=ExtResource("15_ac2kk")]
position = Vector2(1328, 0)
[connection signal="body_entered" from="WorldBoundDown" to="WorldBoundDown" method="_on_body_entered"] [connection signal="body_entered" from="WorldBoundDown" to="WorldBoundDown" method="_on_body_entered"]
[connection signal="timeout" from="WorldBoundDown/Timer" to="WorldBoundDown" method="_on_timer_timeout"] [connection signal="timeout" from="WorldBoundDown/Timer" to="WorldBoundDown" method="_on_timer_timeout"]
+82 -4
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=3 uid="uid://c0r61y2b3pt4m"] [gd_scene load_steps=23 format=3 uid="uid://c0r61y2b3pt4m"]
[ext_resource type="PackedScene" uid="uid://dk1aby88pygtr" path="res://scenes/player.tscn" id="1_76q1j"] [ext_resource type="PackedScene" uid="uid://dk1aby88pygtr" path="res://scenes/player.tscn" id="1_76q1j"]
[ext_resource type="Texture2D" uid="uid://bbf2n32u766cp" path="res://assets/bg-1-2.png" id="1_cckci"] [ext_resource type="Texture2D" uid="uid://bbf2n32u766cp" path="res://assets/bg-1-2.png" id="1_cckci"]
@@ -8,13 +8,16 @@
[ext_resource type="Script" path="res://scripts/WorldBoundDown.gd" id="3_xiqi1"] [ext_resource type="Script" path="res://scripts/WorldBoundDown.gd" id="3_xiqi1"]
[ext_resource type="PackedScene" uid="uid://d25ukpt8ot8xv" path="res://scenes/blocks/itemblock.tscn" id="6_1xseh"] [ext_resource type="PackedScene" uid="uid://d25ukpt8ot8xv" path="res://scenes/blocks/itemblock.tscn" id="6_1xseh"]
[ext_resource type="PackedScene" uid="uid://cc4excywfdh1v" path="res://scenes/blocks/destroyblock_dark.tscn" id="6_hol3k"] [ext_resource type="PackedScene" uid="uid://cc4excywfdh1v" path="res://scenes/blocks/destroyblock_dark.tscn" id="6_hol3k"]
[ext_resource type="PackedScene" uid="uid://b4dp88urmm7g8" path="res://scenes/items/mushroom.tscn" id="8_6u0iy"]
[ext_resource type="PackedScene" uid="uid://nm5keea43u56" path="res://scenes/items/coin.tscn" id="9_a4rwl"] [ext_resource type="PackedScene" uid="uid://nm5keea43u56" path="res://scenes/items/coin.tscn" id="9_a4rwl"]
[ext_resource type="PackedScene" uid="uid://be832pldgbeyk" path="res://scenes/pipe.tscn" id="10_aqfih"] [ext_resource type="PackedScene" uid="uid://be832pldgbeyk" path="res://scenes/pipe.tscn" id="10_aqfih"]
[ext_resource type="PackedScene" uid="uid://ct54hcx2h7riy" path="res://scenes/blocks/spawner.tscn" id="11_djx30"] [ext_resource type="PackedScene" uid="uid://ct54hcx2h7riy" path="res://scenes/blocks/spawner.tscn" id="11_djx30"]
[ext_resource type="PackedScene" uid="uid://dad1wol24icj0" path="res://scenes/blocks/move_platform_down.tscn" id="12_fha8x"] [ext_resource type="PackedScene" uid="uid://dad1wol24icj0" path="res://scenes/blocks/move_platform_down.tscn" id="12_fha8x"]
[ext_resource type="PackedScene" uid="uid://bp71ntkh281k5" path="res://scenes/items/fire_flower.tscn" id="12_m58he"]
[ext_resource type="PackedScene" uid="uid://bofueafaqy7so" path="res://scenes/blocks/move_platform_up.tscn" id="13_8y7tv"] [ext_resource type="PackedScene" uid="uid://bofueafaqy7so" path="res://scenes/blocks/move_platform_up.tscn" id="13_8y7tv"]
[ext_resource type="PackedScene" uid="uid://bm04qp5vgbi10" path="res://scenes/flag.tscn" id="15_n64v8"] [ext_resource type="PackedScene" uid="uid://bm04qp5vgbi10" path="res://scenes/flag.tscn" id="15_n64v8"]
[ext_resource type="PackedScene" uid="uid://cwviqxncs4fom" path="res://scenes/enemies/gumba.tscn" id="16_qpvvg"]
[ext_resource type="PackedScene" uid="uid://bkpny146y0y0e" path="res://scenes/enemies/coopa.tscn" id="17_4rxmp"]
[ext_resource type="PackedScene" uid="uid://dflvi18e358ek" path="res://scenes/blocks/enimie_barrier.tscn" id="18_ujrgy"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_6hwce"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_6hwce"]
texture = ExtResource("1_cckci") texture = ExtResource("1_cckci")
@@ -45038,7 +45041,7 @@ delay = 2.0
[node name="player" parent="." instance=ExtResource("1_76q1j")] [node name="player" parent="." instance=ExtResource("1_76q1j")]
unique_name_in_owner = true unique_name_in_owner = true
z_index = 5 z_index = 5
position = Vector2(1, -90) position = Vector2(-112, -96)
[node name="Music" type="AudioStreamPlayer" parent="."] [node name="Music" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
@@ -45579,19 +45582,27 @@ position = Vector2(1280, 128)
[node name="itemblock" parent="interactionBlocks" instance=ExtResource("6_1xseh")] [node name="itemblock" parent="interactionBlocks" instance=ExtResource("6_1xseh")]
position = Vector2(32, -48) position = Vector2(32, -48)
hit_object = ExtResource("12_m58he")
[node name="itemblock2" parent="interactionBlocks" instance=ExtResource("6_1xseh")] [node name="itemblock2" parent="interactionBlocks" instance=ExtResource("6_1xseh")]
position = Vector2(48, -48) position = Vector2(48, -48)
hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="itemblock3" parent="interactionBlocks" instance=ExtResource("6_1xseh")] [node name="itemblock3" parent="interactionBlocks" instance=ExtResource("6_1xseh")]
position = Vector2(64, -48) position = Vector2(64, -48)
hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="itemblock4" parent="interactionBlocks" instance=ExtResource("6_1xseh")] [node name="itemblock4" parent="interactionBlocks" instance=ExtResource("6_1xseh")]
position = Vector2(80, -48) position = Vector2(80, -48)
hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="itemblock5" parent="interactionBlocks" instance=ExtResource("6_1xseh")] [node name="itemblock5" parent="interactionBlocks" instance=ExtResource("6_1xseh")]
position = Vector2(96, -48) position = Vector2(96, -48)
hit_object = ExtResource("8_6u0iy") hit_object = ExtResource("9_a4rwl")
auto_collect = true
[node name="coins" type="Node" parent="."] [node name="coins" type="Node" parent="."]
@@ -45713,9 +45724,76 @@ position = Vector2(2720, -48)
rotation = -1.57079 rotation = -1.57079
target = Vector2(-80, -736) target = Vector2(-80, -736)
[node name="enemies" type="Node" parent="."]
[node name="Gumba" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(96, 0)
[node name="Gumba2" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(128, 0)
[node name="Gumba3" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(336, 0)
[node name="coopa" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(496, 0)
[node name="coopa2" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(528, 0)
[node name="coopa3" parent="enemies" instance=ExtResource("17_4rxmp")]
position = Vector2(800, 0)
[node name="Gumba4" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(848, 0)
[node name="Gumba5" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(896, 0)
[node name="Gumba6" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1120, 0)
[node name="Gumba7" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1088, 0)
[node name="Gumba8" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1088, -64)
[node name="Gumba9" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1424, 0)
[node name="Gumba10" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1392, 0)
[node name="Gumba11" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1360, 0)
[node name="Gumba12" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(2000, -48)
[node name="Gumba13" parent="enemies" instance=ExtResource("16_qpvvg")]
position = Vector2(1968, -16)
[node name="Flag" parent="." instance=ExtResource("15_n64v8")] [node name="Flag" parent="." instance=ExtResource("15_n64v8")]
position = Vector2(216, -679) position = Vector2(216, -679)
load_level = "level_1" load_level = "level_1"
[node name="invisibleBarriers" type="Node" parent="."]
[node name="StaticBody2D" parent="." instance=ExtResource("18_ujrgy")]
position = Vector2(1824, 0)
[node name="StaticBody2D2" parent="." instance=ExtResource("18_ujrgy")]
position = Vector2(1168, 0)
[node name="StaticBody2D3" parent="." instance=ExtResource("18_ujrgy")]
position = Vector2(1136, 0)
[node name="StaticBody2D4" parent="." instance=ExtResource("18_ujrgy")]
position = Vector2(720, 0)
[node name="StaticBody2D5" parent="." instance=ExtResource("18_ujrgy")]
position = Vector2(736, 0)
[connection signal="body_entered" from="WorldBoundDown" to="WorldBoundDown" method="_on_body_entered"] [connection signal="body_entered" from="WorldBoundDown" to="WorldBoundDown" method="_on_body_entered"]
[connection signal="timeout" from="WorldBoundDown/Timer" to="WorldBoundDown" method="_on_timer_timeout"] [connection signal="timeout" from="WorldBoundDown/Timer" to="WorldBoundDown" method="_on_timer_timeout"]
+101
View File
@@ -0,0 +1,101 @@
extends RigidBody2D
@export var speed = -70
@onready var ray_cast_left = $RayCastLeft
@onready var ray_cast_right = $RayCastRight
@onready var animated_sprite_2d = $AnimatedSprite2D
@onready var timer = $Timer
@onready var die = $die
@onready var ray_cast_left_2 = $RayCastLeft2
@onready var ray_cast_right_2 = $RayCastRight2
var innocent = false
@onready var timer_2 = $Timer2
var is_down = false
@onready var collision_shape_2d = $CollisionShape2D
@onready var ray_cast_left_3 = $RayCastLeft3
@onready var ray_cast_right_3 = $RayCastRight3
func _ready():
collision_shape_2d.shape.height = 24
func _physics_process(delta):
linear_velocity.x = speed
if ray_cast_left_2 == null:
return
if ray_cast_left.is_colliding() or ray_cast_left_2.is_colliding():
speed = abs(speed)
animated_sprite_2d.flip_h = true
elif ray_cast_right.is_colliding() or ray_cast_right_2.is_colliding():
speed = -abs(speed)
animated_sprite_2d.flip_h = false
var other = null
if ray_cast_left_3.is_colliding():
other = ray_cast_left_3.get_collider()
elif ray_cast_right_3.is_colliding():
other = ray_cast_right_3.get_collider()
if is_down and speed != 0 and other != null:
other.f_die()
if innocent:
return
var body = null
if ray_cast_left_2.is_colliding():
if speed != 0:
body = ray_cast_left_2.get_collider()
else:
speed = 160
innocent = true
die_sound.play()
timer_2.start()
elif ray_cast_right_2.is_colliding():
if speed != 0:
body = ray_cast_right_2.get_collider()
else:
speed = -160
innocent = true
die_sound.play()
timer_2.start()
if body != null:
body.shrink()
innocent = true
timer_2.start()
@onready var die_sound = $dieSound
func f_die():
die_sound.play()
speed = 0
innocent = true
timer.start()
func f_shrink(body):
die_sound.play()
if not is_down:
speed = 0
collision_shape_2d.shape.height -= 9
die.position.y += 2
animated_sprite_2d.play("shrink")
is_down = true
elif speed == 0:
speed = 160 if body.position.x < position.x else -160
else:
speed = 0
func _on_timer_2_timeout():
innocent = false
func _on_die_body_entered(body):
f_shrink(body)
body.velocity.y = body.JUMPt_velocity/1.5
func _on_timer_timeout():
queue_free()
+1
View File
@@ -38,6 +38,7 @@ func _physics_process(delta):
@onready var die_sound = $dieSound @onready var die_sound = $dieSound
func f_die(): func f_die():
innocent = true
speed = 0 speed = 0
animated_sprite_2d.play("die") animated_sprite_2d.play("die")
timer.start() timer.start()