From 65accbc2c202391856b3b48c262645f4cab02dee Mon Sep 17 00:00:00 2001 From: denizk0461 Date: Tue, 23 Jul 2024 21:09:04 +0200 Subject: [PATCH] added a speed ball and buttons to add them to the level --- balls/basic/ball_basic.tscn | 2 ++ balls/speed/ball_speed.tscn | 16 ++++++++++ balls/speed/speed.pdn | Bin 0 -> 6033 bytes balls/speed/speed.webp | Bin 0 -> 922 bytes balls/speed/speed.webp.import | 34 +++++++++++++++++++++ scenes/level.gd | 18 +++++++---- scenes/level.tscn | 56 +++++++++++++++++++++++++++++----- 7 files changed, 113 insertions(+), 13 deletions(-) create mode 100644 balls/speed/ball_speed.tscn create mode 100644 balls/speed/speed.pdn create mode 100644 balls/speed/speed.webp create mode 100644 balls/speed/speed.webp.import diff --git a/balls/basic/ball_basic.tscn b/balls/basic/ball_basic.tscn index c421eca..4e1ed0f 100644 --- a/balls/basic/ball_basic.tscn +++ b/balls/basic/ball_basic.tscn @@ -7,6 +7,8 @@ radius = 25.0 [node name="Ball" instance=ExtResource("1_ffml1")] +speed = 4.0 +strength = 4 [node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] shape = SubResource("CircleShape2D_gj21y") diff --git a/balls/speed/ball_speed.tscn b/balls/speed/ball_speed.tscn new file mode 100644 index 0000000..66df0a0 --- /dev/null +++ b/balls/speed/ball_speed.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=4 format=3 uid="uid://ooytugcohlx0"] + +[ext_resource type="PackedScene" uid="uid://d2r0ip6xy3a2" path="res://balls/ball.tscn" id="1_fsuj1"] +[ext_resource type="Texture2D" uid="uid://dsqcbd2cffw6e" path="res://balls/speed/speed.webp" id="2_ttcr2"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_gj21y"] +radius = 20.0 + +[node name="Ball" instance=ExtResource("1_fsuj1")] +speed = 8.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] +shape = SubResource("CircleShape2D_gj21y") + +[node name="Sprite2D" type="Sprite2D" parent="." index="1"] +texture = ExtResource("2_ttcr2") diff --git a/balls/speed/speed.pdn b/balls/speed/speed.pdn new file mode 100644 index 0000000000000000000000000000000000000000..8c9e4fef874dd6bd9b39377aeb7d7e645fad26b0 GIT binary patch literal 6033 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 literal 0 HcmV?d00001 diff --git a/balls/speed/speed.webp b/balls/speed/speed.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b0b9176376d7970622c4842869961056dd58568 GIT binary patch literal 922 zcmWIYbaR`;%)k)t>J$(bU=hK^z`!5@#Oh$==o8@a1IS}+kiNa`)w2%GWgVvuIGt(b zNIDal)u^=Qa87!X-~IaqV96uwZx~x-Vdd_U`_Y+Tlo_G4;nWu-+&p-WeE1?WV1T!z{>E^wn41tpL^{0{^RZbm3 zsBiekc!Tk8_)qo)>{0b^$``4Bt}onwi{FJo{MWgwP5w>qEzd+i z68_>p82&w47T8m)ke9vtw)6J?%{u&E^A4rkowwLI@npxue!W~F|9vg@_*`T|u5i52s8p9Px+!Y=@vdy*>jN7clBR!rFfldv z-pYc*+Own?-_5WxZn$@Pr*2t>&po^AqW`~CeyZ93;@Sms&X;MAd6Zi^w(A~Itc(^< zf92=Q{h0j;+v)YMv}}Lq{94U-_bcboX$$ri{>?J~l7Id}MqAf5lQ5+`u|9^_-N$wv zm@Zy_=k~|V{|~ND65rgk^7s?ysB>5D|Yq literal 0 HcmV?d00001 diff --git a/balls/speed/speed.webp.import b/balls/speed/speed.webp.import new file mode 100644 index 0000000..4c6bcc3 --- /dev/null +++ b/balls/speed/speed.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsqcbd2cffw6e" +path="res://.godot/imported/speed.webp-ff30c0e30f233aee3c861d7147dba221.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://balls/speed/speed.webp" +dest_files=["res://.godot/imported/speed.webp-ff30c0e30f233aee3c861d7147dba221.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 diff --git a/scenes/level.gd b/scenes/level.gd index 772f1d7..77d954b 100644 --- a/scenes/level.gd +++ b/scenes/level.gd @@ -1,14 +1,20 @@ extends Node2D var _current_level = 1 -var ball_scene = preload("res://balls/basic/ball_basic.tscn") - -func _on_button_pressed(): - var new_ball = ball_scene.instantiate() - new_ball.global_position = $GameContent/BallSpawn.global_position - $GameContent/Balls.add_child(new_ball) +var ball_basic_scene = preload("res://balls/basic/ball_basic.tscn") +var ball_speed_scene = preload("res://balls/speed/ball_speed.tscn") func _physics_process(delta): if $GameContent/Blocks.get_children().size() == 0: _current_level += 1 print("DONE") + +func _on_button_basic_ball_pressed(): + var new_ball = ball_basic_scene.instantiate() + new_ball.global_position = $GameContent/BallSpawn.global_position + $GameContent/Balls.add_child(new_ball) + +func _on_button_speed_ball_pressed(): + var new_ball = ball_speed_scene.instantiate() + new_ball.global_position = $GameContent/BallSpawn.global_position + $GameContent/Balls.add_child(new_ball) diff --git a/scenes/level.tscn b/scenes/level.tscn index 3717e71..d070165 100644 --- a/scenes/level.tscn +++ b/scenes/level.tscn @@ -1,12 +1,17 @@ -[gd_scene load_steps=11 format=3 uid="uid://bmscox3qtwvs2"] +[gd_scene load_steps=14 format=3 uid="uid://bmscox3qtwvs2"] [ext_resource type="Script" path="res://scenes/level.gd" id="1_3qps3"] [ext_resource type="Texture2D" uid="uid://c7wvhwsys1ll4" path="res://resources/backgrounds/levelbg.webp" id="1_7ct6t"] [ext_resource type="FontFile" uid="uid://dxgnofummhosw" path="res://fonts/play_bold.ttf" id="2_musvo"] [ext_resource type="PackedScene" uid="uid://sl3jbnopo0yh" path="res://balls/basic/ball_basic.tscn" id="3_14yi2"] [ext_resource type="PackedScene" uid="uid://cbygje4vi2rkv" path="res://boundaries/world_boundary.tscn" id="4_455ct"] +[ext_resource type="Texture2D" uid="uid://cxi0fqy5sajh5" path="res://balls/basic/basic.webp" id="4_phqmb"] +[ext_resource type="Texture2D" uid="uid://dsqcbd2cffw6e" path="res://balls/speed/speed.webp" id="5_mxuen"] [ext_resource type="PackedScene" uid="uid://c1i1fp3xbp6ly" path="res://blocks/block.tscn" id="7_7fnx3"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3mf1b"] +bg_color = Color(0.341176, 0.392157, 0.564706, 1) + [sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_ybmo2"] normal = Vector2(0, 1) distance = -510.0 @@ -33,7 +38,9 @@ offset_right = 1920.0 offset_bottom = 1080.0 texture = ExtResource("1_7ct6t") -[node name="GUI" type="VBoxContainer" parent="."] +[node name="GUI" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 offset_left = 20.0 offset_top = 20.0 offset_right = 360.0 @@ -41,6 +48,8 @@ offset_bottom = 1060.0 [node name="Title0" type="Label" parent="GUI"] layout_mode = 2 +offset_right = 340.0 +offset_bottom = 179.0 theme_override_fonts/font = ExtResource("2_musvo") theme_override_font_sizes/font_size = 154 text = "IDLE" @@ -48,16 +57,48 @@ horizontal_alignment = 1 [node name="Title1" type="Label" parent="GUI"] layout_mode = 2 +offset_top = 183.0 +offset_right = 340.0 +offset_bottom = 258.0 theme_override_fonts/font = ExtResource("2_musvo") theme_override_font_sizes/font_size = 64 text = "BREAKOUT" horizontal_alignment = 1 -[node name="Button" type="Button" parent="GUI"] +[node name="Panel" type="PanelContainer" parent="GUI"] layout_mode = 2 -theme_override_fonts/font = ExtResource("2_musvo") -theme_override_font_sizes/font_size = 50 -text = "ADD BALL" +offset_top = 260.0 +offset_right = 340.0 +offset_bottom = 1040.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_3mf1b") + +[node name="MarginContainer" type="MarginContainer" parent="GUI/Panel"] +layout_mode = 2 +theme_override_constants/margin_left = 12 +theme_override_constants/margin_top = 12 +theme_override_constants/margin_right = 12 +theme_override_constants/margin_bottom = 12 + +[node name="VBoxContainer" type="VBoxContainer" parent="GUI/Panel/MarginContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="GUI/Panel/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="ButtonBasicBall" type="TextureButton" parent="GUI/Panel/MarginContainer/VBoxContainer/HBoxContainer"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +texture_normal = ExtResource("4_phqmb") +stretch_mode = 0 + +[node name="HBoxContainer2" type="HBoxContainer" parent="GUI/Panel/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="ButtonSpeedBall" type="TextureButton" parent="GUI/Panel/MarginContainer/VBoxContainer/HBoxContainer2"] +custom_minimum_size = Vector2(100, 100) +layout_mode = 2 +texture_normal = ExtResource("5_mxuen") +stretch_mode = 0 [node name="GameContent" type="Node2D" parent="."] @@ -128,4 +169,5 @@ position = Vector2(1635, 293) [node name="BallSpawn" type="Node2D" parent="GameContent"] position = Vector2(1140, 540) -[connection signal="pressed" from="GUI/Button" to="." method="_on_button_pressed"] +[connection signal="pressed" from="GUI/Panel/MarginContainer/VBoxContainer/HBoxContainer/ButtonBasicBall" to="." method="_on_button_basic_ball_pressed"] +[connection signal="pressed" from="GUI/Panel/MarginContainer/VBoxContainer/HBoxContainer2/ButtonSpeedBall" to="." method="_on_button_speed_ball_pressed"]