Compare commits

...
6 Commits
Author SHA1 Message Date
matt b27d83576c Merge pull request 'Adding PhonePhreak Puzzle' (#4) from matt-puzzle-experiment into main
Reviewed-on: #4
Reviewed-by: sam <samstone7103@gmail.com>
2026-10-02 22:51:40 -05:00
bigmstone 092f5bad3e Adding PhonePhreak Puzzle
- Import 10 new MP3 sound files for puzzle audio feedback
- Implement PhonePhreak puzzle scene and game logic script
2026-10-02 21:50:41 -06:00
sam ec7db9faae Merge pull request 'Enemy' (#3) from basic_enemy into main
Reviewed-on: #3
Reviewed-by: matt <matt@mattstone.io>
2026-10-02 22:12:55 -05:00
sam bb9682cd16 Enemy
made a basic enemy that can harm/kill the player.
2026-10-02 21:10:47 -06:00
sam 2315add8ec Merge pull request 'Player Movment' (#2) from sam's_puzzle_expirement into main
Reviewed-on: #2
Reviewed-by: matt <matt@mattstone.io>
2026-10-02 20:44:24 -05:00
sam 978fb7aded Player Movment
implented edited hollow night movement and set up player/test_scene.
2026-10-02 19:46:07 -06:00
37 changed files with 587 additions and 18 deletions

No files matched your search

BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://6plxlmpgut38"
path="res://.godot/imported/0.mp3-424b0f7aeee18ccb8b3568142caab51d.mp3str"
[deps]
source_file="res://assets/sounds/0.mp3"
dest_files=["res://.godot/imported/0.mp3-424b0f7aeee18ccb8b3568142caab51d.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://du02reo6oet7e"
path="res://.godot/imported/1.mp3-8249ffbd379df4568a56660e54b71b58.mp3str"
[deps]
source_file="res://assets/sounds/1.mp3"
dest_files=["res://.godot/imported/1.mp3-8249ffbd379df4568a56660e54b71b58.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cve6byu0v6rpo"
path="res://.godot/imported/2.mp3-c7cf5564039784282e2c058b85f31af4.mp3str"
[deps]
source_file="res://assets/sounds/2.mp3"
dest_files=["res://.godot/imported/2.mp3-c7cf5564039784282e2c058b85f31af4.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bq1q527xfecgm"
path="res://.godot/imported/3.mp3-2a033077c34e7db70ad702adef172a25.mp3str"
[deps]
source_file="res://assets/sounds/3.mp3"
dest_files=["res://.godot/imported/3.mp3-2a033077c34e7db70ad702adef172a25.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bt1gt743xeode"
path="res://.godot/imported/4.mp3-581be5890aecc9069741cd559013e363.mp3str"
[deps]
source_file="res://assets/sounds/4.mp3"
dest_files=["res://.godot/imported/4.mp3-581be5890aecc9069741cd559013e363.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://c1spyvwruvk67"
path="res://.godot/imported/5.mp3-02a6c6a13ed93beee6fb61e49fddc60a.mp3str"
[deps]
source_file="res://assets/sounds/5.mp3"
dest_files=["res://.godot/imported/5.mp3-02a6c6a13ed93beee6fb61e49fddc60a.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://37eyd54u7ygg"
path="res://.godot/imported/6.mp3-39861cd13677b3630721352de1304cde.mp3str"
[deps]
source_file="res://assets/sounds/6.mp3"
dest_files=["res://.godot/imported/6.mp3-39861cd13677b3630721352de1304cde.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://ckhrvslvgjttw"
path="res://.godot/imported/7.mp3-5bfdffca7ad3962d6463b89fca814bcc.mp3str"
[deps]
source_file="res://assets/sounds/7.mp3"
dest_files=["res://.godot/imported/7.mp3-5bfdffca7ad3962d6463b89fca814bcc.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bqvnmvhrtqxpk"
path="res://.godot/imported/8.mp3-2bbbb8fe15d3a34e84b59a93aaccc2ce.mp3str"
[deps]
source_file="res://assets/sounds/8.mp3"
dest_files=["res://.godot/imported/8.mp3-2bbbb8fe15d3a34e84b59a93aaccc2ce.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
BIN
View File
Binary file not shown.
+19
View File
@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://dnpyhwaknblo5"
path="res://.godot/imported/9.mp3-c14e3c8e4465cc4bf59970048975e72f.mp3str"
[deps]
source_file="res://assets/sounds/9.mp3"
dest_files=["res://.godot/imported/9.mp3-c14e3c8e4465cc4bf59970048975e72f.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://xlg0kyp0jhet" uid="uid://xlg0kyp0jhet"
valid=false path="res://.godot/imported/coin.png-c8309bf0f8fb5f3a7d1e96a4eb3f02ce.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/coin.png" source_file="res://assets/sprites/coin.png"
dest_files=["res://.godot/imported/coin.png-c8309bf0f8fb5f3a7d1e96a4eb3f02ce.ctex"]
[params] [params]
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://coer7bk56ksye" uid="uid://coer7bk56ksye"
valid=false path="res://.godot/imported/fruit.png-3735163b668af10c2b35b52cba81b68a.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/fruit.png" source_file="res://assets/sprites/fruit.png"
dest_files=["res://.godot/imported/fruit.png-3735163b668af10c2b35b52cba81b68a.ctex"]
[params] [params]
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bt61g6xdrepd" uid="uid://bt61g6xdrepd"
valid=false path="res://.godot/imported/knight.png-7c67c83d34932624952797d9e971a644.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/knight.png" source_file="res://assets/sprites/knight.png"
dest_files=["res://.godot/imported/knight.png-7c67c83d34932624952797d9e971a644.ctex"]
[params] [params]
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b7cc0lt1g041f" uid="uid://b7cc0lt1g041f"
valid=false path="res://.godot/imported/platforms.png-3869606db457611ed4193d705dc364e4.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/platforms.png" source_file="res://assets/sprites/platforms.png"
dest_files=["res://.godot/imported/platforms.png-3869606db457611ed4193d705dc364e4.ctex"]
[params] [params]
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bfp7d2c8w5d5j" uid="uid://bfp7d2c8w5d5j"
valid=false path="res://.godot/imported/slime_green.png-f6349164bf3a0f5189bb927b97af9c58.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/slime_green.png" source_file="res://assets/sprites/slime_green.png"
dest_files=["res://.godot/imported/slime_green.png-f6349164bf3a0f5189bb927b97af9c58.ctex"]
[params] [params]
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cjx7y6aru1j2v" uid="uid://cjx7y6aru1j2v"
valid=false path="res://.godot/imported/slime_purple.png-26dc5ddef235ce6a400e78e0d532b050.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/slime_purple.png" source_file="res://assets/sprites/slime_purple.png"
dest_files=["res://.godot/imported/slime_purple.png-26dc5ddef235ce6a400e78e0d532b050.ctex"]
[params] [params]
+5 -1
View File
@@ -3,11 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bdtdnto04r82s" uid="uid://bdtdnto04r82s"
valid=false path="res://.godot/imported/world_tileset.png-61a32465f33c3d9d3bfecb75b6485009.ctex"
metadata={
"vram_texture": false
}
[deps] [deps]
source_file="res://assets/sprites/world_tileset.png" source_file="res://assets/sprites/world_tileset.png"
dest_files=["res://.godot/imported/world_tileset.png-61a32465f33c3d9d3bfecb75b6485009.ctex"]
[params] [params]
+53
View File
@@ -20,6 +20,59 @@ config/icon="res://icon.svg"
window/stretch/mode="canvas_items" window/stretch/mode="canvas_items"
window/stretch/aspect="expand" window/stretch/aspect="expand"
[input]
left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
jump={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
dash={
"deadzone": 0.2,
"events": [null, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
up={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
down={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
roll={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
latch={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
twirl={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194329,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
run={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":16,"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":0,"location":0,"echo":false,"script":null)
]
}
[physics] [physics]
3d/physics_engine="Jolt Physics" 3d/physics_engine="Jolt Physics"
+32
View File
@@ -0,0 +1,32 @@
[gd_scene format=3 uid="uid://bjk1cmuogswyd"]
[ext_resource type="Script" uid="uid://2jmspsmp5wpm" path="res://scripts/enemy.gd" id="1_7p1mj"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_aqe1g"]
size = Vector2(168, 167)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_yg5ta"]
size = Vector2(178, 168)
[node name="enemy" type="CharacterBody2D" unique_id=1471932521]
collision_layer = 4
collision_mask = 3
script = ExtResource("1_7p1mj")
[node name="ColorRect" type="ColorRect" parent="." unique_id=519837051]
offset_right = 169.0
offset_bottom = 166.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1567529793]
position = Vector2(85, 82)
shape = SubResource("RectangleShape2D_aqe1g")
[node name="Timer" type="Timer" parent="." unique_id=356300230]
[node name="Area2D" type="Area2D" parent="." unique_id=461696644]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=72940614]
position = Vector2(84, 79)
shape = SubResource("RectangleShape2D_yg5ta")
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
+62
View File
@@ -0,0 +1,62 @@
[gd_scene format=3 uid="uid://cmtdq6tedv1mm"]
[ext_resource type="Script" uid="uid://2ig5okof0vaa" path="res://scripts/UltimatePlatformerController.gd" id="1_3vyb7"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_d2by0"]
size = Vector2(111, 105)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_aqe1g"]
size = Vector2(114.5, 109)
[node name="player" type="CharacterBody2D" unique_id=1596338883]
collision_mask = 6
script = ExtResource("1_3vyb7")
[node name="ColorRect" type="ColorRect" parent="." unique_id=42689460]
offset_right = 111.0
offset_bottom = 105.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=440932344]
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1496788104]
position = Vector2(55.5, 52.5)
shape = SubResource("RectangleShape2D_d2by0")
[node name="Area2D" type="Area2D" parent="." unique_id=680224441]
collision_mask = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D" unique_id=736937610]
position = Vector2(55.25, 52.5)
shape = SubResource("RectangleShape2D_aqe1g")
[node name="health" type="Control" parent="." unique_id=1976293596]
layout_mode = 3
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="ColorRect" type="ColorRect" parent="health" unique_id=110340136]
self_modulate = Color(1, 0, 0, 1)
layout_mode = 0
offset_left = 3.0
offset_top = -42.0
offset_right = 26.0
offset_bottom = -20.0
[node name="ColorRect2" type="ColorRect" parent="health" unique_id=1043497392]
self_modulate = Color(1, 0, 0, 1)
layout_mode = 0
offset_left = 37.0
offset_top = -42.0
offset_right = 60.0
offset_bottom = -20.0
[node name="ColorRect3" type="ColorRect" parent="health" unique_id=175994440]
self_modulate = Color(1, 0, 0, 1)
layout_mode = 0
offset_left = 70.0
offset_top = -42.0
offset_right = 93.0
offset_bottom = -20.0
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
+32
View File
@@ -0,0 +1,32 @@
[gd_scene format=3 uid="uid://btj7tpfvqfelu"]
[ext_resource type="Script" uid="uid://c7fhd1eqlgwr4" path="res://scripts/Phonephreak.gd" id="1_knn0u"]
[ext_resource type="FontFile" uid="uid://dkytywan8eapf" path="res://assets/fonts/PixelOperator8.ttf" id="2_bg4gc"]
[node name="Phonephreak" type="Node2D" unique_id=1830177910]
script = ExtResource("1_knn0u")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="." unique_id=519900134]
[node name="Button0" type="Button" parent="." unique_id=1619377723]
offset_left = 568.0
offset_top = 494.0
offset_right = 668.0
offset_bottom = 594.0
[node name="Label" type="Label" parent="Button0" unique_id=1004291322]
layout_mode = 0
offset_left = 15.0
offset_top = 14.0
offset_right = 85.0
offset_bottom = 94.0
theme_override_fonts/font = ExtResource("2_bg4gc")
theme_override_font_sizes/font_size = 80
text = "0"
[node name="ColorRect" type="ColorRect" parent="Button0" unique_id=582830561]
layout_mode = 0
offset_right = 100.0
offset_bottom = 100.0
mouse_filter = 2
color = Color(1, 1, 1, 0)
+28
View File
@@ -0,0 +1,28 @@
[gd_scene format=3 uid="uid://d1xirc54wud0s"]
[ext_resource type="PackedScene" uid="uid://cmtdq6tedv1mm" path="res://scenes/player.tscn" id="1_g7g4h"]
[ext_resource type="PackedScene" uid="uid://bjk1cmuogswyd" path="res://scenes/enemy.tscn" id="2_j8ivh"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_aqe1g"]
size = Vector2(1116.25, 73)
[node name="test_scene" type="Node2D" unique_id=1970054744]
[node name="ColorRect" type="ColorRect" parent="." unique_id=1255479846]
offset_left = 2.0
offset_top = 530.0
offset_right = 1121.0
offset_bottom = 606.0
[node name="player" parent="." unique_id=1596338883 instance=ExtResource("1_g7g4h")]
position = Vector2(64, 386)
[node name="floor" type="StaticBody2D" parent="." unique_id=866269158]
collision_layer = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="floor" unique_id=1146724072]
position = Vector2(561.125, 569)
shape = SubResource("RectangleShape2D_aqe1g")
[node name="enemy" parent="floor" unique_id=1471932521 instance=ExtResource("2_j8ivh")]
position = Vector2(527, 311)
+76
View File
@@ -0,0 +1,76 @@
extends Node
var Rounds: int = 5
var pieces: Array[int] = []
var guessed: Array[int] = []
var to_play: Array[int] = []
var buttons: Array[Button] = []
const PhoneSounds = [
preload("res://assets/sounds/0.mp3"),
preload("res://assets/sounds/1.mp3"),
preload("res://assets/sounds/2.mp3"),
preload("res://assets/sounds/3.mp3"),
preload("res://assets/sounds/4.mp3"),
preload("res://assets/sounds/5.mp3"),
preload("res://assets/sounds/6.mp3"),
preload("res://assets/sounds/7.mp3"),
preload("res://assets/sounds/8.mp3"),
preload("res://assets/sounds/9.mp3"),
]
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var origin = Vector2(0, 0)
var offset = 125
$Button0.position.x = origin.x + 1 * offset
$Button0.position.y = origin.y + 3 * offset
buttons.append($Button0)
for i in range(0, 9):
var col = i % 3
var row = i / 3
var b: Button = $Button0.duplicate()
var label: Label = b.get_child(0)
label.text = "%s" %(i+1)
var rect: ColorRect = b.get_child(1)
rect.color = Color.from_rgba8(255, 255, 255, 0)
b.position.x = origin.x + col * offset
b.position.y = origin.y + row * offset
b.pressed.connect(_on_button_pressed.bind(i+1))
buttons.append(b)
b.name = "Button%i" %(i)
add_child(b)
$Button0.pressed.connect(_on_button_pressed.bind(0))
for i in Rounds:
var item = randi() % len(PhoneSounds)
pieces.append(item)
to_play.append(item)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if guessed.size() >= pieces.size():
if guessed == pieces:
print("Got it")
else:
print("Nope")
if !$AudioStreamPlayer2D.playing and !to_play.is_empty():
actuate_button(to_play.pop_front())
for b in buttons:
var rect: ColorRect = b.get_child(1)
if rect.color.a8 != 0:
rect.color = Color.from_rgba8(255, 255, 255, rect.color.a8 - 5)
func _on_button_pressed(button: int) -> void:
guessed.append(button)
actuate_button(button)
func actuate_button(button: int) -> void:
var rect: ColorRect = buttons[button].get_child(1)
rect.color = Color.from_rgba8(255, 255, 255, 255)
$AudioStreamPlayer2D.stream = PhoneSounds[button]
$AudioStreamPlayer2D.play()
+1
View File
@@ -0,0 +1 @@
uid://c7fhd1eqlgwr4
+21 -11
View File
@@ -10,15 +10,15 @@ class_name PlatformerController2D
#2. Animations are very primitive. To make full use of your custom art, you may want to slightly change the code for the animations #2. Animations are very primitive. To make full use of your custom art, you may want to slightly change the code for the animations
@export_category("Necesary Child Nodes") @export_category("Necesary Child Nodes")
@export var PlayerSprite: AnimatedSprite2D @onready var PlayerSprite = $AnimatedSprite2D
@export var PlayerCollider: CollisionShape2D @onready var PlayerCollider = $CollisionShape2D
#INFO HORIZONTAL MOVEMENT #INFO HORIZONTAL MOVEMENT
@export_category("L/R Movement") @export_category("L/R Movement")
##The max speed your player will move ##The max speed your player will move
@export_range(50, 500) var maxSpeed: float = 200.0 @export_range(50, 500) var maxSpeed: float = 500
##How fast your player will reach max speed from rest (in seconds) ##How fast your player will reach max speed from rest (in seconds)
@export_range(0, 4) var timeToReachMaxSpeed: float = 0.2 @export_range(0, 4) var timeToReachMaxSpeed: float = 0
##How fast your player will reach zero speed from max speed (in seconds) ##How fast your player will reach zero speed from max speed (in seconds)
@export_range(0, 4) var timeToReachZeroSpeed: float = 0.2 @export_range(0, 4) var timeToReachZeroSpeed: float = 0.2
##If true, player will instantly move and switch directions. Overrides the "timeToReach" variables, setting them to 0. ##If true, player will instantly move and switch directions. Overrides the "timeToReach" variables, setting them to 0.
@@ -29,15 +29,15 @@ class_name PlatformerController2D
#INFO JUMPING #INFO JUMPING
@export_category("Jumping and Gravity") @export_category("Jumping and Gravity")
##The peak height of your player's jump ##The peak height of your player's jump
@export_range(0, 20) var jumpHeight: float = 2.0 @export_range(0, 20) var jumpHeight: float = 4
##How many jumps your character can do before needing to touch the ground again. Giving more than 1 jump disables jump buffering and coyote time. ##How many jumps your character can do before needing to touch the ground again. Giving more than 1 jump disables jump buffering and coyote time.
@export_range(0, 4) var jumps: int = 1 @export_range(0, 4) var jumps: int = 2
##The strength at which your character will be pulled to the ground. ##The strength at which your character will be pulled to the ground.
@export_range(0, 100) var gravityScale: float = 20.0 @export_range(0, 100) var gravityScale: float = 30
##The fastest your player can fall ##The fastest your player can fall
@export_range(0, 1000) var terminalVelocity: float = 500.0 @export_range(0, 1000) var terminalVelocity: float = 700
##Your player will move this amount faster when falling providing a less floaty jump curve. ##Your player will move this amount faster when falling providing a less floaty jump curve.
@export_range(0.5, 3) var descendingGravityFactor: float = 1.3 @export_range(0.5, 3) var descendingGravityFactor: float = 2
##Enabling this toggle makes it so that when the player releases the jump key while still ascending, their vertical velocity will cut by the height cut, providing variable jump height. ##Enabling this toggle makes it so that when the player releases the jump key while still ascending, their vertical velocity will cut by the height cut, providing variable jump height.
@export var shortHopAkaVariableJumpHeight: bool = true @export var shortHopAkaVariableJumpHeight: bool = true
##How much the jump height is cut by. ##How much the jump height is cut by.
@@ -138,7 +138,7 @@ var gravityActive: bool = true
var dashing: bool = false var dashing: bool = false
var dashCount: int var dashCount: int
var rolling: bool = false var rolling: bool = false
var death_counter = 3
var twoWayDashHorizontal var twoWayDashHorizontal
var twoWayDashVertical var twoWayDashVertical
var eightWayDash var eightWayDash
@@ -159,7 +159,7 @@ var wasLatched
var crouching var crouching
var groundPounding var groundPounding
var anim var anim = PlayerSprite
var col var col
var animScaleLock : Vector2 var animScaleLock : Vector2
@@ -254,6 +254,8 @@ func _updateData():
func _process(_delta): func _process(_delta):
#INFO animations #INFO animations
#directions #directions
if death_counter == 0:
get_tree().quit()
if is_on_wall() and !is_on_floor() and latch and wallLatching and ((wallLatchingModifer and latchHold) or !wallLatchingModifer): if is_on_wall() and !is_on_floor() and latch and wallLatching and ((wallLatchingModifer and latchHold) or !wallLatchingModifer):
latched = true latched = true
else: else:
@@ -325,6 +327,10 @@ func _process(_delta):
func _physics_process(delta): func _physics_process(delta):
if death_counter == 2:
$health/ColorRect3.hide()
elif death_counter == 1:
$health/ColorRect2.hide()
if !dset: if !dset:
gdelta = delta gdelta = delta
dset = true dset = true
@@ -674,3 +680,7 @@ func _endGroundPound():
func _placeHolder(): func _placeHolder():
print("") print("")
func _on_area_2d_body_entered(body: Node2D) -> void:
death_counter -= 1
+26
View File
@@ -0,0 +1,26 @@
extends CharacterBody2D
var SPEED = Vector2(5, 0)
const JUMP_VELOCITY = -400.0
func _ready() -> void:
$Timer.start()
func _physics_process(delta: float) -> void:
velocity += get_gravity() * delta
move_and_slide()
patrol()
func patrol():
position += SPEED
func _on_timer_timeout() -> void:
SPEED = -SPEED
$Timer.start()
+1
View File
@@ -0,0 +1 @@
uid://2jmspsmp5wpm