This commit is contained in:
mrmoi31 2024-07-29 23:06:37 +02:00
commit 2c1eff5a9c
41 changed files with 1163 additions and 0 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

15
.gitignore vendored Normal file
View File

@ -0,0 +1,15 @@
# Godot 4+ specific ignores
.godot/
# Godot-specific ignores
.import/
export.cfg
export_presets.cfg
# Imported translations (automatically generated from CSV files)
*.translation
# Mono-specific ignores
.mono/
data_*/
mono_crash.*.json

BIN
CheatCode.apk Normal file

Binary file not shown.

BIN
CheatCode.apk.idsig Normal file

Binary file not shown.

BIN
assets/arrow_down.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cdyqgw8q4ixfm"
path="res://.godot/imported/arrow_down.png-f57d0d1f5ba548b3982d0fea16d6b091.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/arrow_down.png"
dest_files=["res://.godot/imported/arrow_down.png-f57d0d1f5ba548b3982d0fea16d6b091.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

BIN
assets/arrow_left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://br0of4r3mfawy"
path="res://.godot/imported/arrow_left.png-e21cfddaa3a10d21cb3935a08b616bf1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/arrow_left.png"
dest_files=["res://.godot/imported/arrow_left.png-e21cfddaa3a10d21cb3935a08b616bf1.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

BIN
assets/arrow_right.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ndanhgshr8ah"
path="res://.godot/imported/arrow_right.png-97e73a9c71c3b12ff2cef4a1a36b9cfb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/arrow_right.png"
dest_files=["res://.godot/imported/arrow_right.png-97e73a9c71c3b12ff2cef4a1a36b9cfb.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

BIN
assets/arrow_up.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://byhscsj8m2fsd"
path="res://.godot/imported/arrow_up.png-ebb58454c60e4b5f4ebd0ed45ad8d302.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/arrow_up.png"
dest_files=["res://.godot/imported/arrow_up.png-ebb58454c60e4b5f4ebd0ed45ad8d302.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

BIN
assets/bg.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

34
assets/bg.webp.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkhc3cs7opwpr"
path="res://.godot/imported/bg.webp-5056cfb5afd916cb4b845c209060bb5c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/bg.webp"
dest_files=["res://.godot/imported/bg.webp-5056cfb5afd916cb4b845c209060bb5c.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

Binary file not shown.

View File

@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dt0gtb0q5ix4g"
path="res://.godot/imported/Xolonium-Regular.ttf-9e1b1e206bb38a4f0a7ad7c2dab215c1.fontdata"
[deps]
source_file="res://assets/font/Xolonium-Regular.ttf"
dest_files=["res://.godot/imported/Xolonium-Regular.ttf-9e1b1e206bb38a4f0a7ad7c2dab215c1.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

34
assets/icon.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://drei63665nysg"
path="res://.godot/imported/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/icon.png"
dest_files=["res://.godot/imported/icon.png-b6a7fb2db36edd3d95dc42f1dc8c1c5d.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

BIN
assets/letters.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

34
assets/letters.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://16q552slsggf"
path="res://.godot/imported/letters.png-7c18056e06c3d1c061859c79549a6418.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/letters.png"
dest_files=["res://.godot/imported/letters.png-7c18056e06c3d1c061859c79549a6418.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

Binary file not shown.

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cbye052ud6ap3"
path="res://.godot/imported/House In a Forest Loop.ogg-46e48805c902206db0c6fb0bf4bc4e7d.oggvorbisstr"
[deps]
source_file="res://assets/music/House In a Forest Loop.ogg"
dest_files=["res://.godot/imported/House In a Forest Loop.ogg-46e48805c902206db0c6fb0bf4bc4e7d.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
assets/music/gameover.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://jn8wa38j0knn"
path="res://.godot/imported/gameover.wav-04e3a467c852610fdf2fb137ef749af9.sample"
[deps]
source_file="res://assets/music/gameover.wav"
dest_files=["res://.godot/imported/gameover.wav-04e3a467c852610fdf2fb137ef749af9.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

25
controles.gd Normal file
View File

@ -0,0 +1,25 @@
extends Node
signal up
signal down
signal left
signal right
# Called when the node enters the scene tree for the first time.
func _ready():
pass
func _hide():
$ColorRect.hide()
$Up.hide()
$Down.hide()
$Left.hide()
$Right.hide()
func _show():
$ColorRect.show()
$Up.show()
$Down.show()
$Left.show()
$Right.show()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

84
controles.tscn Normal file
View File

@ -0,0 +1,84 @@
[gd_scene load_steps=7 format=3 uid="uid://ds7l3fhbhb4t6"]
[ext_resource type="Script" path="res://controles.gd" id="1_ims8s"]
[ext_resource type="Texture2D" uid="uid://byhscsj8m2fsd" path="res://assets/arrow_up.png" id="1_mgiis"]
[ext_resource type="Texture2D" uid="uid://cdyqgw8q4ixfm" path="res://assets/arrow_down.png" id="2_1dvjo"]
[ext_resource type="Texture2D" uid="uid://br0of4r3mfawy" path="res://assets/arrow_left.png" id="3_p10pm"]
[ext_resource type="Texture2D" uid="uid://ndanhgshr8ah" path="res://assets/arrow_right.png" id="4_hknr6"]
[sub_resource type="Theme" id="Theme_tlyrp"]
[node name="Controles" type="Node"]
script = ExtResource("1_ims8s")
[node name="ColorRect" type="ColorRect" parent="."]
offset_left = -4.0
offset_top = 405.0
offset_right = 482.0
offset_bottom = 699.0
color = Color(0.127482, 0.255395, 0.415464, 1)
[node name="Up" type="Button" parent="."]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -105.0
offset_top = 410.0
offset_right = 103.0
offset_bottom = 550.0
grow_horizontal = 2
icon = ExtResource("1_mgiis")
icon_alignment = 1
expand_icon = true
[node name="Down" type="Button" parent="."]
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -105.0
offset_top = -166.0
offset_right = 103.0
offset_bottom = -26.0
grow_horizontal = 2
grow_vertical = 0
icon = ExtResource("2_1dvjo")
icon_alignment = 1
expand_icon = true
[node name="Left" type="Button" parent="."]
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = -4.0
offset_top = 50.0
offset_right = 132.0
offset_bottom = 334.0
grow_vertical = 2
icon = ExtResource("3_p10pm")
icon_alignment = 1
expand_icon = true
[node name="Right" type="Button" parent="."]
anchors_preset = 6
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = -134.0
offset_top = 50.0
offset_right = 2.0
offset_bottom = 334.0
grow_horizontal = 0
grow_vertical = 2
theme = SubResource("Theme_tlyrp")
theme_override_colors/font_color = Color(0.054902, 0.133333, 0.231373, 1)
icon = ExtResource("4_hknr6")
icon_alignment = 1
expand_icon = true
[connection signal="pressed" from="Up" to="." method="_on_up_button_pressed"]
[connection signal="pressed" from="Down" to="." method="_on_down_button_pressed"]
[connection signal="pressed" from="Left" to="." method="_on_left_button_pressed"]
[connection signal="pressed" from="Right" to="." method="_on_right_button_pressed"]

36
hud.gd Normal file
View File

@ -0,0 +1,36 @@
extends CanvasLayer
signal start_game
# Called when the node enters the scene tree for the first time.
func _ready():
$Score.hide()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_start_pressed():
$Score.show()
$Start.hide()
$Message.hide()
start_game.emit()
func show_game_over(score):
$Message.text = "Game Over"
$ScoreEnd.text = str(score)
$Message.show()
$MessageTimer.start()
$Score.hide()
# Wait until the MessageTimer has counted down.
await $MessageTimer.timeout
$ScoreEnd.hide()
$Message.text = "Press start"
$Message.show()
# Make a one-shot timer and wait for it to finish.
await get_tree().create_timer(1.0).timeout
$Start.show()
func update_score(score):
$Score.text = str(score)
pass

76
hud.tscn Normal file
View File

@ -0,0 +1,76 @@
[gd_scene load_steps=5 format=3 uid="uid://blbvg25ql261k"]
[ext_resource type="FontFile" uid="uid://dt0gtb0q5ix4g" path="res://assets/font/Xolonium-Regular.ttf" id="1_ks4ve"]
[ext_resource type="Script" path="res://hud.gd" id="1_ydcub"]
[sub_resource type="InputEventAction" id="InputEventAction_8wpai"]
action = &"start_game"
[sub_resource type="Shortcut" id="Shortcut_ben7t"]
events = [SubResource("InputEventAction_8wpai")]
[node name="HUD" type="CanvasLayer"]
script = ExtResource("1_ydcub")
[node name="Score" type="Label" parent="."]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -95.0
offset_top = 30.0
offset_right = -31.0
offset_bottom = 108.0
grow_horizontal = 0
theme_override_fonts/font = ExtResource("1_ks4ve")
theme_override_font_sizes/font_size = 64
text = "0"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Start" type="Button" parent="."]
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -150.0
offset_top = -262.0
offset_right = 150.0
offset_bottom = -62.0
grow_horizontal = 2
grow_vertical = 0
theme_override_fonts/font = ExtResource("1_ks4ve")
theme_override_font_sizes/font_size = 64
shortcut = SubResource("Shortcut_ben7t")
text = "Start"
[node name="Message" type="Label" parent="."]
offset_left = 71.0
offset_top = 222.0
offset_right = 418.0
offset_bottom = 381.0
theme_override_fonts/font = ExtResource("1_ks4ve")
theme_override_font_sizes/font_size = 64
text = "Press start"
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="ScoreEnd" type="Label" parent="."]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -192.5
offset_top = 111.0
offset_right = 192.5
offset_bottom = 199.0
grow_horizontal = 2
theme_override_fonts/font = ExtResource("1_ks4ve")
theme_override_font_sizes/font_size = 64
horizontal_alignment = 1
vertical_alignment = 1
[node name="MessageTimer" type="Timer" parent="."]
wait_time = 2.0
[connection signal="pressed" from="Start" to="." method="_on_start_pressed"]

1
icon.svg Normal file
View File

@ -0,0 +1 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z" fill="#478cbf"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

After

Width:  |  Height:  |  Size: 949 B

37
icon.svg.import Normal file
View File

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxfnqa03qp53c"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

58
mai37C6.tmp Normal file
View File

@ -0,0 +1,58 @@
[gd_scene load_steps=8 format=3 uid="uid://duxyrrga1kx8w"]
[ext_resource type="Texture2D" uid="uid://dkhc3cs7opwpr" path="res://assets/bg.webp" id="1_2rn0s"]
[ext_resource type="Script" path="res://main.gd" id="1_p0ub8"]
[ext_resource type="PackedScene" uid="uid://ds7l3fhbhb4t6" path="res://controles.tscn" id="3_65kl8"]
[ext_resource type="PackedScene" uid="uid://blbvg25ql261k" path="res://hud.tscn" id="4_y2q7v"]
[ext_resource type="PackedScene" uid="uid://dcv3c8wyqyypr" path="res://mob.tscn" id="5_vcyp5"]
[ext_resource type="PackedScene" uid="uid://u4cljlml0btf" path="res://player.tscn" id="6_8s18m"]
[sub_resource type="Curve2D" id="Curve2D_sxben"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 478, -4.19617e-05, 0, 0, 0, 0, 478, 7.99996, 0, 0, 0, 0, -2, 8, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 478, -4.19617e-05)
}
point_count = 5
[node name="Main" type="Node"]
script = ExtResource("1_p0ub8")
mob_scene = ExtResource("5_vcyp5")
[node name="TextureRect" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_2rn0s")
[node name="Controles" parent="." instance=ExtResource("3_65kl8")]
[node name="HUD" parent="." instance=ExtResource("4_y2q7v")]
[node name="Mob" parent="." instance=ExtResource("5_vcyp5")]
position = Vector2(256, 48)
gravity_scale = 0.0
[node name="MobPath" type="Path2D" parent="."]
position = Vector2(426.471, 8)
rotation = 3.14159
scale = Vector2(0.778292, 1)
curve = SubResource("Curve2D_sxben")
[node name="MobSpawn" type="PathFollow2D" parent="MobPath"]
position = Vector2(478, -4.19617e-05)
rotation = 1.5708
[node name="MobTimer" type="Timer" parent="."]
wait_time = 3.0
[node name="StartTimer" type="Timer" parent="."]
one_shot = true
[node name="Player" parent="." instance=ExtResource("6_8s18m")]
[connection signal="start_game" from="HUD" to="." method="new_game"]
[connection signal="body_exited" from="Mob" to="." method="game_over"]
[connection signal="timeout" from="MobTimer" to="." method="_on_mob_timer_timeout"]
[connection signal="timeout" from="StartTimer" to="." method="_on_start_timer_timeout"]
[connection signal="hit" from="Player" to="." method="game_over"]

58
mai5E59.tmp Normal file
View File

@ -0,0 +1,58 @@
[gd_scene load_steps=8 format=3 uid="uid://duxyrrga1kx8w"]
[ext_resource type="Texture2D" uid="uid://dkhc3cs7opwpr" path="res://assets/bg.webp" id="1_2rn0s"]
[ext_resource type="Script" path="res://main.gd" id="1_p0ub8"]
[ext_resource type="PackedScene" uid="uid://ds7l3fhbhb4t6" path="res://controles.tscn" id="3_65kl8"]
[ext_resource type="PackedScene" uid="uid://blbvg25ql261k" path="res://hud.tscn" id="4_y2q7v"]
[ext_resource type="PackedScene" uid="uid://dcv3c8wyqyypr" path="res://mob.tscn" id="5_vcyp5"]
[ext_resource type="PackedScene" uid="uid://u4cljlml0btf" path="res://player.tscn" id="6_8s18m"]
[sub_resource type="Curve2D" id="Curve2D_sxben"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 478, -4.19617e-05, 0, 0, 0, 0, 478, 7.99996, 0, 0, 0, 0, -2, 8, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 478, -4.19617e-05)
}
point_count = 5
[node name="Main" type="Node"]
script = ExtResource("1_p0ub8")
mob_scene = ExtResource("5_vcyp5")
[node name="TextureRect" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_2rn0s")
[node name="Controles" parent="." instance=ExtResource("3_65kl8")]
[node name="HUD" parent="." instance=ExtResource("4_y2q7v")]
[node name="Mob" parent="." instance=ExtResource("5_vcyp5")]
position = Vector2(256, 48)
gravity_scale = 0.0
[node name="MobPath" type="Path2D" parent="."]
position = Vector2(426.471, 8)
rotation = 3.14159
scale = Vector2(0.778292, 1)
curve = SubResource("Curve2D_sxben")
[node name="MobSpawn" type="PathFollow2D" parent="MobPath"]
position = Vector2(478, -4.19617e-05)
rotation = 1.5708
[node name="MobTimer" type="Timer" parent="."]
wait_time = 3.0
[node name="StartTimer" type="Timer" parent="."]
one_shot = true
[node name="Player" parent="." instance=ExtResource("6_8s18m")]
[connection signal="start_game" from="HUD" to="." method="new_game"]
[connection signal="body_exited" from="Mob" to="." method="game_over"]
[connection signal="timeout" from="MobTimer" to="." method="_on_mob_timer_timeout"]
[connection signal="timeout" from="StartTimer" to="." method="_on_start_timer_timeout"]
[connection signal="hit" from="Player" to="." method="game_over"]

58
mai837E.tmp Normal file
View File

@ -0,0 +1,58 @@
[gd_scene load_steps=8 format=3 uid="uid://duxyrrga1kx8w"]
[ext_resource type="Texture2D" uid="uid://dkhc3cs7opwpr" path="res://assets/bg.webp" id="1_2rn0s"]
[ext_resource type="Script" path="res://main.gd" id="1_p0ub8"]
[ext_resource type="PackedScene" uid="uid://ds7l3fhbhb4t6" path="res://controles.tscn" id="3_65kl8"]
[ext_resource type="PackedScene" uid="uid://blbvg25ql261k" path="res://hud.tscn" id="4_y2q7v"]
[ext_resource type="PackedScene" uid="uid://dcv3c8wyqyypr" path="res://mob.tscn" id="5_vcyp5"]
[ext_resource type="PackedScene" uid="uid://u4cljlml0btf" path="res://player.tscn" id="6_8s18m"]
[sub_resource type="Curve2D" id="Curve2D_sxben"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 478, -4.19617e-05, 0, 0, 0, 0, 478, 7.99996, 0, 0, 0, 0, -2, 8, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 478, -4.19617e-05)
}
point_count = 5
[node name="Main" type="Node"]
script = ExtResource("1_p0ub8")
mob_scene = ExtResource("5_vcyp5")
[node name="TextureRect" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_2rn0s")
[node name="Controles" parent="." instance=ExtResource("3_65kl8")]
[node name="HUD" parent="." instance=ExtResource("4_y2q7v")]
[node name="Mob" parent="." instance=ExtResource("5_vcyp5")]
position = Vector2(256, 48)
gravity_scale = 0.0
[node name="MobPath" type="Path2D" parent="."]
position = Vector2(426.471, 8)
rotation = 3.14159
scale = Vector2(0.778292, 1)
curve = SubResource("Curve2D_sxben")
[node name="MobSpawn" type="PathFollow2D" parent="MobPath"]
position = Vector2(478, -4.19617e-05)
rotation = 1.5708
[node name="MobTimer" type="Timer" parent="."]
wait_time = 3.0
[node name="StartTimer" type="Timer" parent="."]
one_shot = true
[node name="Player" parent="." instance=ExtResource("6_8s18m")]
[connection signal="start_game" from="HUD" to="." method="new_game"]
[connection signal="body_exited" from="Mob" to="." method="game_over"]
[connection signal="timeout" from="MobTimer" to="." method="_on_mob_timer_timeout"]
[connection signal="timeout" from="StartTimer" to="." method="_on_start_timer_timeout"]
[connection signal="hit" from="Player" to="." method="game_over"]

58
maiA71E.tmp Normal file
View File

@ -0,0 +1,58 @@
[gd_scene load_steps=8 format=3 uid="uid://duxyrrga1kx8w"]
[ext_resource type="Texture2D" uid="uid://dkhc3cs7opwpr" path="res://assets/bg.webp" id="1_2rn0s"]
[ext_resource type="Script" path="res://main.gd" id="1_p0ub8"]
[ext_resource type="PackedScene" uid="uid://ds7l3fhbhb4t6" path="res://controles.tscn" id="3_65kl8"]
[ext_resource type="PackedScene" uid="uid://blbvg25ql261k" path="res://hud.tscn" id="4_y2q7v"]
[ext_resource type="PackedScene" uid="uid://dcv3c8wyqyypr" path="res://mob.tscn" id="5_vcyp5"]
[ext_resource type="PackedScene" uid="uid://u4cljlml0btf" path="res://player.tscn" id="6_8s18m"]
[sub_resource type="Curve2D" id="Curve2D_sxben"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 478, -4.19617e-05, 0, 0, 0, 0, 478, 7.99996, 0, 0, 0, 0, -2, 8, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 478, -4.19617e-05)
}
point_count = 5
[node name="Main" type="Node"]
script = ExtResource("1_p0ub8")
mob_scene = ExtResource("5_vcyp5")
[node name="TextureRect" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_2rn0s")
[node name="Controles" parent="." instance=ExtResource("3_65kl8")]
[node name="HUD" parent="." instance=ExtResource("4_y2q7v")]
[node name="Mob" parent="." instance=ExtResource("5_vcyp5")]
position = Vector2(256, 48)
gravity_scale = 0.0
[node name="MobPath" type="Path2D" parent="."]
position = Vector2(426.471, 8)
rotation = 3.14159
scale = Vector2(0.778292, 1)
curve = SubResource("Curve2D_sxben")
[node name="MobSpawn" type="PathFollow2D" parent="MobPath"]
position = Vector2(478, -4.19617e-05)
rotation = 1.5708
[node name="MobTimer" type="Timer" parent="."]
wait_time = 3.0
[node name="StartTimer" type="Timer" parent="."]
one_shot = true
[node name="Player" parent="." instance=ExtResource("6_8s18m")]
[connection signal="start_game" from="HUD" to="." method="new_game"]
[connection signal="body_exited" from="Mob" to="." method="game_over"]
[connection signal="timeout" from="MobTimer" to="." method="_on_mob_timer_timeout"]
[connection signal="timeout" from="StartTimer" to="." method="_on_start_timer_timeout"]
[connection signal="hit" from="Player" to="." method="game_over"]

98
main.gd Normal file
View File

@ -0,0 +1,98 @@
extends Node
@export var mob_scene: PackedScene
var score = 0
var min = 1.0
var max = 6.0
var count = 0.0
# Called when the node enters the scene tree for the first time.
func _ready():
get_tree().call_group("Mob", "queue_free")
$Controles._hide()
$Controles/Up.pressed.connect(_on_pressed.bind($Controles/Up))
$Controles/Down.pressed.connect(_on_pressed.bind($Controles/Down))
$Controles/Left.pressed.connect(_on_pressed.bind($Controles/Left))
$Controles/Right.pressed.connect(_on_pressed.bind($Controles/Right))
func _on_pressed(button):
if (button.name == "Up" || Input.is_action_pressed("up")):
kill("up")
elif (button.name == "Down" || Input.is_action_pressed("down")):
kill("down")
elif (button.name == "Left" || Input.is_action_pressed("left")):
kill("left")
elif (button.name == "Right" || Input.is_action_pressed("right")):
kill("right")
else:
print(button.name, " is undefined")
func kill(name):
if $Mob == null:
print("mob non généré")
else :
if $Mob/AnimatedSprite2D.get_animation() == "up" && name == "up":
$Mob.queue_free()
score += 1
elif $Mob/AnimatedSprite2D.get_animation() == "down" && name == "down":
$Mob.queue_free()
score += 1
elif $Mob/AnimatedSprite2D.get_animation() == "left" && name == "left":
$Mob.queue_free()
score += 1
elif $Mob/AnimatedSprite2D.get_animation() == "right" && name == "right":
$Mob.queue_free()
score += 1
$HUD.update_score(score)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func game_over():
$Music.stop()
$MobTimer.stop()
$HUD.show_game_over(score)
$Controles._hide()
$DeathSound.play()
get_tree().call_group("Mob", "queue_free")
func new_game():
score = 0
$Music.play()
$StartTimer.start()
$HUD.update_score(score)
$Controles._show()
get_tree().call_group("Mob", "queue_free")
func _on_mob_timer_timeout():
# Create a new instance of the Mob scene.
var mob = mob_scene.instantiate()
# Choose a random location on Path2D.
var mob_spawn_location = $MobPath/MobSpawn
mob_spawn_location.progress_ratio = randf()
# Set the mob's position to a random location.
mob.position = mob_spawn_location.position
# Choose the velocity for the mob.
var velocity = Vector2(0.0, randf_range(min + count, max + count))
mob.linear_velocity = velocity
count += 10.0
mob.lock_rotation = true
mob.angular_velocity = 0.0
mob.angular_damp = 0.0
get_tree().call_group("Mob", "add_gravity")
# Spawn the mob by adding it to the Main scene.
add_child(mob)
func _on_start_timer_timeout():
$MobTimer.start()
if $MobTimer.wait_time <= 1.0:
$MobTimer.wait_time = 1.0
else :
$MobTimer.wait_time -= 0.01

74
main.tscn Normal file

File diff suppressed because one or more lines are too long

18
mob.gd Normal file
View File

@ -0,0 +1,18 @@
extends RigidBody2D
var mob_types = ["up", "down", "left", "right"]
# Called when the node enters the scene tree for the first time.
func _ready():
var mob_type = mob_types[randi() % mob_types.size()]
$AnimatedSprite2D.play(mob_type)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_visible_on_screen_notifier_2d_screen_exited():
queue_free()
func add_gravity():
gravity_scale += 0.1
mass += 0.1

61
mob.tscn Normal file
View File

@ -0,0 +1,61 @@
[gd_scene load_steps=8 format=3 uid="uid://dcv3c8wyqyypr"]
[ext_resource type="Texture2D" uid="uid://byhscsj8m2fsd" path="res://assets/arrow_up.png" id="1_udfpr"]
[ext_resource type="Script" path="res://mob.gd" id="1_v7kd7"]
[ext_resource type="Texture2D" uid="uid://cdyqgw8q4ixfm" path="res://assets/arrow_down.png" id="2_6f2og"]
[ext_resource type="Texture2D" uid="uid://br0of4r3mfawy" path="res://assets/arrow_left.png" id="3_3kqih"]
[ext_resource type="Texture2D" uid="uid://ndanhgshr8ah" path="res://assets/arrow_right.png" id="4_4b2dt"]
[sub_resource type="SpriteFrames" id="SpriteFrames_krbdm"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_6f2og")
}],
"loop": true,
"name": &"down",
"speed": 1.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_3kqih")
}],
"loop": true,
"name": &"left",
"speed": 1.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("4_4b2dt")
}],
"loop": true,
"name": &"right",
"speed": 1.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_udfpr")
}],
"loop": true,
"name": &"up",
"speed": 1.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mxsp1"]
size = Vector2(141, 147)
[node name="Mob" type="RigidBody2D" groups=["Mob"]]
gravity_scale = 0.3
script = ExtResource("1_v7kd7")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." groups=["Mob"]]
scale = Vector2(5, 5)
sprite_frames = SubResource("SpriteFrames_krbdm")
animation = &"up"
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="." groups=["Mob"]]
[node name="CollisionShape2D" type="CollisionShape2D" parent="." groups=["Mob"]]
shape = SubResource("RectangleShape2D_mxsp1")
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]

