diff --git a/dodge/.editorconfig b/dodge/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/dodge/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/dodge/.gitattributes b/dodge/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/dodge/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/dodge/.gitignore b/dodge/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/dodge/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/dodge/art/House In a Forest Loop.ogg b/dodge/art/House In a Forest Loop.ogg new file mode 100644 index 0000000..ece3640 Binary files /dev/null and b/dodge/art/House In a Forest Loop.ogg differ diff --git a/dodge/art/House In a Forest Loop.ogg.import b/dodge/art/House In a Forest Loop.ogg.import new file mode 100644 index 0000000..5e5b4ff --- /dev/null +++ b/dodge/art/House In a Forest Loop.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dgvsa3qaer126" +path="res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr" + +[deps] + +source_file="res://art/House In a Forest Loop.ogg" +dest_files=["res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/dodge/art/enemyFlyingAlt_1.png b/dodge/art/enemyFlyingAlt_1.png new file mode 100644 index 0000000..1ef132f Binary files /dev/null and b/dodge/art/enemyFlyingAlt_1.png differ diff --git a/dodge/art/enemyFlyingAlt_1.png.import b/dodge/art/enemyFlyingAlt_1.png.import new file mode 100644 index 0000000..d905abc --- /dev/null +++ b/dodge/art/enemyFlyingAlt_1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4q2xg7ghmu0u" +path="res://.godot/imported/enemyFlyingAlt_1.png-559f599b16c69b112c1b53f6332e9489.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/enemyFlyingAlt_1.png" +dest_files=["res://.godot/imported/enemyFlyingAlt_1.png-559f599b16c69b112c1b53f6332e9489.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/enemyFlyingAlt_2.png b/dodge/art/enemyFlyingAlt_2.png new file mode 100644 index 0000000..a50f70a Binary files /dev/null and b/dodge/art/enemyFlyingAlt_2.png differ diff --git a/dodge/art/enemyFlyingAlt_2.png.import b/dodge/art/enemyFlyingAlt_2.png.import new file mode 100644 index 0000000..eebf122 --- /dev/null +++ b/dodge/art/enemyFlyingAlt_2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://biqy7mqwcxgy1" +path="res://.godot/imported/enemyFlyingAlt_2.png-31dc7310eda6e1b721224f3cd932c076.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/enemyFlyingAlt_2.png" +dest_files=["res://.godot/imported/enemyFlyingAlt_2.png-31dc7310eda6e1b721224f3cd932c076.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/enemySwimming_1.png b/dodge/art/enemySwimming_1.png new file mode 100644 index 0000000..9a79114 Binary files /dev/null and b/dodge/art/enemySwimming_1.png differ diff --git a/dodge/art/enemySwimming_1.png.import b/dodge/art/enemySwimming_1.png.import new file mode 100644 index 0000000..672765f --- /dev/null +++ b/dodge/art/enemySwimming_1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4bdmsm2sb3mo" +path="res://.godot/imported/enemySwimming_1.png-dd0e11759dc3d624c8a704f6e98a3d80.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/enemySwimming_1.png" +dest_files=["res://.godot/imported/enemySwimming_1.png-dd0e11759dc3d624c8a704f6e98a3d80.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/enemySwimming_2.png b/dodge/art/enemySwimming_2.png new file mode 100644 index 0000000..f81aade Binary files /dev/null and b/dodge/art/enemySwimming_2.png differ diff --git a/dodge/art/enemySwimming_2.png.import b/dodge/art/enemySwimming_2.png.import new file mode 100644 index 0000000..597c004 --- /dev/null +++ b/dodge/art/enemySwimming_2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmku4evhd6211" +path="res://.godot/imported/enemySwimming_2.png-4c0cbc0732264c4ea3290340bd4a0a62.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/enemySwimming_2.png" +dest_files=["res://.godot/imported/enemySwimming_2.png-4c0cbc0732264c4ea3290340bd4a0a62.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/enemyWalking_1.png b/dodge/art/enemyWalking_1.png new file mode 100644 index 0000000..9ad7aab Binary files /dev/null and b/dodge/art/enemyWalking_1.png differ diff --git a/dodge/art/enemyWalking_1.png.import b/dodge/art/enemyWalking_1.png.import new file mode 100644 index 0000000..c6c2c04 --- /dev/null +++ b/dodge/art/enemyWalking_1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0r3ayjjpeayb" +path="res://.godot/imported/enemyWalking_1.png-5af6eedbe61b701677d490ffdc1e6471.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/enemyWalking_1.png" +dest_files=["res://.godot/imported/enemyWalking_1.png-5af6eedbe61b701677d490ffdc1e6471.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/enemyWalking_2.png b/dodge/art/enemyWalking_2.png new file mode 100644 index 0000000..c9e233e Binary files /dev/null and b/dodge/art/enemyWalking_2.png differ diff --git a/dodge/art/enemyWalking_2.png.import b/dodge/art/enemyWalking_2.png.import new file mode 100644 index 0000000..09d8901 --- /dev/null +++ b/dodge/art/enemyWalking_2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8uhf1xx0kuqy" +path="res://.godot/imported/enemyWalking_2.png-67c480ed60c35e95f5acb0436246b935.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/enemyWalking_2.png" +dest_files=["res://.godot/imported/enemyWalking_2.png-67c480ed60c35e95f5acb0436246b935.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/gameover.wav b/dodge/art/gameover.wav new file mode 100644 index 0000000..77f865a Binary files /dev/null and b/dodge/art/gameover.wav differ diff --git a/dodge/art/gameover.wav.import b/dodge/art/gameover.wav.import new file mode 100644 index 0000000..eed1b69 --- /dev/null +++ b/dodge/art/gameover.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cr0k6fj4op4kg" +path="res://.godot/imported/gameover.wav-98c95c744b35280048c2bd093cf8a356.sample" + +[deps] + +source_file="res://art/gameover.wav" +dest_files=["res://.godot/imported/gameover.wav-98c95c744b35280048c2bd093cf8a356.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=2 diff --git a/dodge/art/playerGrey_up1.png b/dodge/art/playerGrey_up1.png new file mode 100644 index 0000000..5596dbc Binary files /dev/null and b/dodge/art/playerGrey_up1.png differ diff --git a/dodge/art/playerGrey_up1.png.import b/dodge/art/playerGrey_up1.png.import new file mode 100644 index 0000000..b06b524 --- /dev/null +++ b/dodge/art/playerGrey_up1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://twyr3m3mqj74" +path="res://.godot/imported/playerGrey_up1.png-6bd114d0a6beac91f48e3a7314d44564.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/playerGrey_up1.png" +dest_files=["res://.godot/imported/playerGrey_up1.png-6bd114d0a6beac91f48e3a7314d44564.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/playerGrey_up2.png b/dodge/art/playerGrey_up2.png new file mode 100644 index 0000000..07c63b8 Binary files /dev/null and b/dodge/art/playerGrey_up2.png differ diff --git a/dodge/art/playerGrey_up2.png.import b/dodge/art/playerGrey_up2.png.import new file mode 100644 index 0000000..537d6b7 --- /dev/null +++ b/dodge/art/playerGrey_up2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vdvw5mdy2dsi" +path="res://.godot/imported/playerGrey_up2.png-d6aba85f5f2675ebc7045efa7552ee79.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/playerGrey_up2.png" +dest_files=["res://.godot/imported/playerGrey_up2.png-d6aba85f5f2675ebc7045efa7552ee79.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/playerGrey_walk1.png b/dodge/art/playerGrey_walk1.png new file mode 100644 index 0000000..6145887 Binary files /dev/null and b/dodge/art/playerGrey_walk1.png differ diff --git a/dodge/art/playerGrey_walk1.png.import b/dodge/art/playerGrey_walk1.png.import new file mode 100644 index 0000000..61ca028 --- /dev/null +++ b/dodge/art/playerGrey_walk1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d30i17te0nve0" +path="res://.godot/imported/playerGrey_walk1.png-c4773fe7a7bf85d7ab732eb4458c2742.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/playerGrey_walk1.png" +dest_files=["res://.godot/imported/playerGrey_walk1.png-c4773fe7a7bf85d7ab732eb4458c2742.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/art/playerGrey_walk2.png b/dodge/art/playerGrey_walk2.png new file mode 100644 index 0000000..3a699a9 Binary files /dev/null and b/dodge/art/playerGrey_walk2.png differ diff --git a/dodge/art/playerGrey_walk2.png.import b/dodge/art/playerGrey_walk2.png.import new file mode 100644 index 0000000..b16cbb1 --- /dev/null +++ b/dodge/art/playerGrey_walk2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8rmp6koh2moy" +path="res://.godot/imported/playerGrey_walk2.png-34d2d916366100182d08037c51884043.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/playerGrey_walk2.png" +dest_files=["res://.godot/imported/playerGrey_walk2.png-34d2d916366100182d08037c51884043.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/fonts/FONTLOG.txt b/dodge/fonts/FONTLOG.txt new file mode 100644 index 0000000..826c7d8 --- /dev/null +++ b/dodge/fonts/FONTLOG.txt @@ -0,0 +1,253 @@ +Please distribute this file along with the Xolonium fonts when possible. + + +Source + + Find the sourcefiles of Xolonium at + + + +Credits + + Xolonium is created with FontForge , + Inkscape , Python , and + FontTools . + + It originated as a custom font for the open-source + game Xonotic . With many thanks to the + Xonotic community for your support. + + +Supported OpenType features + + case Provides case sensitive placement of punctuation, + brackets, and math symbols for uppercase text. + frac Replaces number/number sequences with diagonal fractions. + Numbers that touch a slash should not exceed 10 digits. + kern Provides kerning for Latin, Greek, and Cyrillic scripts. + locl Dutch: Replaces j with a stressed version if it follows í. + Sami: Replaces n-form Eng with the preferred N-form version. + Romanian and Moldovan: Replaces ŞşŢţ with the preferred ȘșȚț. + pnum Replaces monospaced digits with proportional versions. + sinf Replaces digits with scientific inferiors below the baseline. + subs Replaces digits with subscript versions on the baseline. + sups Replaces digits with superscript versions. + zero Replaces zero with a slashed version. + + +Supported glyph sets + + Adobe Latin 3 + OpenType W1G + ISO 8859-1 Western European + ISO 8859-2 Central European + ISO 8859-3 South European + ISO 8859-4 North European + ISO 8859-5 Cyrillic + ISO 8859-7 Greek + ISO 8859-9 Turkish + ISO 8859-10 Nordic + ISO 8859-13 Baltic Rim + ISO 8859-14 Celtic + ISO 8859-15 Western European + ISO 8859-16 South-Eastern European + + +Available glyphs + + !"#$%&'()*+,-./0123456789:;<=>? + @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ + `abcdefghijklmnopqrstuvwxyz{|}~ + +  ¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿ + ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß + àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ + ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğ + ĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľ + ĿŀŁłŃńŅņŇňŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞş + ŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž + ƒǺǻǼǽǾǿȘșȚțȷ + + ˆˇˉ˘˙˚˛˜˝ + + ͺ;΄΅Ά·ΈΉΊΌΎΏΐ + ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰ + αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ + + ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОП + РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп + рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџ + ѢѣѲѳѴѵҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩ + ҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽӀӁӂӇӈӋӌӏӐӑӒӓ + ӔӕӖӗӘәӜӝӞӟӠӡӢӣӤӥӦӧӨөӮӯӰӱӲӳӴӵӶӷӸӹ + Ԥԥ + + ḂḃḊḋḞḟṀṁṖṗṠṡṪṫẀẁẂẃẄẅẞỲỳ + +      ‒–—―‘’‚‛“”„‟†‡•…‰′″‹›‽‾⁄ + ⁰⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ + ₤₦₩₫€₯₱₹₺₽₿ + ℅ℓ№℗™Ω℮ + ⅛⅜⅝⅞ + ←↑→↓ + ∂∆∏∑−∕∙√∞∟∫≈≠≤≥ + ⌖ + ■▬▮▰▲▶▼◀◆◊●◢◣◤◥ + ☄★☠☢☣⚙⚛⚠⚡⛔ + ❇❈❌❤❰❱❲❳ + fffiflffiffl + 🌌🌍🌎🌏👽💣🔥🔫 + 😁😃😄😆😇😈😉😊😎😐😒😕😘 + 😛😝😞😟😠😣😭😮😲😴😵 + 🚀 + + +Debugging glyphs + +  U+EFFD Font version +  U+F000 Font hinting indicator + + +Changelog + + Xolonium 4.1 2016-11-22 Severin Meyer + Reverted frac OpenType feature to a more stable implementation + + Xolonium 4.0 2016-10-08 Severin Meyer + Decreased width of most glyphs + Thinner vertical stems in Xolonium-Regular + Thicker horizontal stems in Xolonium-Bold + Revised diagonal stems + Lowered middle bars + Revised diacritical bars + Added glyphs: + ӏẞ₿ + U+2007 U+2008 U+2009 U+200A U+202F + U+EFFD U+F000 + Revised glyphs: + $&,JKQRXkwxy~¢¤ßǻ˜ζκλμξφЖУжћѴѵ∕₱₺₦₩€ℓ№≈ffffiffl + ❤🌍🌎🌏😁😄😇😈😉😊😘😭😮😴🚀 + Removed uncommon glyphs: + ʼnſʼҌҍҎҏҾҿӃӄӇӈӚӛӪӫӬӭ + U+0312 U+0313 U+0326 + Simplified OpenType features pnum, zero, and case + Removed OpenType feature dlig + Revised vertical metrics + Merged outlines of composite glyphs in otf version + Added ttf version with custom outlines and instructions + Added woff and woff2 version + + Xolonium 3.1 2015-06-10 Severin Meyer + Added currency glyphs: + ₦₩₫₱₹₺₽ + Revised glyph: + ₯ + Relicensed public release under the SIL Open Font License 1.1 + + Xolonium 3.0 2015-05-04 Severin Meyer + Decreased width of glyphs + Decreased descender height + Increased height of super/subscript glyphs + Revised width of dashes, underscore, and overscore + Sharper bends with more circular proportions + Decreased stroke thickness of mathematical glyphs + Revised diacritical marks + Revised diacritical bars + Revised Cyrillic hooks + Revised glyphs: + GQRYjmuwßŊŒſƒǻfffiffiffl + ΞΨΩδζιξπςστυφω + ЉЄДЛУЭЯбдлэяєљђєћѢѣҨҩҼҽӃӄӘә + #$&'()*,/69?@[]{}~¡£¤¥§©®¿ + ‹›₤€₯ℓ№℗℮←↑→↓∂∏∑∞≈▰☄❈❰❱❲❳😝 + Raised vertical position of mathematical glyphs + Unified advance width of numeral and monetary glyphs + Unified advance width of mathematical glyphs + Revised bearings + Rewrote kern feature + Bolder Xolonium-Bold with improved proportions + Updated glyph names to conform to the AGLFN 1.7 + Revised hints and PS Private Dictionary + Added glyphs: + ӶӷԤԥ + Added OpenType features: + case frac liga locl pnum sinf subs sups zero + + Xolonium 2.4 2014-12-23 Severin Meyer + Added dingbats: + ⛔💣🔥 + Revised size and design of emoticons + Revised dingbats: + ⌖☄☠☣⚙⚛⚠⚡❇❈🌌🌍🌎🌏🔫 + Removed dingbat: + 💥 + + Xolonium 2.3 2014-08-14 Severin Meyer + Bugfixed ε and έ, thanks to bowzee for the feedback + + Xolonium 2.2 2014-03-01 Severin Meyer + Added dingbats: + ⌖◆●❌💥 + Revised dingbats: + •←↑→↓◊☄★☠☣⚙⚛⚠⚡❇❈❤🌌🌍🌎🌏👽🔫🚀 + Removed dingbats: + ♻✪💡📡🔋🔧🔭 + + Xolonium 2.1 2013-10-20 Severin Meyer + Added dingbats: + ←↑→↓❰❱❲❳■▬▮▰▲▶▼◀◢◣◤◥ + ☄★☠☢☣♻⚙⚛⚠⚡✪❇❈❤ + 🌌🌍🌎🌏👽💡📡🔋🔧🔫🔭🚀 + 😁😃😄😆😇😈😉😊😎😐😒😕 + 😘😛😝😞😟😠😣😭😮😲😴😵 + + Xolonium 2.0.1 2013-07-12 Severin Meyer + Reorganised and simplified files + + Xolonium 2.0 2012-08-11 Severin Meyer + Revised bends + Revised thickness of uppercase diagonal stems + Revised diacritical marks + Revised hints and PS Private Dictionary + Revised glyphs: + *1469@DPRly{}§©®¶ÐÞƒΘΞαεζνξνυЄЉЊ + ЏБЗЛУЧЪЫЬЭЯбзлчъыьэяєљњџ•€∂∙√∞∫≠ + Completed glyph sets: + Adobe Latin 3 + OpenType World Glyph Set 1 (W1G) + Ghostscript Standard (ghostscript-fonts-std-8.11) + Added OpenType kern feature + Added Xolonium-Bold + + Xolonium 1.2 2011-02-12 Severin Meyer + Revised glyphs: + D·Ðı + Completed glyph sets: + ISO 8859-7 (Greek) + Unicode Latin Extended-A block + Added glyphs: + †‡•…‰⁄™∂∑−√∞≠≤≥ + + Xolonium 1.1 2011-01-17 Severin Meyer + Revised placement of cedilla and ogonek in accented glyphs + Revised glyphs: + ,;DKTjkvwxy¥§Ð˛€ + Completed glyph sets: + ISO 8859-2 (Central European) + ISO 8859-3 (South European, Esperanto) + ISO 8859-4 (North European) + ISO 8859-5 (Cyrillic) + ISO 8859-9 (Turkish) + ISO 8859-10 (Nordic) + ISO 8859-13 (Baltic Rim) + ISO 8859-14 (Celtic) + ISO 8859-16 (South-Eastern European) + Added glyphs: + ȷʼ̒ ЀЍѐѝ‒–—‘’‚‛“”„‟‹› + + Xolonium 1.0 2011-01-04 Severin Meyer + Completed glyph sets: + ISO 8859-1 (Western European) + ISO 8859-15 (Western European) + Added glyphs: + ĄĆĘŁŃŚŹŻąćęłńśźżıˆˇ˙˚˛˜ diff --git a/dodge/fonts/LICENSE.txt b/dodge/fonts/LICENSE.txt new file mode 100644 index 0000000..cd6cd46 --- /dev/null +++ b/dodge/fonts/LICENSE.txt @@ -0,0 +1,94 @@ +Copyright 2011-2016 Severin Meyer , +with Reserved Font Name Xolonium. + +This Font Software is licensed under the SIL Open Font License, +Version 1.1. This license is copied below, and is also available +with a FAQ at + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/dodge/fonts/Xolonium-Regular.ttf b/dodge/fonts/Xolonium-Regular.ttf new file mode 100644 index 0000000..031d627 Binary files /dev/null and b/dodge/fonts/Xolonium-Regular.ttf differ diff --git a/dodge/fonts/Xolonium-Regular.ttf.import b/dodge/fonts/Xolonium-Regular.ttf.import new file mode 100644 index 0000000..4ef253e --- /dev/null +++ b/dodge/fonts/Xolonium-Regular.ttf.import @@ -0,0 +1,36 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://col2dlmx64bnf" +path="res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e2bb73fba.fontdata" + +[deps] + +source_file="res://fonts/Xolonium-Regular.ttf" +dest_files=["res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e2bb73fba.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 +modulate_color_glyphs=false +hinting=1 +subpixel_positioning=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/dodge/hud.gd b/dodge/hud.gd new file mode 100644 index 0000000..abf0091 --- /dev/null +++ b/dodge/hud.gd @@ -0,0 +1,39 @@ +extends CanvasLayer + +# Notifies `Main` node that the button has been pressed +signal start_game + +func show_message(text): + $Message.text = text + $Message.show() + $MessageTimer.start() + +func show_game_over(): + show_message("Game Over") + # Wait until the MessageTimer has counted down. + await $MessageTimer.timeout + + $Message.text = "Dodge the Creeps!" + $Message.show() + # Make a one-shot timer and wait for it to finish. + await get_tree().create_timer(1.0).timeout + $StartButton.show() + +func update_score(score): + $ScoreLabel.text = str(score) + +func _on_start_button_pressed(): + $StartButton.hide() + start_game.emit() + +func _on_message_timer_timeout(): + $Message.hide() + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/dodge/hud.gd.uid b/dodge/hud.gd.uid new file mode 100644 index 0000000..50d556d --- /dev/null +++ b/dodge/hud.gd.uid @@ -0,0 +1 @@ +uid://bm3hot0cb2ls8 diff --git a/dodge/hud.tscn b/dodge/hud.tscn new file mode 100644 index 0000000..3ab726b --- /dev/null +++ b/dodge/hud.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=3 format=3 uid="uid://cql0s0a26rpks"] + +[ext_resource type="Script" uid="uid://bm3hot0cb2ls8" path="res://hud.gd" id="1_64ctp"] +[ext_resource type="FontFile" uid="uid://col2dlmx64bnf" path="res://fonts/Xolonium-Regular.ttf" id="2_8sq4i"] + +[node name="HUD" type="CanvasLayer"] +script = ExtResource("1_64ctp") + +[node name="ScoreLabel" type="Label" parent="."] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -22.5 +offset_right = 22.5 +offset_bottom = 78.0 +grow_horizontal = 2 +theme_override_fonts/font = ExtResource("2_8sq4i") +theme_override_font_sizes/font_size = 64 +text = "0" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Message" type="Label" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -240.0 +offset_top = -120.0 +offset_right = 240.0 +offset_bottom = 120.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_fonts/font = ExtResource("2_8sq4i") +theme_override_font_sizes/font_size = 64 +text = "Dodge the Creeps!" +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 2 + +[node name="StartButton" type="Button" parent="."] +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -100.0 +offset_top = -140.0 +offset_right = 100.0 +offset_bottom = -40.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_fonts/font = ExtResource("2_8sq4i") +theme_override_font_sizes/font_size = 64 +text = "Start" + +[node name="MessageTimer" type="Timer" parent="."] +wait_time = 2.0 +one_shot = true + +[connection signal="pressed" from="StartButton" to="." method="_on_start_button_pressed"] +[connection signal="timeout" from="MessageTimer" to="." method="_on_message_timer_timeout"] diff --git a/dodge/icon.svg b/dodge/icon.svg new file mode 100644 index 0000000..c6bbb7d --- /dev/null +++ b/dodge/icon.svg @@ -0,0 +1 @@ + diff --git a/dodge/icon.svg.import b/dodge/icon.svg.import new file mode 100644 index 0000000..a2b89fd --- /dev/null +++ b/dodge/icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv1namgbo7m4" +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/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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 diff --git a/dodge/main.gd b/dodge/main.gd new file mode 100644 index 0000000..da79230 --- /dev/null +++ b/dodge/main.gd @@ -0,0 +1,62 @@ +extends Node + +@export var mob_scene: PackedScene +var score = 0 + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + #new_game() + pass + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func game_over(): + $ScoreTimer.stop() + $MobTimer.stop() + $HUD.show_game_over() + +func new_game(): + get_tree().call_group("mobs", "queue_free") + $HUD.update_score(score) + $HUD.show_message("Get Ready") + score = 0 + $Player.start($StartPosition.position) + $StartTimer.start() + + +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/MobSpawnLocation + mob_spawn_location.progress_ratio = randf() + + # Set the mob's position to the random location. + mob.position = mob_spawn_location.position + + # Set the mob's direction perpendicular to the path direction. + var direction = mob_spawn_location.rotation + PI / 2 + + # Add some randomness to the direction. + direction += randf_range(-PI / 4, PI / 4) + mob.rotation = direction + + # Choose the velocity for the mob. + var velocity = Vector2(randf_range(150.0, 250.0), 0.0) + mob.linear_velocity = velocity.rotated(direction) + + # Spawn the mob by adding it to the Main scene. + add_child(mob) + + +func _on_score_timer_timeout(): + score += 1 + $HUD.update_score(score) + +func _on_start_timer_timeout(): + $MobTimer.start() + $ScoreTimer.start() diff --git a/dodge/main.gd.uid b/dodge/main.gd.uid new file mode 100644 index 0000000..d37f94f --- /dev/null +++ b/dodge/main.gd.uid @@ -0,0 +1 @@ +uid://c6ywdg0jd2u57 diff --git a/dodge/main.tscn b/dodge/main.tscn new file mode 100644 index 0000000..97f678c --- /dev/null +++ b/dodge/main.tscn @@ -0,0 +1,45 @@ +[gd_scene load_steps=6 format=3 uid="uid://d16wqwmxi6r6u"] + +[ext_resource type="Script" uid="uid://c6ywdg0jd2u57" path="res://main.gd" id="1_0xm2m"] +[ext_resource type="PackedScene" uid="uid://clybje3qfbio0" path="res://player.tscn" id="1_ig7tw"] +[ext_resource type="PackedScene" uid="uid://2eni4bs27j67" path="res://mob.tscn" id="2_h2yge"] +[ext_resource type="PackedScene" uid="uid://cql0s0a26rpks" path="res://hud.tscn" id="4_1bvp3"] + +[sub_resource type="Curve2D" id="Curve2D_ig7tw"] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, -3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, -2, 0, 0, 0, 0, 477, 720, 0, 0, 0, 0, -1, 717, 0, 0, 0, 0, -3, -3) +} +point_count = 6 + +[node name="main" type="Node"] +script = ExtResource("1_0xm2m") +mob_scene = ExtResource("2_h2yge") + +[node name="Player" parent="." instance=ExtResource("1_ig7tw")] + +[node name="MobTimer" type="Timer" parent="."] +wait_time = 0.5 + +[node name="ScoreTimer" type="Timer" parent="."] + +[node name="StartTimer" type="Timer" parent="."] +wait_time = 2.0 +one_shot = true + +[node name="StartPosition" type="Marker2D" parent="."] +position = Vector2(240, 450) + +[node name="MobPath" type="Path2D" parent="."] +curve = SubResource("Curve2D_ig7tw") + +[node name="MobSpawnLocation" type="PathFollow2D" parent="MobPath"] +position = Vector2(-3, -3) +rotation = 0.7853982 + +[node name="HUD" parent="." instance=ExtResource("4_1bvp3")] + +[connection signal="hit" from="Player" to="." method="game_over"] +[connection signal="timeout" from="MobTimer" to="." method="_on_mob_timer_timeout"] +[connection signal="timeout" from="ScoreTimer" to="." method="_on_score_timer_timeout"] +[connection signal="timeout" from="StartTimer" to="." method="_on_start_timer_timeout"] +[connection signal="start_game" from="HUD" to="." method="new_game"] diff --git a/dodge/mob.gd b/dodge/mob.gd new file mode 100644 index 0000000..17c1c41 --- /dev/null +++ b/dodge/mob.gd @@ -0,0 +1,16 @@ +extends RigidBody2D + + +# Called when the node enters the scene tree for the first time. +func _ready(): + var mob_types = Array($AnimatedSprite2D.sprite_frames.get_animation_names()) + $AnimatedSprite2D.animation = mob_types.pick_random() + $AnimatedSprite2D.play() + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass + +func _on_visible_on_screen_notifier_2d_screen_exited(): + queue_free() diff --git a/dodge/mob.gd.uid b/dodge/mob.gd.uid new file mode 100644 index 0000000..c9604af --- /dev/null +++ b/dodge/mob.gd.uid @@ -0,0 +1 @@ +uid://byts86xvp7fx5 diff --git a/dodge/mob.tscn b/dodge/mob.tscn new file mode 100644 index 0000000..0262457 --- /dev/null +++ b/dodge/mob.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=10 format=3 uid="uid://2eni4bs27j67"] + +[ext_resource type="Script" uid="uid://byts86xvp7fx5" path="res://mob.gd" id="1_1qmh0"] +[ext_resource type="Texture2D" uid="uid://c4q2xg7ghmu0u" path="res://art/enemyFlyingAlt_1.png" id="1_b3mxk"] +[ext_resource type="Texture2D" uid="uid://biqy7mqwcxgy1" path="res://art/enemyFlyingAlt_2.png" id="2_1qmh0"] +[ext_resource type="Texture2D" uid="uid://b4bdmsm2sb3mo" path="res://art/enemySwimming_1.png" id="3_gfurk"] +[ext_resource type="Texture2D" uid="uid://cmku4evhd6211" path="res://art/enemySwimming_2.png" id="4_ieysi"] +[ext_resource type="Texture2D" uid="uid://b0r3ayjjpeayb" path="res://art/enemyWalking_1.png" id="5_cixyi"] +[ext_resource type="Texture2D" uid="uid://8uhf1xx0kuqy" path="res://art/enemyWalking_2.png" id="6_7ulmv"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_pcqmr"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_b3mxk") +}, { +"duration": 1.0, +"texture": ExtResource("2_1qmh0") +}], +"loop": true, +"name": &"fly", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3_gfurk") +}, { +"duration": 1.0, +"texture": ExtResource("4_ieysi") +}], +"loop": true, +"name": &"swim", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("5_cixyi") +}, { +"duration": 1.0, +"texture": ExtResource("6_7ulmv") +}], +"loop": true, +"name": &"walk", +"speed": 5.0 +}] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_b3mxk"] +radius = 36.0 +height = 100.0 + +[node name="Mob" type="RigidBody2D" groups=["mobs"]] +collision_mask = 0 +gravity_scale = 0.0 +script = ExtResource("1_1qmh0") +metadata/_edit_group_ = true + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +scale = Vector2(0.75, 0.75) +sprite_frames = SubResource("SpriteFrames_pcqmr") +animation = &"walk" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +rotation = 1.5707964 +shape = SubResource("CapsuleShape2D_b3mxk") + +[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] diff --git a/dodge/player.gd b/dodge/player.gd new file mode 100644 index 0000000..2fe2fc1 --- /dev/null +++ b/dodge/player.gd @@ -0,0 +1,52 @@ +extends Area2D + +signal hit +@export var speed = 400 # How fast the player will move (pixels/sec). +var screen_size # Size of the game window. + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + screen_size = get_viewport_rect().size + hide() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + var velocity = Vector2.ZERO # The player's movement vector. + if Input.is_action_pressed("move_right"): + velocity.x += 1 + if Input.is_action_pressed("move_left"): + velocity.x -= 1 + if Input.is_action_pressed("move_down"): + velocity.y += 1 + if Input.is_action_pressed("move_up"): + velocity.y -= 1 + + if velocity.length() > 0: + velocity = velocity.normalized() * speed + $AnimatedSprite2D.play() + else: + $AnimatedSprite2D.stop() + + position += velocity * delta + position = position.clamp(Vector2.ZERO, screen_size) + + if velocity.x != 0: + $AnimatedSprite2D.animation = "walk" + $AnimatedSprite2D.flip_v = false + # See the note below about the following boolean assignment. + $AnimatedSprite2D.flip_h = velocity.x < 0 + elif velocity.y != 0: + $AnimatedSprite2D.animation = "up" + $AnimatedSprite2D.flip_v = velocity.y > 0 + + +func _on_body_entered(_body): + hide() # Player disappears after being hit. + hit.emit() + # Must be deferred as we can't change physics properties on a physics callback. + $CollisionShape2D.set_deferred("disabled", true) + +func start(pos): + position = pos + show() + $CollisionShape2D.disabled = false diff --git a/dodge/player.gd.uid b/dodge/player.gd.uid new file mode 100644 index 0000000..cb75fd5 --- /dev/null +++ b/dodge/player.gd.uid @@ -0,0 +1 @@ +uid://uto2x8nu0r1u diff --git a/dodge/player.tscn b/dodge/player.tscn new file mode 100644 index 0000000..e9a0663 --- /dev/null +++ b/dodge/player.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=8 format=3 uid="uid://clybje3qfbio0"] + +[ext_resource type="Texture2D" uid="uid://twyr3m3mqj74" path="res://art/playerGrey_up1.png" id="1_hqtel"] +[ext_resource type="Script" uid="uid://uto2x8nu0r1u" path="res://player.gd" id="1_sweqy"] +[ext_resource type="Texture2D" uid="uid://vdvw5mdy2dsi" path="res://art/playerGrey_up2.png" id="2_sweqy"] +[ext_resource type="Texture2D" uid="uid://d30i17te0nve0" path="res://art/playerGrey_walk1.png" id="3_2hs0m"] +[ext_resource type="Texture2D" uid="uid://8rmp6koh2moy" path="res://art/playerGrey_walk2.png" id="4_1jxqw"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_dw050"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_hqtel") +}, { +"duration": 1.0, +"texture": ExtResource("2_sweqy") +}], +"loop": true, +"name": &"up", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3_2hs0m") +}, { +"duration": 1.0, +"texture": ExtResource("4_1jxqw") +}], +"loop": true, +"name": &"walk", +"speed": 5.0 +}] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_b26j0"] +radius = 27.0 +height = 68.0 + +[node name="Player" type="Area2D"] +script = ExtResource("1_sweqy") +metadata/_edit_group_ = true + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +scale = Vector2(0.5, 0.5) +sprite_frames = SubResource("SpriteFrames_dw050") +animation = &"up" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CapsuleShape2D_b26j0") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/dodge/project.godot b/dodge/project.godot new file mode 100644 index 0000000..ac2eaa7 --- /dev/null +++ b/dodge/project.godot @@ -0,0 +1,45 @@ +; 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="Dodge" +run/main_scene="uid://d16wqwmxi6r6u" +config/features=PackedStringArray("4.5", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=480 +window/size/viewport_height=720 +window/stretch/mode="canvas_items" + +[input] + +move_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"location":0,"echo":false,"script":null) +] +} +move_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"location":0,"echo":false,"script":null) +] +} +move_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"location":0,"echo":false,"script":null) +] +} +move_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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,"location":0,"echo":false,"script":null) +] +}