Added Dodge the Creeps. /JL
4
dodge/.editorconfig
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
2
dodge/.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
||||||
3
dodge/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
/android/
|
||||||
BIN
dodge/art/House In a Forest Loop.ogg
Normal file
19
dodge/art/House In a Forest Loop.ogg.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/enemyFlyingAlt_1.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
40
dodge/art/enemyFlyingAlt_1.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/enemyFlyingAlt_2.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
40
dodge/art/enemyFlyingAlt_2.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/enemySwimming_1.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
40
dodge/art/enemySwimming_1.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/enemySwimming_2.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
40
dodge/art/enemySwimming_2.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/enemyWalking_1.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
40
dodge/art/enemyWalking_1.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/enemyWalking_2.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
40
dodge/art/enemyWalking_2.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/gameover.wav
Normal file
24
dodge/art/gameover.wav.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/playerGrey_up1.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
40
dodge/art/playerGrey_up1.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/playerGrey_up2.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
40
dodge/art/playerGrey_up2.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/playerGrey_walk1.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
40
dodge/art/playerGrey_walk1.png.import
Normal file
@@ -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
|
||||||
BIN
dodge/art/playerGrey_walk2.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
40
dodge/art/playerGrey_walk2.png.import
Normal file
@@ -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
|
||||||
253
dodge/fonts/FONTLOG.txt
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
Please distribute this file along with the Xolonium fonts when possible.
|
||||||
|
|
||||||
|
|
||||||
|
Source
|
||||||
|
|
||||||
|
Find the sourcefiles of Xolonium at
|
||||||
|
<gitlab.com/sev/xolonium>
|
||||||
|
|
||||||
|
|
||||||
|
Credits
|
||||||
|
|
||||||
|
Xolonium is created with FontForge <fontforge.org>,
|
||||||
|
Inkscape <inkscape.org>, Python <python.org>, and
|
||||||
|
FontTools <github.com/fonttools>.
|
||||||
|
|
||||||
|
It originated as a custom font for the open-source
|
||||||
|
game Xonotic <xonotic.org>. 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 <sev.ch@web.de>
|
||||||
|
Reverted frac OpenType feature to a more stable implementation
|
||||||
|
|
||||||
|
Xolonium 4.0 2016-10-08 Severin Meyer <sev.ch@web.de>
|
||||||
|
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 <sev.ch@web.de>
|
||||||
|
Added currency glyphs:
|
||||||
|
₦₩₫₱₹₺₽
|
||||||
|
Revised glyph:
|
||||||
|
₯
|
||||||
|
Relicensed public release under the SIL Open Font License 1.1
|
||||||
|
|
||||||
|
Xolonium 3.0 2015-05-04 Severin Meyer <sev.ch@web.de>
|
||||||
|
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 <sev.ch@web.de>
|
||||||
|
Added dingbats:
|
||||||
|
⛔💣🔥
|
||||||
|
Revised size and design of emoticons
|
||||||
|
Revised dingbats:
|
||||||
|
⌖☄☠☣⚙⚛⚠⚡❇❈🌌🌍🌎🌏🔫
|
||||||
|
Removed dingbat:
|
||||||
|
💥
|
||||||
|
|
||||||
|
Xolonium 2.3 2014-08-14 Severin Meyer <sev.ch@web.de>
|
||||||
|
Bugfixed ε and έ, thanks to bowzee for the feedback
|
||||||
|
|
||||||
|
Xolonium 2.2 2014-03-01 Severin Meyer <sev.ch@web.de>
|
||||||
|
Added dingbats:
|
||||||
|
⌖◆●❌💥
|
||||||
|
Revised dingbats:
|
||||||
|
•←↑→↓◊☄★☠☣⚙⚛⚠⚡❇❈❤🌌🌍🌎🌏👽🔫🚀
|
||||||
|
Removed dingbats:
|
||||||
|
♻✪💡📡🔋🔧🔭
|
||||||
|
|
||||||
|
Xolonium 2.1 2013-10-20 Severin Meyer <sev.ch@web.de>
|
||||||
|
Added dingbats:
|
||||||
|
←↑→↓❰❱❲❳■▬▮▰▲▶▼◀◢◣◤◥
|
||||||
|
☄★☠☢☣♻⚙⚛⚠⚡✪❇❈❤
|
||||||
|
🌌🌍🌎🌏👽💡📡🔋🔧🔫🔭🚀
|
||||||
|
😁😃😄😆😇😈😉😊😎😐😒😕
|
||||||
|
😘😛😝😞😟😠😣😭😮😲😴😵
|
||||||
|
|
||||||
|
Xolonium 2.0.1 2013-07-12 Severin Meyer <sev.ch@web.de>
|
||||||
|
Reorganised and simplified files
|
||||||
|
|
||||||
|
Xolonium 2.0 2012-08-11 Severin Meyer <sev.ch@web.de>
|
||||||
|
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 <sev.ch@web.de>
|
||||||
|
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 <sev.ch@web.de>
|
||||||
|
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 <sev.ch@web.de>
|
||||||
|
Completed glyph sets:
|
||||||
|
ISO 8859-1 (Western European)
|
||||||
|
ISO 8859-15 (Western European)
|
||||||
|
Added glyphs:
|
||||||
|
ĄĆĘŁŃŚŹŻąćęłńśźżıˆˇ˙˚˛˜
|
||||||
94
dodge/fonts/LICENSE.txt
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
Copyright 2011-2016 Severin Meyer <sev.ch@web.de>,
|
||||||
|
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 <http://scripts.sil.org/OFL>
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
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.
|
||||||
BIN
dodge/fonts/Xolonium-Regular.ttf
Normal file
36
dodge/fonts/Xolonium-Regular.ttf.import
Normal file
@@ -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={}
|
||||||
39
dodge/hud.gd
Normal file
@@ -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
|
||||||
1
dodge/hud.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bm3hot0cb2ls8
|
||||||
63
dodge/hud.tscn
Normal file
@@ -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"]
|
||||||
1
dodge/icon.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" 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"/><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" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 995 B |
43
dodge/icon.svg.import
Normal file
@@ -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
|
||||||
62
dodge/main.gd
Normal file
@@ -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()
|
||||||
1
dodge/main.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://c6ywdg0jd2u57
|
||||||
45
dodge/main.tscn
Normal file
@@ -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"]
|
||||||
16
dodge/mob.gd
Normal file
@@ -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()
|
||||||
1
dodge/mob.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://byts86xvp7fx5
|
||||||
66
dodge/mob.tscn
Normal file
@@ -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="."]
|
||||||
52
dodge/player.gd
Normal file
@@ -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
|
||||||
1
dodge/player.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://uto2x8nu0r1u
|
||||||
50
dodge/player.tscn
Normal file
@@ -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"]
|
||||||
45
dodge/project.godot
Normal file
@@ -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)
|
||||||
|
]
|
||||||
|
}
|
||||||