[REPO REFACTOR]: changed to a better git repository structure with branches

This commit is contained in:
2025-11-01 05:41:19 +01:00
parent 40f7b2e4ef
commit a35fbc3f7f
36 changed files with 1548 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

7
Punk n Spray.csproj Normal file
View File

@@ -0,0 +1,7 @@
<Project Sdk="Godot.NET.Sdk/4.4.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>PunknSpray</RootNamespace>
</PropertyGroup>
</Project>

9
Punk n Spray.csproj.old Normal file
View File

@@ -0,0 +1,9 @@
<Project Sdk="Godot.NET.Sdk/4.3.0">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'android' ">net7.0</TargetFramework>
<TargetFramework Condition=" '$(GodotTargetPlatform)' == 'ios' ">net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<RootNamespace>PunknSpray</RootNamespace>
</PropertyGroup>
</Project>

28
Punk n Spray.sln Normal file
View File

@@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35327.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Punk n Spray", "Punk n Spray.csproj", "{C005D5B4-4AA9-4AB5-9302-5894E8C09077}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
ExportDebug|Any CPU = ExportDebug|Any CPU
ExportRelease|Any CPU = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C005D5B4-4AA9-4AB5-9302-5894E8C09077}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C005D5B4-4AA9-4AB5-9302-5894E8C09077}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
{C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
{C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
{C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C89C68FE-281F-4E10-BB9F-924C53E19E35}
EndGlobalSection
EndGlobal

32
art/icons/icon.svg Normal file
View File

@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="127.795" height="127.795" viewBox="0 0 8192 8192">
<metadata><?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?></metadata>
<image id="Capa_2" data-name="Capa 2" x="152" y="1580" width="7888" height="5034" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHsAAABPCAQAAABhJXJPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfoDBMPJR/fOLwQAAAEqklEQVR42u2cX4gVVRzHP3f2tmraHwmUeggsitQ2pSL6syEWbZIoBEGEGLJhgZhIVvYQSWYWRX9YJKLoj+2Gq4aLFJaxWWyalQ+JD2KsrsRmaWu2tbutrbmnh733Nv/O3DPnnrnn3jt+z8OdOXPud85nfmfOnTNz5mZwayqvcRsAgnrGMwoIQCACn3iWgjkwylHuAaCRd5iCQE8v8HKREuuZA2SAjCdR+HQ82/rdX26mPwdgKg0CsLRkn/mR0E9rOOZ0BZ8YRhYIOoH1RpyukkLrHNS+sa+uYCQBaMF3dBhy+pXzQqHna7n1QQO7EkE2nXaFQN+o6fUbxs/n5FKLD3oap/WxB6zjqKelLuiLOK7tc8JhSPNnxYbe4pbC8m6m6hs5ZGyzxNIXTAHgc64twUU4tjliagJfMpEW7irNJmubI7Zm0M2lpZpUWyMHSoeuvkZuSOnEFtXYyA0otdFOpc5hp0jnurRUKZ3YKe3JJ6Xz3B5OY7R7aKq+gWep+ooFDKatkb/NXAbT1pM/wcNjC+lp5IJ72Z5fSUu0u5n9P3R6sNdywL2ali7NR5mWaDuRqzWrf/3Y6WjkZ/3Y4TrDKds1NaozKtitXOOd31H18kU7eLnSz0o2Apfbrmmy2N5zezOP0gdcxqjtmhqVr5G7o/07y2nPLTuSuSLVqkCXlp+s1MbVBWior7Eevt67muV84Bgr2ObJr61YwxF/hmATEwPFZlqfp2IuDXCzHy/LPHaGHJ3aifbPzOWwP9MJha4d7B+YFYSWX6VdaLu+RrSTG8KvNmXYf9iusQG1Mo/Ys5qvo4Vh692Rfio2GVuqBgatV143Pa4LvcR61fXTYl3oO6xXXTf9zd3F8WRd2pW6x8u6Tkp+kpWwR2zXXlv1/uvvONjVe7mSpU4fW+GIlV29HE0au/Ki3c704DgqRHW1FO1VPMCQ0o0uRwVb9uivkrC7WcQ+QK2jrVN5nKnfyD9W+aEwoPeYkYNG6f5eoo28lYX8mDjyCEtodj3RUBlYZJmgjz0p8ltreBCYljD0Xmay0ZOjEu0hBvSx5Y18lEWsBeB0YFsXX8fAGqYnYuur3Bq4QVA82p1Mz7/KGCXZ6b+ON8mQwcFxfTrU8VOhsr6bsLSxmA3crgh9hCZWsSx02yma3Q/hlbFX85Li3ktQq2cIsBKAzxQHDFsYB+wI3bZD+obXvgjH/VyfPDLAu4Vd/kJjLm+7EvRjudJhbxE/FbHH76WOr5cHGeD9QnQmF/I6iiL3uk4DP3ZPkVPk21DH4ywoHzRsRSB41pO3rQh0Bxe4Snux2xhfZI97Qxw3c3E5oeEgwffoP4qEXu0r7cZ+RGGP3/j8/uGh8iJDhieZE8jdKkU+wZ2B0nns/YpvbO7xOHbZuBkS/mhwiwT6Uy4JKT3WE2xQ3udul+Mz5UeWqz0Ueo2kdC+C+2K4d+X8DuX+L6RitCmAfJImSdksz3FTLPdOBII3Km9+1Yc+6M6Il8vjV/6vmK2jbPJeua0z6j2O52mwDRiuDwrIf7LQsLfCOFpVpidW5wcLe7ifY4a9z5ZukZfpzmEYgFdoNA5d0TpQqZ1OksryovJ426r+A3DBO7oCdYbeAAAAAElFTkSuQmCC"/>
<image id="Capa_1" data-name="Capa 1" x="420" y="1948" width="7418" height="4018" xlink:href="data:img/png;base64,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"/>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

37
art/icons/icon.svg.import Normal file
View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bhuvglbn08hsv"
path="res://.godot/imported/icon.svg-15d7e0c3d7b78d6209069300cf608aba.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/icons/icon.svg"
dest_files=["res://.godot/imported/icon.svg-15d7e0c3d7b78d6209069300cf608aba.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cks3q4o02s7gt"
path="res://.godot/imported/Player Crouch-Idle 48x48.png-2db05b226fdfe4176e3f04ceff9d952e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/Player Crouch-Idle 48x48.png"
dest_files=["res://.godot/imported/Player Crouch-Idle 48x48.png-2db05b226fdfe4176e3f04ceff9d952e.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.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wyisbm2pjg2l"
path="res://.godot/imported/Player Idle 48x48.png-e51f8cf98fd6bb46ff4ddcf7384b5208.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/Player Idle 48x48.png"
dest_files=["res://.godot/imported/Player Idle 48x48.png-e51f8cf98fd6bb46ff4ddcf7384b5208.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.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://5j6cf0fssina"
path="res://.godot/imported/PlayerWalk 48x48.png-2a0d3a3308bedabe0cbc50ffff9493a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/PlayerWalk 48x48.png"
dest_files=["res://.godot/imported/PlayerWalk 48x48.png-2a0d3a3308bedabe0cbc50ffff9493a3.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.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0l6m8kd0a36m"
path="res://.godot/imported/player crouch-walk 48x48.png-46ea8ec46171c903770aab4f46bd7940.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/player crouch-walk 48x48.png"
dest_files=["res://.godot/imported/player crouch-walk 48x48.png-46ea8ec46171c903770aab4f46bd7940.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.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://j5lj70ywebv1"
path="res://.godot/imported/player land 48x48.png-49e414010d88de2b6c2bd61e2eb30d0c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/player land 48x48.png"
dest_files=["res://.godot/imported/player land 48x48.png-49e414010d88de2b6c2bd61e2eb30d0c.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.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bva7lbaacnj7a"
path="res://.godot/imported/player new jump 48x48.png-92ebea596c2b8cc6b5849612a4986943.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/player new jump 48x48.png"
dest_files=["res://.godot/imported/player new jump 48x48.png-92ebea596c2b8cc6b5849612a4986943.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.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bmi2lvb6o4hbr"
path="res://.godot/imported/player run 48x48.png-f48d7fd4157521c00ac4b1fb363b5984.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/player run 48x48.png"
dest_files=["res://.godot/imported/player run 48x48.png-f48d7fd4157521c00ac4b1fb363b5984.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.

After

Width:  |  Height:  |  Size: 669 B

View File

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

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b86ypj12qw38q"
path="res://.godot/imported/tilemap-characters.png-e0de1ac861e6a21076b55ecb5ed06f78.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/tilemap-characters.png"
dest_files=["res://.godot/imported/tilemap-characters.png-e0de1ac861e6a21076b55ecb5ed06f78.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
art/sprites/tilemap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cd58nu5mmatvc"
path="res://.godot/imported/tilemap.png-6038b8e4ef25bceda96c5f544ea406f4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/sprites/tilemap.png"
dest_files=["res://.godot/imported/tilemap.png-6038b8e4ef25bceda96c5f544ea406f4.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
fonts/CyberpunkRegular.ttf Normal file

Binary file not shown.

View File

@@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://c5gdximibdn8d"
path="res://.godot/imported/CyberpunkRegular.ttf-1047bb36d19c55a67afa277079201533.fontdata"
[deps]
source_file="res://fonts/CyberpunkRegular.ttf"
dest_files=["res://.godot/imported/CyberpunkRegular.ttf-1047bb36d19c55a67afa277079201533.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
fonts/CyberpunkTitles.ttf Normal file

Binary file not shown.

View File

@@ -0,0 +1,35 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://bdyntrp1j2lux"
path="res://.godot/imported/CyberpunkTitles.ttf-c41249a54df0a82b7535a9a7d82c0a31.fontdata"
[deps]
source_file="res://fonts/CyberpunkTitles.ttf"
dest_files=["res://.godot/imported/CyberpunkTitles.ttf-c41249a54df0a82b7535a9a7d82c0a31.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

70
project.godot Normal file
View File

@@ -0,0 +1,70 @@
; 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="Punk n Spray"
run/main_scene="res://scenes/Main.tscn"
config/features=PackedStringArray("4.4", "C#", "Forward Plus")
config/icon="res://art/icons/icon.svg"
[dotnet]
project/assembly_name="Punk n Spray"
[input]
move_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":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
]
}
move_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":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
]
}
jump={
"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":87,"key_label":0,"unicode":119,"location":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":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
]
}
crouch={
"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
]
}
sprint={
"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":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null)
]
}
run={
"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":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null)
]
}
[layer_names]
2d_physics/layer_1="World"
2d_physics/layer_2="Platforms"
2d_physics/layer_3="Player"
2d_physics/layer_4="Enemies"

265
scenes/Level1.tscn Normal file

File diff suppressed because one or more lines are too long

17
scenes/Main.tscn Normal file
View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://dssr27iktcld"]
[ext_resource type="PackedScene" uid="uid://glgyen0w4614" path="res://scenes/Level1.tscn" id="1_7a2cc"]
[ext_resource type="PackedScene" uid="uid://c5v4a4xjhe832" path="res://scenes/Player.tscn" id="2_ron50"]
[ext_resource type="Script" uid="uid://uvuk2xh0skdi" path="res://src/entities/player/Player.cs" id="3_0bbpv"]
[node name="Main" type="Node"]
[node name="Level1" parent="." instance=ExtResource("1_7a2cc")]
[node name="Player" parent="." instance=ExtResource("2_ron50")]
position = Vector2(143, 492)
script = ExtResource("3_0bbpv")
[node name="Camera2D" type="Camera2D" parent="Player"]
position = Vector2(144, -6)
zoom = Vector2(2.5, 2.5)

548
scenes/Player.tscn Normal file
View File

@@ -0,0 +1,548 @@
[gd_scene load_steps=73 format=3 uid="uid://c5v4a4xjhe832"]
[ext_resource type="Texture2D" uid="uid://5j6cf0fssina" path="res://art/sprites/PlayerWalk 48x48.png" id="2_1hyc4"]
[ext_resource type="Texture2D" uid="uid://bmi2lvb6o4hbr" path="res://art/sprites/player run 48x48.png" id="2_dcgkk"]
[ext_resource type="Texture2D" uid="uid://cks3q4o02s7gt" path="res://art/sprites/Player Crouch-Idle 48x48.png" id="2_gos5p"]
[ext_resource type="Texture2D" uid="uid://0l6m8kd0a36m" path="res://art/sprites/player crouch-walk 48x48.png" id="3_qgfgr"]
[ext_resource type="Texture2D" uid="uid://wyisbm2pjg2l" path="res://art/sprites/Player Idle 48x48.png" id="4_jn0em"]
[ext_resource type="Texture2D" uid="uid://bva7lbaacnj7a" path="res://art/sprites/player new jump 48x48.png" id="5_83okp"]
[ext_resource type="Texture2D" uid="uid://j5lj70ywebv1" path="res://art/sprites/player land 48x48.png" id="6_xc5vd"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_wmiyk"]
radius = 9.0
height = 34.0
[sub_resource type="AtlasTexture" id="AtlasTexture_j0imd"]
atlas = ExtResource("2_gos5p")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_wii8i"]
atlas = ExtResource("2_gos5p")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_p5oe0"]
atlas = ExtResource("2_gos5p")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_y7d15"]
atlas = ExtResource("2_gos5p")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_j76b8"]
atlas = ExtResource("2_gos5p")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_1vjds"]
atlas = ExtResource("2_gos5p")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_daorg"]
atlas = ExtResource("2_gos5p")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ig7od"]
atlas = ExtResource("2_gos5p")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_q7ljo"]
atlas = ExtResource("2_gos5p")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_lo3b1"]
atlas = ExtResource("2_gos5p")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_fwma2"]
atlas = ExtResource("3_qgfgr")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_k5jcu"]
atlas = ExtResource("3_qgfgr")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_en7bm"]
atlas = ExtResource("3_qgfgr")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_o0x6w"]
atlas = ExtResource("3_qgfgr")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_t0gwy"]
atlas = ExtResource("3_qgfgr")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ec8uj"]
atlas = ExtResource("3_qgfgr")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ha12i"]
atlas = ExtResource("3_qgfgr")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_qr6jk"]
atlas = ExtResource("3_qgfgr")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ar6mq"]
atlas = ExtResource("3_qgfgr")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_74g0w"]
atlas = ExtResource("3_qgfgr")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_rk3bd"]
atlas = ExtResource("4_jn0em")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ej1y8"]
atlas = ExtResource("4_jn0em")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_am4c6"]
atlas = ExtResource("4_jn0em")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_nimqo"]
atlas = ExtResource("4_jn0em")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_nn78r"]
atlas = ExtResource("4_jn0em")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_xhu8g"]
atlas = ExtResource("4_jn0em")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_755mi"]
atlas = ExtResource("4_jn0em")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_uupc3"]
atlas = ExtResource("4_jn0em")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ncjm3"]
atlas = ExtResource("4_jn0em")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_jrt43"]
atlas = ExtResource("4_jn0em")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_wykxr"]
atlas = ExtResource("5_83okp")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_5xonh"]
atlas = ExtResource("5_83okp")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_46rgd"]
atlas = ExtResource("5_83okp")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_vj1v7"]
atlas = ExtResource("5_83okp")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_3ikxd"]
atlas = ExtResource("5_83okp")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_l7v7a"]
atlas = ExtResource("5_83okp")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_6dqgy"]
atlas = ExtResource("6_xc5vd")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_maff2"]
atlas = ExtResource("6_xc5vd")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_seuxt"]
atlas = ExtResource("6_xc5vd")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_lu756"]
atlas = ExtResource("6_xc5vd")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_bq8ja"]
atlas = ExtResource("6_xc5vd")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_amwrs"]
atlas = ExtResource("6_xc5vd")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_iq6my"]
atlas = ExtResource("6_xc5vd")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_80aur"]
atlas = ExtResource("6_xc5vd")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_5yntb"]
atlas = ExtResource("6_xc5vd")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_xq23i"]
atlas = ExtResource("2_dcgkk")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_jnjqv"]
atlas = ExtResource("2_dcgkk")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_0fcjb"]
atlas = ExtResource("2_dcgkk")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_cwtxs"]
atlas = ExtResource("2_dcgkk")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_kn4va"]
atlas = ExtResource("2_dcgkk")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_l4vds"]
atlas = ExtResource("2_dcgkk")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_cixgp"]
atlas = ExtResource("2_dcgkk")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_u0274"]
atlas = ExtResource("2_dcgkk")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_gr0nd"]
atlas = ExtResource("2_1hyc4")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_gatpv"]
atlas = ExtResource("2_1hyc4")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_8tylp"]
atlas = ExtResource("2_1hyc4")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_lqdwg"]
atlas = ExtResource("2_1hyc4")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_1s4kw"]
atlas = ExtResource("2_1hyc4")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_inyv3"]
atlas = ExtResource("2_1hyc4")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_me01t"]
atlas = ExtResource("2_1hyc4")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_d6fg5"]
atlas = ExtResource("2_1hyc4")
region = Rect2(336, 0, 48, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_ywr77"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_j0imd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wii8i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_p5oe0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y7d15")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j76b8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1vjds")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_daorg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ig7od")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q7ljo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lo3b1")
}],
"loop": true,
"name": &"crouch_idle",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fwma2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k5jcu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_en7bm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o0x6w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t0gwy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ec8uj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ha12i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qr6jk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ar6mq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_74g0w")
}],
"loop": true,
"name": &"crouch_walk",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_rk3bd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ej1y8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_am4c6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nimqo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nn78r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xhu8g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_755mi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uupc3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ncjm3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jrt43")
}],
"loop": true,
"name": &"idle",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wykxr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5xonh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_46rgd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vj1v7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3ikxd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l7v7a")
}],
"loop": true,
"name": &"jump",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6dqgy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_maff2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_seuxt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lu756")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bq8ja")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_amwrs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_iq6my")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_80aur")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5yntb")
}],
"loop": true,
"name": &"land",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xq23i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jnjqv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0fcjb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cwtxs")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kn4va")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_l4vds")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cixgp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u0274")
}],
"loop": true,
"name": &"run",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_gr0nd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_gatpv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8tylp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lqdwg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1s4kw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_inyv3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_me01t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d6fg5")
}],
"loop": true,
"name": &"walk",
"speed": 6.0
}]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_yho6t"]
texture = ExtResource("2_1hyc4")
texture_region_size = Vector2i(1, 1)
1:0/0 = 0
4:0/0 = 0
7:0/0 = 0
10:0/0 = 0
13:0/0 = 0
16:0/0 = 0
19:0/0 = 0
22:0/0 = 0
1:1/0 = 0
4:1/0 = 0
7:1/0 = 0
8:1/0 = 0
9:1/0 = 0
10:1/0 = 0
11:1/0 = 0
13:1/0 = 0
16:1/0 = 0
18:1/0 = 0
19:1/0 = 0
20:1/0 = 0
21:1/0 = 0
22:1/0 = 0
23:1/0 = 0
1:2/0 = 0
4:2/0 = 0
6:2/0 = 0
7:2/0 = 0
8:2/0 = 0
9:2/0 = 0
10:2/0 = 0
13:2/0 = 0
16:2/0 = 0
18:2/0 = 0
19:2/0 = 0
20:2/0 = 0
21:2/0 = 0
22:2/0 = 0
0:0/0 = 0
2:0/0 = 0
3:0/0 = 0
5:0/0 = 0
6:0/0 = 0
[sub_resource type="TileSet" id="TileSet_etv3c"]
sources/0 = SubResource("TileSetAtlasSource_yho6t")
[node name="Player" type="CharacterBody2D"]
collision_layer = 4
collision_mask = 3
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_wmiyk")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_ywr77")
animation = &"land"
frame = 2
frame_progress = 0.112285
[node name="Area2D" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CapsuleShape2D_wmiyk")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
tile_set = SubResource("TileSet_etv3c")

View File

@@ -0,0 +1,122 @@
using Godot;
using System;
public partial class Player : CharacterBody2D
{
// Constantes
private const float SPEED = 50.0f;
private const float JUMP_VELOCITY = -400.0f;
// Acciones
private bool RUN_ACTION;
private bool JUMP_ACTION;
private bool WALK_ACTION;
private bool WALK_RIGHT;
private bool WALK_LEFT;
private bool CROUCH_ACTION;
// Variables varias
private Vector2 screenSize;
private uint originalCollisionMask;
public override void _Ready()
{
screenSize = GetViewportRect().Size;
originalCollisionMask = CollisionMask;
}
public override void _Process(double delta)
{
// Actualizar acciones
RUN_ACTION = Input.IsActionPressed("run");
JUMP_ACTION = Input.IsActionPressed("jump");
WALK_ACTION = Input.IsActionPressed("move_left") || Input.IsActionPressed("move_right");
WALK_RIGHT = Input.IsActionPressed("move_right");
WALK_LEFT = Input.IsActionPressed("move_left");
CROUCH_ACTION = Input.IsActionPressed("crouch");
var sprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
// Animaciones
sprite.Play();
sprite.FlipV = false;
sprite.FlipH = Velocity.X < 0;
// Movimiento con animaciones
if (Velocity.X != 0)
{
if (RUN_ACTION)
{
if (JUMP_ACTION && !IsOnFloor())
sprite.Animation = "jump";
else
sprite.Animation = "run";
}
else if (WALK_ACTION)
{
if (CROUCH_ACTION)
sprite.Animation = "crouch_walk";
else if (JUMP_ACTION && !IsOnFloor())
sprite.Animation = "jump";
else
sprite.Animation = "walk";
}
}
else // Idle
{
if (CROUCH_ACTION)
sprite.Animation = "crouch_idle";
else if (JUMP_ACTION && !IsOnFloor())
sprite.Animation = "jump";
else
sprite.Animation = "idle";
}
}
public override void _PhysicsProcess(double delta)
{
// Gravedad
if (!IsOnFloor())
Velocity += GetGravity() * (float)delta;
// Saltos
if (Input.IsActionJustPressed("jump") && IsOnFloor())
{
if (Input.IsActionPressed("crouch"))
Velocity = new Vector2(Velocity.X, 0.65f * JUMP_VELOCITY);
else if (Input.IsActionPressed("run"))
Velocity = new Vector2(Velocity.X, 1.15f * JUMP_VELOCITY);
else
Velocity = new Vector2(Velocity.X, JUMP_VELOCITY);
}
// Movimiento lateral
float direction = Input.GetAxis("move_left", "move_right");
if (direction != 0)
{
if (Input.IsActionPressed("run"))
Velocity = new Vector2(direction * 3 * SPEED, Velocity.Y);
else
Velocity = new Vector2(direction * SPEED, Velocity.Y);
}
else
{
Velocity = new Vector2(Mathf.MoveToward(Velocity.X, 0, SPEED), Velocity.Y);
}
// Caída de plataformas
if (IsOnPlatform() && Input.IsActionJustPressed("crouch"))
CollisionMask &= 1;
if (!Input.IsActionPressed("crouch") && CollisionMask != originalCollisionMask)
CollisionMask = originalCollisionMask;
MoveAndSlide();
}
private bool IsOnPlatform()
{
// En tu caso los "plataformas" tienen máscara 3
return IsOnFloor() && CollisionMask == 3;
}
}

View File

@@ -0,0 +1 @@
uid://uvuk2xh0skdi