diff --git a/gmtk_2024/levels/LevelBase.tscn b/gmtk_2024/levels/LevelBase.tscn index cd70842..84877b9 100644 --- a/gmtk_2024/levels/LevelBase.tscn +++ b/gmtk_2024/levels/LevelBase.tscn @@ -33,7 +33,7 @@ visible = false [node name="UILayer" type="CanvasLayer" parent="."] -[node name="UI" type="Control" parent="UILayer" node_paths=PackedStringArray("player")] +[node name="UI" type="Control" parent="UILayer"] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -41,7 +41,6 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("3_b82rx") -player = NodePath("../../Player") [node name="HBoxContainer" type="HBoxContainer" parent="UILayer/UI"] layout_mode = 0 diff --git a/gmtk_2024/levels/lev877D.tmp b/gmtk_2024/levels/lev877D.tmp new file mode 100644 index 0000000..133e143 --- /dev/null +++ b/gmtk_2024/levels/lev877D.tmp @@ -0,0 +1,182 @@ +[gd_scene load_steps=12 format=4 uid="uid://ctc0arg3efa5k"] + +[ext_resource type="PackedScene" uid="uid://ba6afuig8bqrg" path="res://levels/LevelBase.tscn" id="1_87xn7"] +[ext_resource type="Texture2D" uid="uid://c3m4os8kteaix" path="res://textures/level01-spritesheet.png" id="2_wqskp"] +[ext_resource type="Shader" path="res://shaders/scrolling.gdshader" id="4_0x2h7"] +[ext_resource type="Texture2D" uid="uid://c61y0181w3sq2" path="res://textures/Level 01.png" id="5_4p03u"] +[ext_resource type="PackedScene" path="res://objects/Goal.tscn" id="6_xhax5"] +[ext_resource type="PackedScene" path="res://objects/MirrorOrb.tscn" id="7_dyi0e"] +[ext_resource type="PackedScene" uid="uid://vtwswrkfkgas" path="res://objects/EnemyMover.tscn" id="8_16072"] +[ext_resource type="PackedScene" uid="uid://br6fngf5208j0" path="res://objects/ResizableBlock.tscn" id="8_ec71m"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_e817v"] +texture = ExtResource("2_wqskp") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:0/0 = 0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:0/0 = 0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:0/0 = 0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:0/0 = 0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/next_alternative_id = 4 +8:0/0 = 0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/1 = 1 +8:0/1/flip_v = true +8:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/2 = 2 +8:0/2/transpose = true +8:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:0/3 = 3 +8:0/3/flip_h = true +8:0/3/transpose = true +8:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:1/0 = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:1/0 = 0 +5:1/0 = 0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:1/0 = 0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:1/0 = 0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +8:1/0 = 0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +5:2/0 = 0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:2/0 = 0 +7:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 + +[sub_resource type="TileSet" id="TileSet_n3khe"] +tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_e817v") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mvq46"] +shader = ExtResource("4_0x2h7") +shader_parameter/scroll_speed = 0.02 + +[node name="LevelBase" instance=ExtResource("1_87xn7")] + +[node name="Player" parent="." index="0"] +position = Vector2(-542, 331) +scale = Vector2(2, 2) + +[node name="UI" parent="UILayer" index="0"] +mouse_filter = 2 + +[node name="HBoxContainer" parent="UILayer/UI" index="0"] +mouse_filter = 0 + +[node name="Walls" parent="." index="4"] +collision_mask = 22 + +[node name="LeftWall" parent="Walls" index="2"] +position = Vector2(-665, 14) + +[node name="Layer0" type="TileMapLayer" parent="." index="5"] +use_parent_material = true +tile_map_data = PackedByteArray("AADt/wsAAAABAAAAAADu/wsAAAABAAAAAADv/wsAAAABAAAAAADw/wsAAAABAAAAAADx/wsAAAABAAAAAADy/wsAAAABAAAAAADz/wsAAAABAAAAAAD0/wsAAAABAAAAAAD1/wsAAAABAAAAAAD2/wsAAAABAAAAAAD3/wsAAAABAAAAAAD4/wsAAAABAAAAAAD5/wsAAAABAAAAAAD6/wsAAAABAAAAAAD7/wsAAAABAAAAAAD8/wsAAAABAAAAAAD9/wsAAAABAAAAAAD+/wsAAAABAAAAAAD//wsAAAABAAAAAAAAAAsAAAABAAAAAAABAAsAAAABAAAAAAACAAsAAAABAAAAAAADAAsAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAABAAAAAAAHAAsAAAABAAAAAAAIAAsAAAABAAAAAAAJAAsAAAABAAAAAAAKAAsAAAAFAAIAAAALAAsAAAABAAEAAAAMAAsAAAABAAEAAAANAAsAAAABAAEAAAAOAAsAAAABAAEAAAAPAAsAAAABAAEAAAAQAAsAAAABAAEAAAARAAsAAAABAAEAAAASAAsAAAABAAEAAAATAAsAAAABAAEAAAAKAPT/AAABAAIAAAALAPT/AAABAAIAAAAMAPT/AAABAAIAAAANAPT/AAABAAIAAAATAPT/AAAFAAAAAAASAPT/AAABAAIAAAARAPT/AAABAAIAAAAQAPT/AAABAAIAAAAPAPT/AAABAAIAAAAOAPT/AAABAAIAAAAJAPT/AAABAAIAAAAIAPT/AAABAAIAAAAHAPT/AAABAAIAAAAGAPT/AAABAAIAAAAFAPT/AAABAAIAAAAEAPT/AAABAAIAAAADAPT/AAABAAIAAAACAPT/AAABAAIAAAD5//T/AAABAAIAAAD4//T/AAABAAIAAAD3//T/AAABAAIAAAD2//T/AAABAAIAAAD1//T/AAABAAIAAAD0//T/AAABAAIAAADz//T/AAABAAIAAADy//T/AAABAAIAAADx//T/AAABAAIAAADw//T/AAABAAIAAADv//T/AAABAAIAAADu//T/AAABAAIAAADt//T/AAABAAIAAADs//T/AAADAAAAAAD6//T/AAABAAIAAAD7//T/AAABAAIAAAD8//T/AAABAAIAAAD9//T/AAABAAIAAAD+//T/AAABAAIAAAD///T/AAABAAIAAAAAAPT/AAABAAIAAAABAPT/AAABAAIAAADs/woAAAACAAEAAADs/wkAAAACAAEAAADs/wgAAAACAAEAAADs/wcAAAACAAEAAADs/wYAAAADAAAAAADs/wUAAAABAAEAAADs/wQAAAABAAEAAADs/wMAAAADAAIAAADs/wIAAAACAAEAAADs/wEAAAACAAEAAADs/wAAAAABAAEAAADs////AAABAAEAAADs//7/AAADAAIAAADs//3/AAACAAEAAADs//z/AAACAAEAAADs//v/AAACAAEAAADs//r/AAACAAEAAADs//X/AAACAAEAAADs//b/AAACAAEAAADs//f/AAACAAEAAADs//j/AAACAAEAAADs//n/AAACAAEAAAATAPX/AAAAAAEAAAATAPb/AAAAAAEAAAATAPf/AAAFAAIAAAATAPj/AAABAAEAAAATAPn/AAABAAEAAAATAPr/AAABAAEAAAATAPv/AAABAAEAAAATAPz/AAAFAAAAAAATAP3/AAAAAAEAAAATAP7/AAAAAAEAAAATAP//AAAAAAEAAAATAAAAAAAAAAEAAAATAAEAAAAAAAEAAAATAAIAAAAAAAEAAAATAAMAAAAAAAEAAAATAAQAAAAAAAEAAAATAAUAAAAAAAEAAAATAAYAAAAAAAEAAAATAAcAAAAAAAEAAAATAAgAAAAAAAEAAAATAAkAAAAFAAIAAAATAAoAAAABAAEAAAAKAAkAAAAAAAAAAAAKAAoAAAAAAAEAAAALAAkAAAABAAAAAAALAAoAAAABAAEAAAAMAAkAAAABAAAAAAAMAAoAAAABAAEAAAANAAkAAAABAAAAAAANAAoAAAABAAEAAAAOAAkAAAABAAAAAAAOAAoAAAABAAEAAAAPAAkAAAABAAAAAAAPAAoAAAABAAEAAAAQAAkAAAABAAAAAAAQAAoAAAABAAEAAAARAAkAAAABAAAAAAARAAoAAAABAAEAAAASAAkAAAABAAAAAAASAAoAAAABAAEAAADt/wMAAAABAAAAAADt/wQAAAABAAEAAADt/wUAAAABAAEAAADt/wYAAAABAAIAAADu/wMAAAABAAAAAADu/wQAAAABAAEAAADu/wUAAAABAAEAAADu/wYAAAABAAIAAADv/wMAAAABAAAAAADv/wQAAAABAAEAAADv/wUAAAABAAEAAADv/wYAAAABAAIAAADw/wMAAAABAAAAAADw/wQAAAABAAEAAADw/wUAAAABAAEAAADw/wYAAAABAAIAAADx/wMAAAABAAAAAADx/wQAAAABAAEAAADx/wUAAAABAAEAAADx/wYAAAABAAIAAADy/wMAAAABAAAAAADy/wQAAAABAAEAAADy/wUAAAABAAEAAADy/wYAAAABAAIAAADz/wMAAAABAAAAAADz/wQAAAABAAEAAADz/wUAAAABAAEAAADz/wYAAAABAAIAAAD0/wMAAAABAAAAAAD0/wQAAAABAAEAAAD0/wUAAAABAAEAAAD0/wYAAAABAAIAAAD1/wMAAAABAAAAAAD1/wQAAAABAAEAAAD1/wUAAAABAAEAAAD1/wYAAAABAAIAAAD2/wMAAAABAAAAAAD2/wQAAAABAAEAAAD2/wUAAAABAAEAAAD2/wYAAAABAAIAAAD3/wMAAAABAAAAAAD3/wQAAAABAAEAAAD3/wUAAAABAAEAAAD3/wYAAAABAAIAAAD4/wMAAAABAAAAAAD4/wQAAAABAAEAAAD4/wUAAAABAAEAAAD4/wYAAAABAAIAAAD5/wMAAAABAAAAAAD5/wQAAAABAAEAAAD5/wUAAAABAAEAAAD5/wYAAAABAAIAAAD6/wMAAAABAAAAAAD6/wQAAAABAAEAAAD6/wUAAAABAAEAAAD6/wYAAAABAAIAAAD7/wMAAAABAAAAAAD7/wQAAAABAAEAAAD7/wUAAAABAAEAAAD7/wYAAAABAAIAAAD8/wMAAAABAAAAAAD8/wQAAAABAAEAAAD8/wUAAAABAAEAAAD8/wYAAAABAAIAAAD9/wMAAAABAAAAAAD9/wQAAAABAAEAAAD9/wUAAAABAAEAAAD9/wYAAAABAAIAAAD+/wMAAAABAAAAAAD+/wQAAAABAAEAAAD+/wUAAAABAAEAAAD+/wYAAAABAAIAAAD//wMAAAABAAAAAAD//wQAAAABAAEAAAD//wUAAAABAAEAAAD//wYAAAABAAIAAAAAAAMAAAABAAAAAAAAAAQAAAABAAEAAAAAAAUAAAABAAEAAAAAAAYAAAABAAIAAAABAAMAAAACAAAAAAABAAQAAAADAAIAAAABAAUAAAABAAEAAAABAAYAAAABAAIAAAACAAQAAAAEAAIAAAACAAUAAAABAAEAAAACAAYAAAABAAIAAAADAAQAAAACAAAAAAADAAUAAAADAAIAAAADAAYAAAABAAIAAAAEAAUAAAAEAAIAAAAEAAYAAAABAAIAAAAFAAUAAAACAAAAAAAFAAYAAAAGAAEAAAAGAAYAAAAIAAAAAwD7/wAAAAABAAIAAAD8/wAAAAABAAIAAAD9/wAAAAABAAIAAAD+/wAAAAABAAIAAAD//wAAAAABAAIAAAAAAAAAAAACAAIAAAD7////AAABAAEAAAD8////AAABAAEAAAD9////AAABAAEAAAD+////AAABAAEAAAD/////AAABAAEAAAAAAP//AAACAAEAAAAAAP7/AAACAAAAAAD///7/AAABAAAAAAD+//7/AAABAAAAAAD9//7/AAABAAAAAAD8//7/AAABAAAAAAD7//7/AAABAAAAAAD6/wAAAAABAAIAAAD5/wAAAAABAAIAAAD4/wAAAAABAAIAAAD3/wAAAAAHAAEAAAD2/wAAAAAIAAAAAgD3////AAAAAAAAAAD4////AAAFAAIAAAD4//7/AAAAAAAAAAD5//7/AAABAAAAAAD6//7/AAABAAAAAAD6////AAABAAEAAAD5////AAABAAEAAADz/wAAAAAIAAAAAwDy/wAAAAAGAAEAAADy////AAACAAAAAADx////AAABAAEAAADw////AAABAAEAAADv////AAABAAEAAADv//7/AAABAAAAAADu//7/AAABAAAAAADt//7/AAABAAAAAADt////AAABAAEAAADu////AAABAAEAAADv/wAAAAABAAIAAADw/wAAAAABAAIAAADx/wAAAAABAAIAAADu/wAAAAABAAIAAADt/wAAAAABAAIAAADw//7/AAABAAAAAADx//7/AAACAAAAAADy//v/AAAIAAAAAgDz//z/AAAAAAIAAAD0//3/AAAAAAIAAAD1//3/AAACAAIAAAD2//z/AAACAAIAAAD3//v/AAAIAAAAAwDz//v/AAAHAAAAAAD0//v/AAABAAAAAAD1//v/AAABAAAAAAD2//v/AAAGAAAAAAD0//z/AAABAAEAAAD1//z/AAABAAEAAAD6//n/AAAIAAAAAgD7//n/AAAHAAAAAAD8//n/AAABAAEAAAD8//j/AAAAAAAAAAD9//j/AAACAAAAAAD9//n/AAABAAEAAAD+//n/AAAGAAAAAAD///n/AAAIAAAAAwD7//r/AAAAAAIAAAD8//r/AAABAAEAAAD9//r/AAABAAEAAAD+//r/AAACAAIAAAD8//v/AAAAAAIAAAD9//v/AAACAAIAAAADAPj/AAAIAAAAAgAEAPj/AAAHAAAAAAAFAPj/AAABAAAAAAAGAPj/AAABAAAAAAAHAPj/AAABAAAAAAAIAPj/AAABAAAAAAAJAPj/AAABAAAAAAAKAPj/AAABAAAAAAALAPj/AAAFAAIAAAALAPf/AAAAAAAAAAAMAPf/AAABAAAAAAANAPf/AAABAAAAAAAOAPf/AAABAAAAAAAPAPf/AAABAAAAAAAQAPf/AAABAAAAAAARAPf/AAABAAAAAAASAPf/AAABAAAAAAASAPj/AAABAAEAAAARAPj/AAABAAEAAAAQAPj/AAABAAEAAAAPAPj/AAABAAEAAAAOAPn/AAABAAEAAAANAPn/AAABAAEAAAAMAPn/AAABAAEAAAAMAPj/AAABAAEAAAANAPj/AAABAAEAAAAOAPj/AAABAAEAAAASAPn/AAABAAEAAAARAPn/AAABAAEAAAAQAPn/AAABAAEAAAAPAPn/AAABAAEAAAALAPn/AAABAAEAAAAKAPn/AAABAAEAAAAJAPn/AAABAAEAAAAIAPn/AAABAAEAAAAHAPn/AAABAAEAAAAGAPn/AAABAAEAAAAFAPn/AAAFAAAAAAAEAPn/AAAAAAIAAAAFAPr/AAAAAAIAAAAGAPr/AAABAAIAAAAHAPr/AAABAAIAAAAIAPr/AAABAAEAAAAJAPr/AAABAAEAAAAKAPr/AAABAAEAAAALAPr/AAABAAEAAAAMAPr/AAABAAEAAAANAPr/AAABAAEAAAAOAPr/AAABAAEAAAAPAPr/AAABAAEAAAAQAPr/AAABAAEAAAARAPr/AAABAAEAAAASAPr/AAABAAEAAAAQAPv/AAABAAEAAAAPAPv/AAABAAEAAAAOAPv/AAABAAEAAAANAPv/AAABAAEAAAAMAPv/AAABAAEAAAALAPv/AAAFAAAAAAAKAPv/AAABAAIAAAAJAPv/AAABAAIAAAAIAPv/AAAAAAIAAAARAPv/AAABAAEAAAASAPv/AAABAAEAAAASAPz/AAABAAIAAAARAPz/AAABAAIAAAAQAPz/AAABAAIAAAAPAPz/AAABAAIAAAAOAPz/AAABAAIAAAANAPz/AAABAAIAAAAMAPz/AAABAAIAAAALAPz/AAAAAAIAAADs/wsAAAADAAIAAAA=") +tile_set = SubResource("TileSet_n3khe") + +[node name="TextureRect" type="TextureRect" parent="." index="6"] +z_index = -100 +material = SubResource("ShaderMaterial_mvq46") +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -640.0 +offset_top = -360.0 +offset_right = -640.0 +offset_bottom = -360.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_4p03u") +stretch_mode = 1 + +[node name="Goal" parent="." index="7" instance=ExtResource("6_xhax5")] +position = Vector2(582, -317) + +[node name="MirrorOrb" parent="." index="8" instance=ExtResource("7_dyi0e")] +position = Vector2(-431, -212) + +[node name="Block" parent="." index="9" node_paths=PackedStringArray("ui_actions") instance=ExtResource("8_ec71m")] +position = Vector2(432, 186) +collision_layer = 1 +ui_actions = NodePath("../UILayer/UI") + +[node name="EnemyMover" parent="." index="10" instance=ExtResource("8_16072")] +position = Vector2(-132, 311) + +[node name="Block3" parent="." index="11" node_paths=PackedStringArray("ui_actions") instance=ExtResource("8_ec71m")] +position = Vector2(162, 124) +collision_layer = 1 +ui_actions = NodePath("../UILayer/UI") diff --git a/gmtk_2024/levels/level_1.tscn b/gmtk_2024/levels/level_1.tscn index 1e95a5f..133e143 100644 --- a/gmtk_2024/levels/level_1.tscn +++ b/gmtk_2024/levels/level_1.tscn @@ -129,7 +129,6 @@ shader_parameter/scroll_speed = 0.02 [node name="Player" parent="." index="0"] position = Vector2(-542, 331) scale = Vector2(2, 2) -jump_strength_max = 400 [node name="UI" parent="UILayer" index="0"] mouse_filter = 2 @@ -170,9 +169,14 @@ position = Vector2(582, -317) position = Vector2(-431, -212) [node name="Block" parent="." index="9" node_paths=PackedStringArray("ui_actions") instance=ExtResource("8_ec71m")] -position = Vector2(476, 253) +position = Vector2(432, 186) collision_layer = 1 ui_actions = NodePath("../UILayer/UI") [node name="EnemyMover" parent="." index="10" instance=ExtResource("8_16072")] position = Vector2(-132, 311) + +[node name="Block3" parent="." index="11" node_paths=PackedStringArray("ui_actions") instance=ExtResource("8_ec71m")] +position = Vector2(162, 124) +collision_layer = 1 +ui_actions = NodePath("../UILayer/UI") diff --git a/gmtk_2024/objects/Player.tscn b/gmtk_2024/objects/Player.tscn index 176fec2..a549805 100644 --- a/gmtk_2024/objects/Player.tscn +++ b/gmtk_2024/objects/Player.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://snxpqx0ony7s"] +[gd_scene load_steps=6 format=3 uid="uid://snxpqx0ony7s"] [ext_resource type="Script" path="res://scripts/player_movement.gd" id="1_a6lhy"] [ext_resource type="Texture2D" uid="uid://qcx482jc7pqr" path="res://textures/player.png" id="2_sscjv"] +[ext_resource type="Texture2D" uid="uid://dfvxk0e8taj1d" path="res://textures/Eye Lase.png" id="3_yg3ur"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_jqi2f"] radius = 9.0 @@ -29,4 +30,12 @@ collision_mask = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="Hurtbox"] shape = SubResource("CircleShape2D_vxfel") +[node name="data_link" type="Line2D" parent="."] +visible = false +texture_repeat = 2 +points = PackedVector2Array(0, 0, 0, 0) +default_color = Color(0.298039, 1, 0.141176, 1) +texture = ExtResource("3_yg3ur") +texture_mode = 1 + [connection signal="body_entered" from="Hurtbox" to="." method="_on_hurtbox_body_entered"] diff --git a/gmtk_2024/scripts/player_movement.gd b/gmtk_2024/scripts/player_movement.gd index 0922202..21d2316 100644 --- a/gmtk_2024/scripts/player_movement.gd +++ b/gmtk_2024/scripts/player_movement.gd @@ -4,17 +4,20 @@ extends CharacterBody2D @export var gravity = 50 var jump_count = 1 @export var jump_strength = 100 -@export var jump_strength_max = 300 var is_touching_floor : bool = true var jump_buffer_timer : float -var coyote_timer : float = 0.2 # 200 millisecond buffer -var input_direction = 0 #To keep track of which direction we where moving in last frame +var coyote_timer : float = 0.2 +var input_direction = 0 +@export var max_link_distance: float = 200.0 +var data_link: Line2D + +func _ready(): + data_link = $data_link func get_input(delta): - var left = Input.is_action_pressed("player_left") var right = Input.is_action_pressed("player_right") - + if left and right: input_direction = 0 elif left: @@ -23,18 +26,16 @@ func get_input(delta): input_direction = 1 else: input_direction = 0 - - # This line updates the player's velocity + velocity.x = input_direction * speed - + if is_on_floor(): - # reset the jump count is_touching_floor = true jump_count = 1 coyote_timer = 0.2 if jump_buffer_timer > 0: Jump() - + if not is_on_floor(): if jump_buffer_timer > 0: jump_buffer_timer -= delta @@ -42,43 +43,44 @@ func get_input(delta): coyote_timer -= delta else: jump_count = 0 - - if Input.is_action_just_pressed("player_jump"): + + if Input.is_action_just_pressed("player_jump"): if jump_count > 0: Jump() else: - jump_buffer_timer = 0.2 # set a timer to jump again once the player has reached the ground, provided the jump is is still being held down - elif Input.is_action_pressed("player_jump"): #Fall less fast if we keep holding the button + jump_buffer_timer = 0.2 + elif Input.is_action_pressed("player_jump"): velocity.y += -1 * 25 func _physics_process(delta): get_input(delta) velocity.y += gravity move_and_slide() - - if(get_slide_collision_count() > 0): - for i in get_slide_collision_count(): - var box = get_slide_collision(i).get_collider() as Box - if scale.x == 2: - if box and velocity.y >= 0: - box.velocity.x = velocity.x*0.8 - else: - if box and velocity.y >= 0 and box.scale.x < 2: - box.velocity.x = velocity.x*0.8 - # print(jump_count) # Uncomment for debugging + update_data_link() func Jump(): - if scale.x == 1: - velocity.y = -1 * jump_strength - elif scale.x == 2: - velocity.y = -1 * jump_strength_max + velocity.y = -1 * jump_strength jump_count = 0 is_touching_floor = false - func _on_hurtbox_body_entered(body: Node2D) -> void: get_tree().reload_current_scene() +func update_data_link(): + var nearest_block = find_nearest_block() + if nearest_block: + data_link.visible = true + data_link.set_point_position(0, Vector2.ZERO) + data_link.set_point_position(1, get_transform().affine_inverse() * nearest_block.position) + else: + data_link.visible = false -func _on_area_2d_body_entered(body): - print("Body entered") +func find_nearest_block() -> Node2D: + var closest_distance = max_link_distance + var closest_block: Node2D = null + for block in get_tree().get_nodes_in_group("scalable_blocks"): + var distance = global_position.distance_to(block.global_position) + if distance <= closest_distance: + closest_distance = distance + closest_block = block + return closest_block diff --git a/gmtk_2024/scripts/resizable_block.gd b/gmtk_2024/scripts/resizable_block.gd index 216565a..4c176d7 100644 --- a/gmtk_2024/scripts/resizable_block.gd +++ b/gmtk_2024/scripts/resizable_block.gd @@ -6,18 +6,19 @@ extends StaticBody2D @export var ui_actions: Node func _ready(): + add_to_group("scalable_blocks") if ui_actions == null: - ui_actions = get_parent().get_node("Path/To/UiActionsNode") + ui_actions = get_parent().get_node("UILayer/UI") -func _on_input_event(viewport, event, shape_idx): - if event is InputEventMouseButton and event.pressed: - if event.is_action_pressed("click"): - if ui_actions.current_selected == "scale_up": - scale_up() - ui_actions.scale_up_player() - elif ui_actions.current_selected == "scale_down": - scale_down() - ui_actions.scale_down_player() +#func _on_input_event(viewport, event, shape_idx): + #if event is InputEventMouseButton and event.pressed: + #if event.is_action_pressed("click"): + #if ui_actions.current_selected == "scale_up": + #scale_up() + #ui_actions.scale_up_player() + #elif ui_actions.current_selected == "scale_down": + #scale_down() + #ui_actions.scale_down_player() func scale_up(): var tween = create_tween() diff --git a/gmtk_2024/scripts/ui_actions.gd b/gmtk_2024/scripts/ui_actions.gd index 428eb7e..61d8005 100644 --- a/gmtk_2024/scripts/ui_actions.gd +++ b/gmtk_2024/scripts/ui_actions.gd @@ -1,20 +1,18 @@ extends Node -@export var player: CharacterBody2D - +@export var player : CharacterBody2D +@export var scale_duration: float = 0.5 var current_selected = "none" -@export var scale_duration: float = 0.5 -var target_scale_player: Vector2 = Vector2(1, 1) -var target_scale_block: Vector2 = Vector2(1, 1) func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("click"): - if current_selected == "scale_up": - current_selected = "scale_up" - elif current_selected == "scale_down": - current_selected = "scale_down" - elif current_selected == "mirror": - mirror() + var nearest_block = player.find_nearest_block() + if nearest_block and current_selected == "scale_up": + nearest_block.scale_up() + scale_up_player() + elif nearest_block and current_selected == "scale_down": + nearest_block.scale_down() + scale_down_player() func select_up(): current_selected = "scale_up" @@ -30,12 +28,12 @@ func start_scaling(target_node: Node2D, scale_value: Vector2): tween.tween_property(target_node, "scale", scale_value, scale_duration) func scale_up_player(): - target_scale_player = Vector2(0.5, 0.5) - start_scaling(player, target_scale_player) + player.target_scale = Vector2(2.0, 2.0) + player.start_scaling() func scale_down_player(): - target_scale_player = Vector2(2.0, 2.0) - start_scaling(player, target_scale_player) + player.target_scale = Vector2(0.5, 0.5) + player.start_scaling() func mirror(): pass # Mirror-Funktionalität hier einfügen diff --git a/gmtk_2024/textures/Eye Lase.png b/gmtk_2024/textures/Eye Lase.png new file mode 100644 index 0000000..21785a2 Binary files /dev/null and b/gmtk_2024/textures/Eye Lase.png differ diff --git a/gmtk_2024/textures/File-Icon-Sheet.png b/gmtk_2024/textures/File-Icon-Sheet.png index 6db41bd..7ed6cce 100644 Binary files a/gmtk_2024/textures/File-Icon-Sheet.png and b/gmtk_2024/textures/File-Icon-Sheet.png differ diff --git a/gmtk_2024/textures/Modifi Blocks-Sheet.png b/gmtk_2024/textures/Modifi Blocks-Sheet.png new file mode 100644 index 0000000..b19b524 Binary files /dev/null and b/gmtk_2024/textures/Modifi Blocks-Sheet.png differ diff --git a/gmtk_2024/textures/level01-spritesheet.png b/gmtk_2024/textures/level01-spritesheet.png index 0dfa7d0..307a983 100644 Binary files a/gmtk_2024/textures/level01-spritesheet.png and b/gmtk_2024/textures/level01-spritesheet.png differ