15
player.gd Normal file
View File

@ -0,0 +1,15 @@
extends Area2D
signal hit
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_body_entered(body):
hit.emit()

15
player.tscn Normal file
View File

@ -0,0 +1,15 @@
[gd_scene load_steps=3 format=3 uid="uid://u4cljlml0btf"]
[ext_resource type="Script" path="res://player.gd" id="1_pbup1"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dcvb5"]
size = Vector2(483.5, 24)
[node name="Player" type="Area2D"]
script = ExtResource("1_pbup1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(238.25, 396)
shape = SubResource("RectangleShape2D_dcvb5")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

60
project.godot Normal file
View File

@ -0,0 +1,60 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="CheatCode"
run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.2", "Mobile")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=480
window/size/viewport_height=720
window/stretch/mode="canvas_items"
window/handheld/orientation=1
[input]
up={
"deadzone": 0.5,
"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":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
, 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":90,"key_label":0,"unicode":119,"echo":false,"script":null)
]
}
down={
"deadzone": 0.5,
"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":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
, 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":83,"key_label":0,"unicode":115,"echo":false,"script":null)
]
}
left={
"deadzone": 0.5,
"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":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
, 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":81,"key_label":0,"unicode":97,"echo":false,"script":null)
]
}
right={
"deadzone": 0.5,
"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":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
, 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":68,"key_label":0,"unicode":100,"echo":false,"script":null)
]
}
start_game={
"deadzone": 0.5,
"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":4194309,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
[rendering]
renderer/rendering_method="mobile"
textures/vram_compression/import_etc2_astc=true