Initial commit based on the work of shmup-01

This commit is contained in:
Henry 2025-12-09 08:49:00 +00:00
commit da65849c27
78 changed files with 1723 additions and 0 deletions

4
.editorconfig Normal file
View file

@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

2
.gitattributes vendored Normal file
View file

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

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
# Godot 4+ specific ignores
.godot/
/android/

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://h04wm5a27u0"
path="res://.godot/imported/Explosion (16 x 16).png-ebecf90aec797295bb48cf06289281f5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Effects/Explosion (16 x 16).png"
dest_files=["res://.godot/imported/Explosion (16 x 16).png-ebecf90aec797295bb48cf06289281f5.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dh6xvjf8hur3x"
path="res://.godot/imported/Sparkle (16 x 16).png-0eec6e943106564747a5e3e618d9c5a3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Effects/Sparkle (16 x 16).png"
dest_files=["res://.godot/imported/Sparkle (16 x 16).png-0eec6e943106564747a5e3e618d9c5a3.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ufutxde5gpox"
path="res://.godot/imported/Alan (16 x 16).png-5dbfafef59bec6373df61239fa506a5d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Enemies/Alan (16 x 16).png"
dest_files=["res://.godot/imported/Alan (16 x 16).png-5dbfafef59bec6373df61239fa506a5d.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://deyu1prtitqcp"
path="res://.godot/imported/Bon_Bon (16 x 16).png-7ea532fd020645536abf60ee7f38dace.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Enemies/Bon_Bon (16 x 16).png"
dest_files=["res://.godot/imported/Bon_Bon (16 x 16).png-7ea532fd020645536abf60ee7f38dace.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0fdd82dr2hio"
path="res://.godot/imported/Lips (16 x 16).png-3265ce45d4393011117c8b9b4d47738a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Enemies/Lips (16 x 16).png"
dest_files=["res://.godot/imported/Lips (16 x 16).png-3265ce45d4393011117c8b9b4d47738a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://8j06xyft25w0"
path="res://.godot/imported/Circle_+_Square_+_Missile_pick-ups (16 x 16).png-3bbaa22444104ff44581c6a33a0ad891.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Items/Circle_+_Square_+_Missile_pick-ups (16 x 16).png"
dest_files=["res://.godot/imported/Circle_+_Square_+_Missile_pick-ups (16 x 16).png-3bbaa22444104ff44581c6a33a0ad891.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://by677b0ymmyag"
path="res://.godot/imported/Power_item (16 x 16).png-4df679887445482126f6d7476b544382.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Items/Power_item (16 x 16).png"
dest_files=["res://.godot/imported/Power_item (16 x 16).png-4df679887445482126f6d7476b544382.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

View file

@ -0,0 +1,3 @@
GrafxKid's publicly released pixel art assets fall under the CC0 1.0 Universal Public Domain License.
CC0 1.0 terms - https://creativecommons.org/publicdomain/zero/1.0/

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ces8fm7lxh574"
path="res://.godot/imported/Boosters (16 x 16).png-8b50a40dbdc7e815becad87ceb60848b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Player ship/Boosters (16 x 16).png"
dest_files=["res://.godot/imported/Boosters (16 x 16).png-8b50a40dbdc7e815becad87ceb60848b.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjdhq42ummgky"
path="res://.godot/imported/Boosters_left (16 x 16).png-8a4708d671dcd3d8f5b39892aaefbef7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Player ship/Boosters_left (16 x 16).png"
dest_files=["res://.godot/imported/Boosters_left (16 x 16).png-8a4708d671dcd3d8f5b39892aaefbef7.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjv3xbuj65pav"
path="res://.godot/imported/Boosters_right (16 x 16).png-6ce79aae3f2383fac5bef1fecccbb764.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Player ship/Boosters_right (16 x 16).png"
dest_files=["res://.godot/imported/Boosters_right (16 x 16).png-6ce79aae3f2383fac5bef1fecccbb764.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://di2xhcwcdbhxg"
path="res://.godot/imported/Player_ship (16 x 16).png-be69be68cd3df6db0d5c677798e0b7e7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Player ship/Player_ship (16 x 16).png"
dest_files=["res://.godot/imported/Player_ship (16 x 16).png-be69be68cd3df6db0d5c677798e0b7e7.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dubjbfdp6ep34"
path="res://.godot/imported/Enemy_projectile (16 x 16).png-d29bdfb3abd80f316f7896a0abd02db7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Enemy_projectile (16 x 16).png"
dest_files=["res://.godot/imported/Enemy_projectile (16 x 16).png-d29bdfb3abd80f316f7896a0abd02db7.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://yy8fjexb6fv6"
path="res://.godot/imported/Player_beam (16 x 16).png-6a101320be4a70758755fcdcff6a81d3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_beam (16 x 16).png"
dest_files=["res://.godot/imported/Player_beam (16 x 16).png-6a101320be4a70758755fcdcff6a81d3.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bltpqew3le1j"
path="res://.godot/imported/Player_charged_beam (16 x 16).png-89f205acbdb826f694a802bddbca80e1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_charged_beam (16 x 16).png"
dest_files=["res://.godot/imported/Player_charged_beam (16 x 16).png-89f205acbdb826f694a802bddbca80e1.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bcib1rh67w22s"
path="res://.godot/imported/Player_charged_donut_shot (16 x 16).png-7184c8cc5c0367908de947129c2711d9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_charged_donut_shot (16 x 16).png"
dest_files=["res://.godot/imported/Player_charged_donut_shot (16 x 16).png-7184c8cc5c0367908de947129c2711d9.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cqmvwlbyqiy3x"
path="res://.godot/imported/Player_charged_square_shot (16 x 16).png-cd56d64393c6907a8348176a56cab361.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_charged_square_shot (16 x 16).png"
dest_files=["res://.godot/imported/Player_charged_square_shot (16 x 16).png-cd56d64393c6907a8348176a56cab361.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bae3jehbndemu"
path="res://.godot/imported/Player_donut_shot (16 x 16).png-3f41fd34f88147e37ae65f3f0c7f7320.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_donut_shot (16 x 16).png"
dest_files=["res://.godot/imported/Player_donut_shot (16 x 16).png-3f41fd34f88147e37ae65f3f0c7f7320.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3y10poc002pe"
path="res://.godot/imported/Player_missile_shots (16 x 16).png-66b040bba7cc3550f183b3780caee8b2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_missile_shots (16 x 16).png"
dest_files=["res://.godot/imported/Player_missile_shots (16 x 16).png-66b040bba7cc3550f183b3780caee8b2.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwrwcqrw2t7bs"
path="res://.godot/imported/Player_square_shot (16 x 16).png-d2270dc7f4c93c516f46242f96456f80.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Projectiles/Player_square_shot (16 x 16).png"
dest_files=["res://.godot/imported/Player_square_shot (16 x 16).png-d2270dc7f4c93c516f46242f96456f80.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://jj8b7vqj3ihx"
path="res://.godot/imported/Space_BG (2 frames) (64 x 64).png-29eb07262f4b59c70b5f895f08b33a15.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/Space_BG (2 frames) (64 x 64).png"
dest_files=["res://.godot/imported/Space_BG (2 frames) (64 x 64).png-29eb07262f4b59c70b5f895f08b33a15.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bubqwoum50gf8"
path="res://.godot/imported/GAME_OVER (72 x 8).png-b0aed7fd8bca761f2bc09f7c32588594.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/UI objects/GAME_OVER (72 x 8).png"
dest_files=["res://.godot/imported/GAME_OVER (72 x 8).png-b0aed7fd8bca761f2bc09f7c32588594.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0g0350b8uw5"
path="res://.godot/imported/Item_held_box (16 x 16).png-3722eea04199d858c350b4056721dc11.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/UI objects/Item_held_box (16 x 16).png"
dest_files=["res://.godot/imported/Item_held_box (16 x 16).png-3722eea04199d858c350b4056721dc11.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddh7mk2ekhq3u"
path="res://.godot/imported/Number_font (8 x 8).png-e706f36eadb140398b2a07c1b9215654.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/UI objects/Number_font (8 x 8).png"
dest_files=["res://.godot/imported/Number_font (8 x 8).png-e706f36eadb140398b2a07c1b9215654.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2bqurwj2nfiq"
path="res://.godot/imported/Player_life_icon (16 x 16).png-7a4677c243ab1126885bee36bf4021a9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/UI objects/Player_life_icon (16 x 16).png"
dest_files=["res://.godot/imported/Player_life_icon (16 x 16).png-7a4677c243ab1126885bee36bf4021a9.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cpm0la8lccja1"
path="res://.godot/imported/Power_+_charge_bars (full + empty) (32 x 16).png-332abb785dd99b7e759f933d2e5ccf61.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/UI objects/Power_+_charge_bars (full + empty) (32 x 16).png"
dest_files=["res://.godot/imported/Power_+_charge_bars (full + empty) (32 x 16).png-332abb785dd99b7e759f933d2e5ccf61.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bonoqs5pisflo"
path="res://.godot/imported/START (48 x 8).png-b41e5258a8560332501673d6e19664b8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Mini Pixel Pack 3/UI objects/START (48 x 8).png"
dest_files=["res://.godot/imported/START (48 x 8).png-b41e5258a8560332501673d6e19664b8.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
bar_background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

40
bar_background.png.import Normal file
View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d11molrkdjjh5"
path="res://.godot/imported/bar_background.png-dca6d05f963330b50cc37c3e2531e06b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://bar_background.png"
dest_files=["res://.godot/imported/bar_background.png-dca6d05f963330b50cc37c3e2531e06b.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
bar_foreground.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 B

40
bar_foreground.png.import Normal file
View file

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

18
bullet.gd Normal file
View file

@ -0,0 +1,18 @@
extends Area2D
@export var speed = -250
func start(pos):
position = pos
func _process(delta):
position.y += speed * delta
# Signal checks to see if the bullet leaves the viewport then removes bullet.
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
queue_free()
func _on_area_entered(area: Area2D) -> void:
if area.is_in_group("enemies"):
area.explode()
queue_free()

1
bullet.gd.uid Normal file
View file

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

23
bullet.tscn Normal file
View file

@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://bwxxdrdvo3le0"]
[ext_resource type="Script" uid="uid://c6oorp45vpqpc" path="res://bullet.gd" id="1_v8qja"]
[ext_resource type="Texture2D" uid="uid://bltpqew3le1j" path="res://Mini Pixel Pack 3/Projectiles/Player_charged_beam (16 x 16).png" id="2_t4vbm"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2b2rl"]
size = Vector2(12, 10)
[node name="Bullet" type="Area2D"]
script = ExtResource("1_v8qja")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("2_t4vbm")
hframes = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -1)
shape = SubResource("RectangleShape2D_2b2rl")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]

46
enemy.gd Normal file
View file

@ -0,0 +1,46 @@
extends Area2D
signal died
var bullet_scene = preload("res://enemy_bullet.tscn")
var start_pos = Vector2.ZERO
var speed = 0
@onready var screensize = get_viewport_rect().size
func start(pos):
speed = 0
position = Vector2(pos.x, -pos.y)
start_pos = pos
await get_tree().create_timer(randf_range(0.25, 0.55)).timeout
var tween = create_tween().set_trans(Tween.TRANS_BACK)
tween.tween_property(self, "position:y", start_pos.y, 1.4)
await tween.finished
$MoveTimer.wait_time = randf_range(5, 20)
$MoveTimer.start()
$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.start()
func _on_timer_timeout() -> void:
speed = randf_range(75, 100)
func _on_shoot_timer_timeout():
var b = bullet_scene.instantiate()
get_tree().root.add_child(b)
b.start(position)
$ShootTimer.wait_time = randf_range(4, 20)
$ShootTimer.start()
func _process(delta):
position.y += speed * delta
if position.y > screensize.y + 32:
start(start_pos)
func explode():
speed = 0
$AnimationPlayer.play("explode")
set_deferred("monitoring", false)
died.emit(5)
await $AnimationPlayer.animation_finished
queue_free()

1
enemy.gd.uid Normal file
View file

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

149
enemy.tscn Normal file
View file

@ -0,0 +1,149 @@
[gd_scene load_steps=9 format=3 uid="uid://mp72cjiuquik"]
[ext_resource type="Script" uid="uid://xoihsrr4hw4k" path="res://enemy.gd" id="1_4gyqm"]
[ext_resource type="Texture2D" uid="uid://deyu1prtitqcp" path="res://Mini Pixel Pack 3/Enemies/Bon_Bon (16 x 16).png" id="1_7k104"]
[ext_resource type="Texture2D" uid="uid://h04wm5a27u0" path="res://Mini Pixel Pack 3/Effects/Explosion (16 x 16).png" id="3_qi2p4"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4gyqm"]
size = Vector2(14, 8)
[sub_resource type="Animation" id="Animation_iifgy"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_7k104")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [4]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [2]
}
[sub_resource type="Animation" id="Animation_qi2p4"]
resource_name = "bounce"
loop_mode = 1
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:texture")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_7k104")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:hframes")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [4]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Sprite2D:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1023555, 0.2, 0.3, 0.35),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [2, 1, 0, 3, 0]
}
[sub_resource type="Animation" id="Animation_epg4t"]
resource_name = "explode"
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 4, 5]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:texture")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("3_qi2p4")]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3yqyl"]
_data = {
&"RESET": SubResource("Animation_iifgy"),
&"bounce": SubResource("Animation_qi2p4"),
&"explode": SubResource("Animation_epg4t")
}
[node name="Enemy" type="Area2D" groups=["enemies"]]
script = ExtResource("1_4gyqm")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_7k104")
hframes = 4
frame = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_4gyqm")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_3yqyl")
}
autoplay = "bounce"
[node name="MoveTimer" type="Timer" parent="."]
one_shot = true
[node name="ShootTimer" type="Timer" parent="."]
one_shot = true
[connection signal="timeout" from="MoveTimer" to="." method="_on_timer_timeout"]
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]

8
enemy_bullet.gd Normal file
View file

@ -0,0 +1,8 @@
extends Area2D
func _on_visible_on_screen_notifier_2d_screen_exited():
queue_free()
func _on_area_entered(area):
if area.name == "Player":
queue_free()

1
enemy_bullet.gd.uid Normal file
View file

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

22
enemy_bullet.tscn Normal file
View file

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://3xbr5bnuk04u"]
[ext_resource type="Texture2D" uid="uid://dubjbfdp6ep34" path="res://Mini Pixel Pack 3/Projectiles/Enemy_projectile (16 x 16).png" id="1_1xapl"]
[ext_resource type="Script" uid="uid://dusi2flaqer4b" path="res://enemy_bullet.gd" id="1_gl7bs"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gl7bs"]
size = Vector2(6, 6)
[node name="EnemyBullet" type="Area2D"]
script = ExtResource("1_gl7bs")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_1xapl")
hframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_gl7bs")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]

1
icon.svg Normal file
View 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
icon.svg.import Normal file
View file

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dy743vehs0t1t"
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

19
main.gd Normal file
View file

@ -0,0 +1,19 @@
extends Node2D
var enemy = preload("res://enemy.tscn")
var score = 0
func _ready():
spawn_enemies()
func spawn_enemies():
for x in range(9):
for y in range(3):
var e = enemy.instantiate()
var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
add_child(e)
e.start(pos)
e.died.connect(_on_enemy_died)
func _on_enemy_died(value):
score += value

1
main.gd.uid Normal file
View file

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

62
main.tscn Normal file
View file

@ -0,0 +1,62 @@
[gd_scene load_steps=7 format=3 uid="uid://cc2dnhuv4qx7m"]
[ext_resource type="Script" uid="uid://c51huloycn5as" path="res://main.gd" id="1_h2yge"]
[ext_resource type="Texture2D" uid="uid://jj8b7vqj3ihx" path="res://Mini Pixel Pack 3/Space_BG (2 frames) (64 x 64).png" id="1_ig7tw"]
[ext_resource type="PackedScene" uid="uid://pyuorpwb7lpe" path="res://player.tscn" id="2_0xm2m"]
[sub_resource type="Animation" id="Animation_h2yge"]
resource_name = "scroll"
length = 2.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("background:region_rect")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Rect2(0, 0, 240, 320), Rect2(0, -64, 240, 320)]
}
[sub_resource type="Animation" id="Animation_1bvp3"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("background:region_rect")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Rect2(0, 0, 240, 320)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lquwl"]
_data = {
&"RESET": SubResource("Animation_1bvp3"),
&"scroll": SubResource("Animation_h2yge")
}
[node name="Main" type="Node2D"]
script = ExtResource("1_h2yge")
[node name="background" type="Sprite2D" parent="."]
texture_repeat = 2
texture = ExtResource("1_ig7tw")
centered = false
region_enabled = true
region_rect = Rect2(0, 0, 240, 320)
[node name="Player" parent="." instance=ExtResource("2_0xm2m")]
position = Vector2(123, 270)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_lquwl")
}
autoplay = "scroll"

46
player.gd Normal file
View file

@ -0,0 +1,46 @@
extends Area2D
@onready var screensize = get_viewport_rect().size
@export var speed = 150
@export var cooldown = 0.25
@export var bullet_scene : PackedScene
var can_shoot = true
func _ready():
start()
func start():
position = Vector2(screensize.x / 2, screensize.y - 64)
$GunCooldown.wait_time = cooldown
func shoot():
if not can_shoot:
return
can_shoot = false
$GunCooldown.start()
var b = bullet_scene.instantiate()
get_tree().root.add_child(b)
b.start(position + Vector2(0, -8))
func _process(delta):
var input = Input.get_vector("left", "right", "up", "down")
if input.x > 0:
$Ship.frame = 2
$Ship/Boosters.animation = "right"
elif input.x < 0:
$Ship.frame = 0
$Ship/Boosters.animation = "left"
else:
$Ship.frame = 1
$Ship/Boosters.animation = "forward"
position += input * speed * delta
position = position.clamp(Vector2(8, 8), screensize - Vector2(8, 8))
if Input.is_action_pressed("shoot"):
shoot()
func _on_gun_cooldown_timeout():
can_shoot = true
func _on_gun_cool_down_timeout() -> void:
can_shoot = true

1
player.gd.uid Normal file
View file

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

94
player.tscn Normal file
View file

@ -0,0 +1,94 @@
[gd_scene load_steps=15 format=3 uid="uid://pyuorpwb7lpe"]
[ext_resource type="Script" uid="uid://dcrnf4r6c5qaw" path="res://player.gd" id="1_sweqy"]
[ext_resource type="PackedScene" uid="uid://bwxxdrdvo3le0" path="res://bullet.tscn" id="2_1jxqw"]
[ext_resource type="Texture2D" uid="uid://di2xhcwcdbhxg" path="res://Mini Pixel Pack 3/Player ship/Player_ship (16 x 16).png" id="2_2hs0m"]
[ext_resource type="Texture2D" uid="uid://ces8fm7lxh574" path="res://Mini Pixel Pack 3/Player ship/Boosters (16 x 16).png" id="3_1jxqw"]
[ext_resource type="Texture2D" uid="uid://bjdhq42ummgky" path="res://Mini Pixel Pack 3/Player ship/Boosters_left (16 x 16).png" id="4_dw050"]
[ext_resource type="Texture2D" uid="uid://cjv3xbuj65pav" path="res://Mini Pixel Pack 3/Player ship/Boosters_right (16 x 16).png" id="5_b26j0"]
[sub_resource type="AtlasTexture" id="AtlasTexture_n7ghd"]
atlas = ExtResource("3_1jxqw")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_nvl01"]
atlas = ExtResource("3_1jxqw")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ivps1"]
atlas = ExtResource("4_dw050")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_urp6f"]
atlas = ExtResource("4_dw050")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_bwjto"]
atlas = ExtResource("5_b26j0")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_606se"]
atlas = ExtResource("5_b26j0")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_u1c27"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_n7ghd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nvl01")
}],
"loop": true,
"name": &"forward",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ivps1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_urp6f")
}],
"loop": true,
"name": &"left",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_bwjto")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_606se")
}],
"loop": true,
"name": &"right",
"speed": 10.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_op7ga"]
size = Vector2(14, 14)
[node name="Player" type="Area2D"]
script = ExtResource("1_sweqy")
bullet_scene = ExtResource("2_1jxqw")
[node name="Ship" type="Sprite2D" parent="."]
texture = ExtResource("2_2hs0m")
hframes = 3
frame = 1
[node name="Boosters" type="AnimatedSprite2D" parent="Ship"]
position = Vector2(0, 15)
sprite_frames = SubResource("SpriteFrames_u1c27")
animation = &"forward"
autoplay = "forward"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_op7ga")
[node name="GunCooldown" type="Timer" parent="."]
one_shot = true
[connection signal="timeout" from="GunCooldown" to="." method="_on_gun_cool_down_timeout"]

55
project.godot Normal file
View file

@ -0,0 +1,55 @@
; 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="shmup01b"
config/features=PackedStringArray("4.5", "Forward Plus")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=240
window/size/viewport_height=320
window/size/window_width_override=720
window/size/window_height_override=960
window/stretch/mode="canvas_items"
[input]
right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
]
}
left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}
up={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
down={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
shoot={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
]
}
[rendering]
textures/canvas_textures/default_texture_filter=0