diff --git a/games/cam_follow.gd b/games/cam_follow.gd new file mode 100644 index 0000000..bdcc1f3 --- /dev/null +++ b/games/cam_follow.gd @@ -0,0 +1,15 @@ +extends Camera2D +class_name CamFollow + +@export var target : Node2D +@export var following : bool = true + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + if(following): + global_position = target.global_position diff --git a/games/cam_follow.gd.uid b/games/cam_follow.gd.uid new file mode 100644 index 0000000..8bace2d --- /dev/null +++ b/games/cam_follow.gd.uid @@ -0,0 +1 @@ +uid://c4vewqfmgu8ph diff --git a/games/platformer/lab_platform.gd b/games/platformer/lab_platform.gd index 7b0685e..52f5c8e 100644 --- a/games/platformer/lab_platform.gd +++ b/games/platformer/lab_platform.gd @@ -4,6 +4,9 @@ const offset_multiplier : float = 2 var float_offset : float var starting_y : float var elapsed : float +var realness : float = 0 +var becoming_real : bool = false +@export var collider : CollisionShape2D # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -15,3 +18,17 @@ func _process(delta: float) -> void: elapsed += delta float_offset = sin(elapsed * offset_multiplier) position.y = starting_y + float_offset + collider.disabled = realness < 0.1 + modulate = Color(1,1,1,realness) + if(becoming_real): + realness = clampf(realness + delta, 0 , 1) + else: + realness = clampf(realness - delta, 0 , 1) + #if(Input.is_action_just_pressed("ui_left")): + #becoming_real = !becoming_real + +func fade_out(): + becoming_real = false + +func fade_in(): + becoming_real = true diff --git a/games/platformer/lab_platform.tscn b/games/platformer/lab_platform.tscn index 5c2fe45..9b70294 100644 --- a/games/platformer/lab_platform.tscn +++ b/games/platformer/lab_platform.tscn @@ -6,8 +6,9 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_x2rtd"] size = Vector2(96, 8) -[node name="LabPlatformer" type="AnimatableBody2D"] +[node name="LabPlatformer" type="AnimatableBody2D" node_paths=PackedStringArray("collider")] script = ExtResource("1_y0tou") +collider = NodePath("CollisionShape2D") [node name="Sprite2D" type="Sprite2D" parent="."] scale = Vector2(2, 2) diff --git a/games/platformer/platformer.tscn b/games/platformer/platformer.tscn index 36042fa..707b2dc 100644 --- a/games/platformer/platformer.tscn +++ b/games/platformer/platformer.tscn @@ -1,9 +1,11 @@ -[gd_scene load_steps=11 format=4 uid="uid://ckbyiwy0dxbsd"] +[gd_scene load_steps=15 format=4 uid="uid://ckbyiwy0dxbsd"] [ext_resource type="Script" uid="uid://dqyddqx8xm0gw" path="res://games/platformer/player.gd" id="1_1wj3w"] [ext_resource type="Texture2D" uid="uid://diilj7xuttpqu" path="res://icon.svg" id="1_oyf6i"] [ext_resource type="Texture2D" uid="uid://g5arxk4po7kw" path="res://sprites/platformer_lab_tile.png" id="3_84mot"] [ext_resource type="PackedScene" uid="uid://q3wdnawp7n63" path="res://games/platformer/lab_platform.tscn" id="4_w58m1"] +[ext_resource type="Script" uid="uid://43jxroyergh0" path="res://games/platformer/platformerCam.gd" id="5_x2rtd"] +[ext_resource type="Texture2D" uid="uid://dyjxtuapxfiip" path="res://sprites/box.png" id="6_02uuf"] [sub_resource type="Gradient" id="Gradient_1wj3w"] offsets = PackedFloat32Array(0.0209205, 1) @@ -11,11 +13,16 @@ colors = PackedColorArray(0.241156, 0.241156, 0.241156, 1, 0.462291, 0.462291, 0 [sub_resource type="GradientTexture2D" id="GradientTexture2D_84mot"] gradient = SubResource("Gradient_1wj3w") +width = 300 +height = 180 fill_from = Vector2(1, 1) [sub_resource type="RectangleShape2D" id="RectangleShape2D_oyf6i"] size = Vector2(32, 32) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_02uuf"] +size = Vector2(32, 32) + [sub_resource type="RectangleShape2D" id="RectangleShape2D_1wj3w"] size = Vector2(608, 46) @@ -28,18 +35,28 @@ texture = ExtResource("3_84mot") physics_layer_0/collision_layer = 1 sources/0 = SubResource("TileSetAtlasSource_w58m1") +[sub_resource type="RectangleShape2D" id="RectangleShape2D_86tx6"] +size = Vector2(32, 32) + [node name="Platformer" type="Node"] -[node name="TextureRect" type="TextureRect" parent="."] +[node name="Parallax2D" type="Parallax2D" parent="."] +scroll_scale = Vector2(0, 0) + +[node name="TextureRect" type="TextureRect" parent="Parallax2D"] +z_index = -6 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_right = 320.0 +offset_bottom = 180.0 grow_horizontal = 2 grow_vertical = 2 +scale = Vector2(2, 2) texture = SubResource("GradientTexture2D_84mot") [node name="Player" type="CharacterBody2D" parent="."] -position = Vector2(124, 155) +position = Vector2(-976, 272) script = ExtResource("1_1wj3w") [node name="Sprite2D" type="Sprite2D" parent="Player"] @@ -49,6 +66,12 @@ texture = ExtResource("1_oyf6i") [node name="CollisionShape2D" type="CollisionShape2D" parent="Player"] shape = SubResource("RectangleShape2D_oyf6i") +[node name="hitbox" type="Area2D" parent="Player"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/hitbox"] +shape = SubResource("RectangleShape2D_02uuf") +debug_color = Color(5.29438e-07, 0.629247, 0.48448, 0.42) + [node name="StaticBody2D" type="StaticBody2D" parent="."] position = Vector2(319, 344) @@ -57,7 +80,7 @@ shape = SubResource("RectangleShape2D_1wj3w") [node name="TileMapLayer" type="TileMapLayer" parent="."] scale = Vector2(2, 2) -tile_map_data = PackedByteArray("AAAAAAkAAAAAAAAAAAABAAkAAAAAAAAAAAACAAkAAAAAAAAAAAADAAkAAAAAAAAAAAAEAAkAAAAAAAAAAAAFAAkAAAAAAAAAAAAGAAkAAAAAAAAAAAAHAAkAAAAAAAAAAAAIAAkAAAAAAAAAAAAJAAkAAAAAAAAAAAAKAAkAAAAAAAAAAAALAAkAAAAAAAAAAAAMAAkAAAAAAAAAAAANAAkAAAAAAAAAAAAOAAkAAAAAAAAAAAAPAAkAAAAAAAAAAAAQAAkAAAAAAAAAAAARAAkAAAAAAAAAAAASAAkAAAAAAAAAAAATAAkAAAAAAAAAAAATAAoAAAAAAAAAAAATAAsAAAAAAAAAAAASAAsAAAAAAAAAAAARAAsAAAAAAAAAAAAQAAsAAAAAAAAAAAAPAAsAAAAAAAAAAAAOAAsAAAAAAAAAAAANAAsAAAAAAAAAAAAMAAsAAAAAAAAAAAALAAsAAAAAAAAAAAAKAAsAAAAAAAAAAAAJAAsAAAAAAAAAAAAIAAsAAAAAAAAAAAAHAAsAAAAAAAAAAAAGAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAADAAsAAAAAAAAAAAACAAsAAAAAAAAAAAABAAsAAAAAAAAAAAABAAoAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAAAACAAoAAAAAAAAAAAADAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAFAAoAAAAAAAAAAAAGAAoAAAAAAAAAAAAHAAoAAAAAAAAAAAAIAAoAAAAAAAAAAAAJAAoAAAAAAAAAAAAKAAoAAAAAAAAAAAALAAoAAAAAAAAAAAAMAAoAAAAAAAAAAAANAAoAAAAAAAAAAAAOAAoAAAAAAAAAAAAPAAoAAAAAAAAAAAAQAAoAAAAAAAAAAAARAAoAAAAAAAAAAAASAAoAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAARAAAAAAAAAAAAAAASAAAAAAAAAAAAAAATAAAAAAAAAAAAAAATAAEAAAAAAAAAAAATAAIAAAAAAAAAAAATAAMAAAAAAAAAAAATAAQAAAAAAAAAAAATAAUAAAAAAAAAAAATAAYAAAAAAAAAAAATAAcAAAAAAAAAAAATAAgAAAAAAAAAAAA=") +tile_map_data = PackedByteArray("AAAAAAkAAAAAAAAAAAABAAkAAAAAAAAAAAACAAkAAAAAAAAAAAADAAkAAAAAAAAAAAAEAAkAAAAAAAAAAAAFAAkAAAAAAAAAAAAGAAkAAAAAAAAAAAAHAAkAAAAAAAAAAAAIAAkAAAAAAAAAAAAJAAkAAAAAAAAAAAAKAAkAAAAAAAAAAAALAAkAAAAAAAAAAAAMAAkAAAAAAAAAAAANAAkAAAAAAAAAAAAOAAkAAAAAAAAAAAAPAAkAAAAAAAAAAAAQAAkAAAAAAAAAAAARAAkAAAAAAAAAAAASAAkAAAAAAAAAAAATAAkAAAAAAAAAAAATAAoAAAAAAAAAAAATAAsAAAAAAAAAAAASAAsAAAAAAAAAAAARAAsAAAAAAAAAAAAQAAsAAAAAAAAAAAAPAAsAAAAAAAAAAAAOAAsAAAAAAAAAAAANAAsAAAAAAAAAAAAMAAsAAAAAAAAAAAALAAsAAAAAAAAAAAAKAAsAAAAAAAAAAAAJAAsAAAAAAAAAAAAIAAsAAAAAAAAAAAAHAAsAAAAAAAAAAAAGAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAADAAsAAAAAAAAAAAACAAsAAAAAAAAAAAABAAsAAAAAAAAAAAABAAoAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAAAACAAoAAAAAAAAAAAADAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAFAAoAAAAAAAAAAAAGAAoAAAAAAAAAAAAHAAoAAAAAAAAAAAAIAAoAAAAAAAAAAAAJAAoAAAAAAAAAAAAKAAoAAAAAAAAAAAALAAoAAAAAAAAAAAAMAAoAAAAAAAAAAAANAAoAAAAAAAAAAAAOAAoAAAAAAAAAAAAPAAoAAAAAAAAAAAAQAAoAAAAAAAAAAAARAAoAAAAAAAAAAAASAAoAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAARAAAAAAAAAAAAAAASAAAAAAAAAAAAAAATAAAAAAAAAAAAAAATAAEAAAAAAAAAAAATAAIAAAAAAAAAAAATAAMAAAAAAAAAAAATAAQAAAAAAAAAAAATAAUAAAAAAAAAAAD//wkAAAAAAAAAAAD+/wkAAAAAAAAAAAD9/wkAAAAAAAAAAAD8/wkAAAAAAAAAAAD7/wkAAAAAAAAAAAD6/wkAAAAAAAAAAAD5/wkAAAAAAAAAAAD4/wkAAAAAAAAAAAD3/wkAAAAAAAAAAAD2/wkAAAAAAAAAAAD1/wkAAAAAAAAAAAD0/wkAAAAAAAAAAADz/wkAAAAAAAAAAADy/wkAAAAAAAAAAADx/wkAAAAAAAAAAAAUAAkAAAAAAAAAAAAVAAkAAAAAAAAAAAAWAAkAAAAAAAAAAAAXAAkAAAAAAAAAAAAYAAkAAAAAAAAAAAAZAAkAAAAAAAAAAAAaAAkAAAAAAAAAAAAbAAkAAAAAAAAAAAAcAAkAAAAAAAAAAAAdAAkAAAAAAAAAAAAeAAkAAAAAAAAAAAAfAAkAAAAAAAAAAADw/wkAAAAAAAAAAADv/wkAAAAAAAAAAADu/wkAAAAAAAAAAADt/wkAAAAAAAAAAADs/wkAAAAAAAAAAADr/wkAAAAAAAAAAADq/wkAAAAAAAAAAADp/wkAAAAAAAAAAADo/wkAAAAAAAAAAADn/wkAAAAAAAAAAADm/wkAAAAAAAAAAADl/wkAAAAAAAAAAADk/wkAAAAAAAAAAADj/wkAAAAAAAAAAADi/wkAAAAAAAAAAADh/wkAAAAAAAAAAADg/wkAAAAAAAAAAADf/wkAAAAAAAAAAAD//wMAAAAAAAAAAAD+/wMAAAAAAAAAAAD9/wMAAAAAAAAAAAD8/wMAAAAAAAAAAAD7/wMAAAAAAAAAAAD6/wMAAAAAAAAAAAD5/wMAAAAAAAAAAAD4/wMAAAAAAAAAAAD3/wMAAAAAAAAAAAD2/wMAAAAAAAAAAAD1/wMAAAAAAAAAAAD0/wMAAAAAAAAAAADz/wMAAAAAAAAAAADy/wMAAAAAAAAAAADx/wMAAAAAAAAAAADw/wMAAAAAAAAAAADv/wMAAAAAAAAAAADu/wMAAAAAAAAAAADt/wMAAAAAAAAAAADs/wMAAAAAAAAAAADr/wMAAAAAAAAAAADq/wMAAAAAAAAAAADp/wMAAAAAAAAAAADo/wMAAAAAAAAAAADn/wMAAAAAAAAAAADm/wMAAAAAAAAAAADl/wMAAAAAAAAAAADk/wMAAAAAAAAAAADj/wMAAAAAAAAAAADi/wMAAAAAAAAAAADh/wMAAAAAAAAAAADg/wMAAAAAAAAAAADf/wMAAAAAAAAAAAAUAAMAAAAAAAAAAAAVAAMAAAAAAAAAAAAWAAMAAAAAAAAAAAAXAAMAAAAAAAAAAAAYAAMAAAAAAAAAAAAZAAMAAAAAAAAAAAAaAAMAAAAAAAAAAAAbAAMAAAAAAAAAAAAcAAMAAAAAAAAAAAAdAAMAAAAAAAAAAAAeAAMAAAAAAAAAAAAfAAMAAAAAAAAAAAA=") tile_set = SubResource("TileSet_x2rtd") [node name="LabPlatformer" parent="." instance=ExtResource("4_w58m1")] @@ -71,3 +94,20 @@ position = Vector2(368, 112) [node name="LabPlatformer4" parent="." instance=ExtResource("4_w58m1")] position = Vector2(240, 112) + +[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("target")] +position = Vector2(-976, 180) +position_smoothing_enabled = true +script = ExtResource("5_x2rtd") +target = NodePath("../Player") + +[node name="Box" type="Area2D" parent="."] +position = Vector2(-672, 272) + +[node name="Sprite2D" type="Sprite2D" parent="Box"] +texture = ExtResource("6_02uuf") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Box"] +shape = SubResource("RectangleShape2D_86tx6") + +[connection signal="area_entered" from="Player/hitbox" to="Player" method="_on_hitbox_area_entered"] diff --git a/games/platformer/platformerCam.gd b/games/platformer/platformerCam.gd new file mode 100644 index 0000000..eb4fcb1 --- /dev/null +++ b/games/platformer/platformerCam.gd @@ -0,0 +1,23 @@ +extends Camera2D + +@export var target : Node2D +@export var following : bool = true + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + if(following): + global_position.x = target.global_position.x + if(Input.is_action_just_pressed("ui_right")): + start_arena_cam() + pass + +func start_arena_cam(): + print("weh!") + following = false + position = Vector2(320,180) + #offset = Vector2(0,0) diff --git a/games/platformer/platformerCam.gd.uid b/games/platformer/platformerCam.gd.uid new file mode 100644 index 0000000..7fc026b --- /dev/null +++ b/games/platformer/platformerCam.gd.uid @@ -0,0 +1 @@ +uid://43jxroyergh0 diff --git a/games/platformer/player.gd b/games/platformer/player.gd index 1b0dd4d..26da81a 100644 --- a/games/platformer/player.gd +++ b/games/platformer/player.gd @@ -5,7 +5,7 @@ extends CharacterBody2D @export var JUMP_VELOCITY = -450.0 -func _physics_process(delta: float) -> void: +func _process(delta: float) -> void: # Add the gravity. if not is_on_floor(): velocity += get_gravity() * delta @@ -23,3 +23,10 @@ func _physics_process(delta: float) -> void: velocity.x = move_toward(velocity.x, 0, SPEED) move_and_slide() + + +func _on_hitbox_area_entered(area: Area2D) -> void: + #box event + #laser event + #sticky tape event + pass # Replace with function body. diff --git a/sprites/box.pdn b/sprites/box.pdn new file mode 100644 index 0000000..40f924a Binary files /dev/null and b/sprites/box.pdn differ diff --git a/sprites/box.png b/sprites/box.png new file mode 100644 index 0000000..521dbeb Binary files /dev/null and b/sprites/box.png differ diff --git a/sprites/box.png.import b/sprites/box.png.import new file mode 100644 index 0000000..c340bb5 --- /dev/null +++ b/sprites/box.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyjxtuapxfiip" +path="res://.godot/imported/box.png-88e8c9a9152bfabd2b270e3db2186223.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://sprites/box.png" +dest_files=["res://.godot/imported/box.png-88e8c9a9152bfabd2b270e3db2186223.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