This commit is contained in:
megamichi 2025-02-11 19:47:33 +01:00
commit 1bae9f78bd
73 changed files with 6521 additions and 0 deletions

114
.clang-format Normal file
View file

@ -0,0 +1,114 @@
---
Language: Cpp
BasedOnStyle: Google
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: true
IndentPPDirectives: AfterHash
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: false
EmptyLineBeforeAccessModifier: Always
EmptyLineAfterAccessModifier: Always
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
TabWidth: 4
UseTab: Never

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/

BIN
Floppy Bort.apk Normal file

Binary file not shown.

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2016-2023 The Godot Engine community
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
[configuration]
entry_symbol = "git_plugin_init"
compatibility_minimum = "4.1.0"
[libraries]
macos.editor = "macos/libgit_plugin.macos.editor.universal.dylib"
windows.editor.x86_64 = "win64/libgit_plugin.windows.editor.x86_64.dll"
linux.editor.x86_64 = "linux/libgit_plugin.linux.editor.x86_64.so"
linux.editor.arm64 = "linux/libgit_plugin.linux.editor.arm64.so"
linux.editor.rv64 = ""

View file

@ -0,0 +1,7 @@
[plugin]
name="Godot Git Plugin"
description="This plugin lets you interact with Git without leaving the Godot editor. More information can be found at https://github.com/godotengine/godot-git-plugin/wiki"
author="twaritwaikar"
version="v3.1.1"
script="godot-git-plugin.gd"

BIN
assets/Knewave-Regular.ttf Normal file

Binary file not shown.

View file

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

BIN
assets/images/bird/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cg2pfy0xiqc2n"
path="res://.godot/imported/1.png-908270f64a3de74f7ebe475367915368.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/bird/1.png"
dest_files=["res://.godot/imported/1.png-908270f64a3de74f7ebe475367915368.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/bird/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://db8a4y650lxxq"
path="res://.godot/imported/2.png-241a33c53cd9c0ddbb860cfc32338050.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/bird/2.png"
dest_files=["res://.godot/imported/2.png-241a33c53cd9c0ddbb860cfc32338050.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bcsmsauyx5snh"
path="res://.godot/imported/traurig.png-5b911f23f851b823e94f455a92a83c23.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/bird/traurig.png"
dest_files=["res://.godot/imported/traurig.png-5b911f23f851b823e94f455a92a83c23.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfks34adpcdyi"
path="res://.godot/imported/clouds.png-84a329442ee23525065a28cf3f3d3734.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/clouds/clouds.png"
dest_files=["res://.godot/imported/clouds.png-84a329442ee23525065a28cf3f3d3734.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/clouds/w1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://e7r6j5iktkup"
path="res://.godot/imported/w1.png-f56f56d9f0e2e6380a3a59021e49d8f1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/clouds/w1.png"
dest_files=["res://.godot/imported/w1.png-f56f56d9f0e2e6380a3a59021e49d8f1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/clouds/w2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbjajw8m740yl"
path="res://.godot/imported/w2.png-469468627d3e20e707acc93174b275d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/clouds/w2.png"
dest_files=["res://.godot/imported/w2.png-469468627d3e20e707acc93174b275d5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/clouds/w3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://pt2pxrk4105t"
path="res://.godot/imported/w3.png-0c294efaad2ccf2901c5e1cbc62655c7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/clouds/w3.png"
dest_files=["res://.godot/imported/w3.png-0c294efaad2ccf2901c5e1cbc62655c7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/clouds/w4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2ty5xty0mk3t"
path="res://.godot/imported/w4.png-72cda81f6e99a6c75f2a81cfb329a747.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/clouds/w4.png"
dest_files=["res://.godot/imported/w4.png-72cda81f6e99a6c75f2a81cfb329a747.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/gui/exit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bgqpcw6t22djf"
path="res://.godot/imported/exit.png-cbea6eb3f7dcd3f37dc034d993e13608.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/gui/exit.png"
dest_files=["res://.godot/imported/exit.png-cbea6eb3f7dcd3f37dc034d993e13608.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/gui/play.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://iuwyotlo7766"
path="res://.godot/imported/play.png-c21e5891f81ca38b2b714d92e8a5574c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/gui/play.png"
dest_files=["res://.godot/imported/play.png-c21e5891f81ca38b2b714d92e8a5574c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/images/gui/retry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cpxhuqsntjjbf"
path="res://.godot/imported/retry.png-4f0066dc14f7b37838a2be25ffc7e445.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/gui/retry.png"
dest_files=["res://.godot/imported/retry.png-4f0066dc14f7b37838a2be25ffc7e445.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

360
assets/images/icon.svg Normal file
View file

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
width="86.5"
height="60"
viewBox="0,0,86.5,60"
id="svg10"
sodipodi:docname="icon.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xml:space="preserve"
inkscape:export-filename="icon.png"
inkscape:export-xdpi="960"
inkscape:export-ydpi="960"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs14" /><sodipodi:namedview
id="namedview12"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="8.0000004"
inkscape:cx="49.062498"
inkscape:cy="26.749999"
inkscape:window-width="1920"
inkscape:window-height="1123"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg10" /><g
id="g1053"
sodipodi:insensitive="true"
transform="translate(3.8761532,1.9237626)"><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1629"
cx="67.203293"
cy="45.288639"
rx="9.9297161"
ry="7.8061843" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1890"
cx="40.261806"
cy="34.575626"
rx="13.570948"
ry="16.723139" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1892"
cx="67.203293"
cy="26.323204"
rx="9.9297161"
ry="12.967219" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1894"
cx="53.471519"
cy="14.966153"
rx="10.22152"
ry="7.1193676" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1896"
cx="51.110153"
cy="30.284355"
rx="19.561478"
ry="18.508743" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1898"
cx="18.485477"
cy="46.842281"
rx="13.063199"
ry="4.4564848" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1900"
cx="8.5861206"
cy="41.385548"
rx="4.5170145"
ry="3.9030921" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1902"
cx="25.733576"
cy="33.078434"
rx="10.69188"
ry="14.07473" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1904"
cx="17.515627"
cy="28.903465"
rx="11.737238"
ry="16.545372" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1906"
cx="8.1552334"
cy="28.06073"
rx="6.5405488"
ry="4.8892961" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1908"
cx="31.979206"
cy="15.937129"
rx="9.7224426"
ry="9.7019386" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path1910"
cx="14.711335"
cy="15.201086"
rx="10.324492"
ry="9.6486635" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path2051"
cx="44.65707"
cy="12.846424"
rx="9.3099327"
ry="9.7887726" /><ellipse
style="fill:#65a637;fill-opacity:1"
id="path2053"
cx="67.999352"
cy="13.890342"
rx="8.2055178"
ry="7.8324218" /></g><g
id="g1063"
transform="translate(4.0183428,2.0316862)"
style="fill:#6aff00;fill-opacity:1"><text
xml:space="preserve"
style="fill:#6aff00;fill-opacity:1"
x="9.6398268"
y="24.638851"
id="text1057"><tspan
sodipodi:role="line"
id="tspan1055"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:Knewave;-inkscape-font-specification:'Knewave, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#6aff00;fill-opacity:1"
x="9.6398268"
y="24.638851">Floppy</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:Knewave;-inkscape-font-specification:'Knewave, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#6aff00;fill-opacity:1"
x="16.952806"
y="45.252106"
id="text1061"><tspan
sodipodi:role="line"
id="tspan1059"
x="16.952806"
y="45.252106">Bort</tspan></text></g><g
id="g983"
style="fill:#6aff00;fill-opacity:1"
transform="translate(5.7212399,2.7974209)"><text
xml:space="preserve"
style="fill:#c0ff00;fill-opacity:1"
x="9.6398268"
y="24.638851"
id="text3561"><tspan
sodipodi:role="line"
id="tspan417"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:Knewave;-inkscape-font-specification:'Knewave, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
x="9.6398268"
y="24.638851">Floppy</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.3333px;font-family:Knewave;-inkscape-font-specification:'Knewave, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#c0ff00"
x="16.952806"
y="45.252106"
id="text977"><tspan
sodipodi:role="line"
id="tspan975"
x="16.952806"
y="45.252106">Bort</tspan></text></g><g
inkscape:label="Ebene 1"
id="layer1"
transform="matrix(4.0306709,1.3706506,-1.3706506,4.0306709,12.935515,24.184123)"><g
id="g17173"
sodipodi:insensitive="true"><path
id="rect6194"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 0.79375,0 V 0.26458333 H 3.4395833 V 0.52916667 H 3.96875 V 0.26458333 H 3.7041667 V 0 Z"
sodipodi:nodetypes="ccccccccc" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
id="rect6194-9"
width="0.26458332"
height="0.26458332"
x="3.96875"
y="0.5291667" /><path
id="rect6194-3"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 4.2333333,0.79375 V 1.8520833 H 4.4979167 V 0.79375 Z"
sodipodi:nodetypes="ccccc" /><path
id="rect6194-636"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 3.175,0.52916667 V 1.8520833 H 3.4395833 V 0.52916667 Z"
sodipodi:nodetypes="ccccc" /><path
id="rect6194-847"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 3.4395833,1.8520833 V 2.1166667 H 3.96875 v 0.5291666 h 0.2645833 v -0.79375 z"
sodipodi:nodetypes="ccccccc" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
id="rect6194-51"
width="0.26458332"
height="0.26458332"
x="0.52916664"
y="0.26458332" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
id="rect6194-15"
width="0.26458332"
height="0.26458332"
x="0.26458335"
y="0.5291667" /><path
id="rect6194-401"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 0,0.79375 V 2.6458333 H 0.26458333 V 0.79375 Z"
sodipodi:nodetypes="ccccc" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
id="rect6194-94"
width="0.26458332"
height="0.26458332"
x="0.26458335"
y="2.6458333" /><path
id="rect6194-08"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 0.52916667,2.9104167 V 3.175 H 2.9104167 V 2.9104167 Z"
sodipodi:nodetypes="ccccc" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
id="rect6194-62-4"
width="0.26458332"
height="0.26458332"
x="3.175"
y="2.6458333" /><rect
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
id="rect6194-62-1"
width="0.26458332"
height="0.26458332"
x="3.4395833"
y="2.9104166" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-5"
width="0.26458332"
height="0.26458332"
x="3.4395833"
y="2.6458333" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-8"
width="0.26458332"
height="0.26458332"
x="3.4395833"
y="2.3812499" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-88"
width="0.26458332"
height="0.26458332"
x="3.175"
y="2.9104166" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-3"
width="0.26458332"
height="0.26458332"
x="2.9104166"
y="2.9104166" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-887"
width="0.26458332"
height="0.26458332"
x="2.9104166"
y="2.6458333" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-1"
width="0.26458332"
height="0.26458332"
x="2.6458333"
y="2.6458333" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-9"
width="0.26458332"
height="0.26458332"
x="2.9104166"
y="2.3812499" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069-34"
width="0.26458332"
height="0.26458332"
x="3.175"
y="2.3812499" /><rect
style="fill:#ffb900;fill-opacity:1;stroke-width:0.264583"
id="rect8069"
width="0.26458332"
height="0.26458332"
x="3.7041667"
y="2.6458333" /><rect
style="fill:#d055d4;fill-opacity:1;stroke-width:0.264583"
id="rect9578-0"
width="0.26458332"
height="0.26458332"
x="3.7041667"
y="2.1166666" /><rect
style="fill:#d055d4;fill-opacity:1;stroke-width:0.264583"
id="rect9578-0-8"
width="0.26458332"
height="0.26458332"
x="3.175"
y="1.8520832" /><path
id="rect9578-0-1"
style="fill:#d055d4;fill-opacity:1;stroke-width:0.264583"
d="M 1.8520833,0.26458333 V 0.52916667 H 2.9104167 V 0.79375 H 3.175 V 0.52916667 H 3.4395833 V 0.26458333 Z"
sodipodi:nodetypes="ccccccccc" /><rect
style="fill:#d055d4;fill-opacity:1;stroke-width:0.264583"
id="rect9578-0-5"
width="0.26458332"
height="0.26458332"
x="0.26458335"
y="2.3812499" /><path
id="rect9578-0-2"
style="fill:#d055d4;fill-opacity:1;stroke-width:0.264583"
d="m 0.52916667,2.6458333 v 0.2645834 c 0.40297029,0 0.67862193,0 1.05833333,0 V 2.6458333 c -0.3553284,0 -0.73065337,0 -1.05833333,0 z"
sodipodi:nodetypes="ccccc" /><rect
style="fill:#fb66ff;fill-opacity:1;stroke-width:0.264583"
id="rect9578-0-13"
width="0.26458332"
height="0.26458332"
x="3.7041667"
y="2.3812499" /><path
id="rect9578-0-13-2"
style="fill:#fb66ff;stroke-width:0.264583"
d="M 0.26458333,2.38125 V 0.79375 H 0.52916667 V 0.52916667 H 0.79375 V 0.26458333 H 1.8520833 V 0.52916667 H 2.9104167 V 0.79375 H 3.175 V 2.1166667 H 3.7041667 V 2.38125 h -0.79375 V 2.6458333 H 2.6458333 V 2.9104167 H 1.5875 V 2.6458333 H 0.52916667 V 2.38125 Z"
sodipodi:nodetypes="ccccccccccccccccccccccc" /><path
id="rect15527"
style="fill:#ffffff;stroke-width:0.264583"
d="M 3.4395833,0.52916664 H 3.959643 L 3.96875,0.79375 h 0.2645833 v 1.0583333 h -0.79375 z"
sodipodi:nodetypes="ccccccc" /><path
id="rect6194-39"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 3.7041667,1.0583333 V 1.5875 H 3.96875 V 1.0583333 Z"
sodipodi:nodetypes="ccccc" /></g><path
id="rect17175"
style="fill:#000000;fill-opacity:1;stroke-width:0.264583"
d="M 0.79375,1.3229167 V 1.8520833 H 1.0583333 V 1.3229167 Z M 1.0583333,1.8520833 V 2.1166667 H 1.3229167 V 1.8520833 Z M 1.3229167,2.1166667 V 2.38125 h 0.79375 V 2.1166667 Z m 0.79375,0 H 2.38125 V 1.5875 H 2.1166667 Z m 0,-0.5291667 V 1.3229167 H 1.8520833 V 1.5875 Z"
sodipodi:nodetypes="ccccccccccccccccccccccccc" /><rect
style="fill:#fb92ff;fill-opacity:1;stroke-width:0.264583"
id="rect17916"
width="0.26458332"
height="0.26458332"
x="1.0583333"
y="1.5875" /><rect
style="fill:#fb92ff;fill-opacity:1;stroke-width:0.264583"
id="rect17970"
width="0.26458332"
height="0.26458332"
x="1.3229166"
y="1.8520833" /><rect
style="fill:#fb92ff;fill-opacity:1;stroke-width:0.264583"
id="rect17972"
width="0.26458332"
height="0.26458332"
x="1.5875"
y="1.5875" /><rect
style="fill:#fb92ff;fill-opacity:1;stroke-width:0.264583"
id="rect17974"
width="0.26458332"
height="0.26458332"
x="1.8520833"
y="1.8520833" /></g></svg>
<!--rotationCenter:43.25000000000003:30-->

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcnjdj315cib4"
path="res://.godot/imported/icon.svg-2a379f463509f41fc5e90a1cd52fdb6b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/icon.svg"
dest_files=["res://.godot/imported/icon.svg-2a379f463509f41fc5e90a1cd52fdb6b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

BIN
assets/images/pipe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bmcn41xuywnm5"
path="res://.godot/imported/pipe.png-b588f9471292fa6de2b11fdeac68598f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/images/pipe.png"
dest_files=["res://.godot/imported/pipe.png-b588f9471292fa6de2b11fdeac68598f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/sounds/jump.wav Normal file

Binary file not shown.

View file

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

BIN
assets/sounds/over.wav Normal file

Binary file not shown.

View file

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

BIN
assets/sounds/popcorn.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://qjevjhqvykkg"
path="res://.godot/imported/popcorn.wav-ee4835cf74470d49647e63774bd8706d.sample"
[deps]
source_file="res://assets/sounds/popcorn.wav"
dest_files=["res://.godot/imported/popcorn.wav-ee4835cf74470d49647e63774bd8706d.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=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
builds/Floppy_Bort_v0.2.apk Normal file

Binary file not shown.

16
default_bus_layout.tres Normal file
View file

@ -0,0 +1,16 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://7i8qvoyp7now"]
[resource]
bus/0/volume_db = 6.02
bus/1/name = &"Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 6.02
bus/1/send = &"Master"
bus/2/name = &"Effects"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 6.02
bus/2/send = &"Master"

207
export_presets.cfg Normal file
View file

@ -0,0 +1,207 @@
[preset.0]
name="Android"
platform="Android"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="builds/Floppy_Bort_v0.2.apk"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
gradle_build/use_gradle_build=true
gradle_build/gradle_build_directory=""
gradle_build/android_source_template=""
gradle_build/compress_native_libraries=false
gradle_build/export_format=0
gradle_build/min_sdk=""
gradle_build/target_sdk=""
architectures/armeabi-v7a=false
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
version/code=1
version/name=""
package/unique_name="at.megamich.$genname"
package/name="Floppy Bort"
package/signed=false
package/app_category=2
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
package/show_in_android_tv=true
package/show_in_app_library=true
package/show_as_launcher_app=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=0
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
screen/support_large=true
screen/support_xlarge=true
user_data_backup/allow=false
command_line/extra_args=""
apk_expansion/enable=false
apk_expansion/SALT=""
apk_expansion/public_key=""
permissions/custom_permissions=PackedStringArray()
permissions/access_checkin_properties=false
permissions/access_coarse_location=false
permissions/access_fine_location=false
permissions/access_location_extra_commands=false
permissions/access_mock_location=false
permissions/access_network_state=false
permissions/access_surface_flinger=false
permissions/access_wifi_state=false
permissions/account_manager=false
permissions/add_voicemail=false
permissions/authenticate_accounts=false
permissions/battery_stats=false
permissions/bind_accessibility_service=false
permissions/bind_appwidget=false
permissions/bind_device_admin=false
permissions/bind_input_method=false
permissions/bind_nfc_service=false
permissions/bind_notification_listener_service=false
permissions/bind_print_service=false
permissions/bind_remoteviews=false
permissions/bind_text_service=false
permissions/bind_vpn_service=false
permissions/bind_wallpaper=false
permissions/bluetooth=false
permissions/bluetooth_admin=false
permissions/bluetooth_privileged=false
permissions/brick=false
permissions/broadcast_package_removed=false
permissions/broadcast_sms=false
permissions/broadcast_sticky=false
permissions/broadcast_wap_push=false
permissions/call_phone=false
permissions/call_privileged=false
permissions/camera=false
permissions/capture_audio_output=false
permissions/capture_secure_video_output=false
permissions/capture_video_output=false
permissions/change_component_enabled_state=false
permissions/change_configuration=false
permissions/change_network_state=false
permissions/change_wifi_multicast_state=false
permissions/change_wifi_state=false
permissions/clear_app_cache=false
permissions/clear_app_user_data=false
permissions/control_location_updates=false
permissions/delete_cache_files=false
permissions/delete_packages=false
permissions/device_power=false
permissions/diagnostic=false
permissions/disable_keyguard=false
permissions/dump=false
permissions/expand_status_bar=false
permissions/factory_test=false
permissions/flashlight=false
permissions/force_back=false
permissions/get_accounts=false
permissions/get_package_size=false
permissions/get_tasks=false
permissions/get_top_activity_info=false
permissions/global_search=false
permissions/hardware_test=false
permissions/inject_events=false
permissions/install_location_provider=false
permissions/install_packages=false
permissions/install_shortcut=false
permissions/internal_system_window=false
permissions/internet=false
permissions/kill_background_processes=false
permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
permissions/modify_phone_state=false
permissions/mount_format_filesystems=false
permissions/mount_unmount_filesystems=false
permissions/nfc=false
permissions/persistent_activity=false
permissions/post_notifications=false
permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_phone_state=false
permissions/read_profile=false
permissions/read_sms=false
permissions/read_social_stream=false
permissions/read_sync_settings=false
permissions/read_sync_stats=false
permissions/read_user_dictionary=false
permissions/reboot=false
permissions/receive_boot_completed=false
permissions/receive_mms=false
permissions/receive_sms=false
permissions/receive_wap_push=false
permissions/record_audio=false
permissions/reorder_tasks=false
permissions/restart_packages=false
permissions/send_respond_via_message=false
permissions/send_sms=false
permissions/set_activity_watcher=false
permissions/set_alarm=false
permissions/set_always_finish=false
permissions/set_animation_scale=false
permissions/set_debug_app=false
permissions/set_orientation=false
permissions/set_pointer_speed=false
permissions/set_preferred_applications=false
permissions/set_process_limit=false
permissions/set_time=false
permissions/set_time_zone=false
permissions/set_wallpaper=false
permissions/set_wallpaper_hints=false
permissions/signal_persistent_processes=false
permissions/status_bar=false
permissions/subscribed_feeds_read=false
permissions/subscribed_feeds_write=false
permissions/system_alert_window=false
permissions/transmit_ir=false
permissions/uninstall_shortcut=false
permissions/update_device_stats=false
permissions/use_credentials=false
permissions/use_sip=false
permissions/vibrate=false
permissions/wake_lock=false
permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
permissions/write_secure_settings=false
permissions/write_settings=false
permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

34
icon.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chkpw3t1i4il1"
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

62
project.godot Normal file
View file

@ -0,0 +1,62 @@
; 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="Floppy Bort"
config/description="N plappy Bird Clon in Godot"
config/version="0.2"
run/main_scene="res://scenes/gui/startscreen/startscreen.tscn"
config/features=PackedStringArray("4.3", "Mobile")
boot_splash/bg_color=Color(0.796078, 0.960784, 0.996078, 1)
boot_splash/image="res://icon.png"
config/icon="res://icon.png"
[display]
window/size/viewport_width=1200
window/size/viewport_height=700
window/stretch/mode="viewport"
window/stretch/aspect="keep_height"
window/handheld/orientation=4
[file_customization]
folder_colors={
"res://addons/": "gray",
"res://android/": "gray",
"res://assets/": "green",
"res://scenes/": "blue"
}
[input]
jump={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(240, 21),"global_position":Vector2(249, 67),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
mouse_click={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(170, 26),"global_position":Vector2(179, 72),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
[orchestrator]
settings/notify_about_pre-releases=false
settings/action_favorites=PackedStringArray("Methods/Node/_process", "Methods/Node/_physics_process")
[rendering]
textures/canvas_textures/default_texture_filter=0
renderer/rendering_method="mobile"
textures/vram_compression/import_etc2_astc=true

View file

@ -0,0 +1,29 @@
[gd_scene load_steps=2 format=3 uid="uid://pkc0xylwcsvx"]
[ext_resource type="Script" path="res://scenes/background/cloud_spawner.gd" id="1_luuon"]
[node name="Background" type="CanvasLayer"]
layer = -1
[node name="clouds" type="Node2D" parent="."]
position = Vector2(1568, 0)
[node name="cloud spawner" type="Marker2D" parent="."]
position = Vector2(1568, 0)
script = ExtResource("1_luuon")
[node name="spawn" type="Timer" parent="cloud spawner"]
wait_time = 1.5
autostart = true
[node name="ColorRect" type="ColorRect" parent="."]
z_index = -1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.815686, 0.964706, 1, 1)
metadata/_edit_lock_ = true
[connection signal="timeout" from="cloud spawner/spawn" to="cloud spawner" method="_on_spawn_timeout"]

View file

@ -0,0 +1,9 @@
extends Marker2D
const cloud = preload("res://scenes/cloud/cloud.tscn")
func _on_spawn_timeout() -> void:
var instance = cloud.instantiate()
instance.global_position = Vector2(0,randi_range(0,600))
$"../clouds".add_child(instance)

18
scenes/bird/bird.gd Normal file
View file

@ -0,0 +1,18 @@
extends CharacterBody2D
var gravity = Vector2(0,960)
var jump_power = -400
func _ready() -> void:
$AnimatedSprite2D.play("fly")
func _physics_process(delta: float) -> void:
velocity += gravity*delta
move_and_slide()
rotate(deg_to_rad(1))
func _process(_delta: float) -> void:
if Input.is_action_just_pressed("jump"):
velocity.y = jump_power
global_rotation_degrees = -20
$Jump.play()

700
scenes/bird/bird.torch Normal file
View file

@ -0,0 +1,700 @@
[orchestration type="OScript" load_steps=35 format=3 uid="uid://ww1ngor7ja6d"]
[obj type="OScriptFunction" id="OScriptFunction_wacfw"]
guid = "1031B61B-76FF-40DD-B385-F9B26B7C8CDC"
method = {
"name": &"_physics_process",
"flags": 8,
"args": [{
"name": &"delta",
"type": 3
}]
}
id = 1
[obj type="OScriptFunction" id="OScriptFunction_h5uke"]
guid = "610292FB-E2A2-493E-81FB-62E3435DC01D"
method = {
"name": &"jump"
}
user_defined = true
id = 32
[obj type="OScriptFunction" id="OScriptFunction_ldnlh"]
guid = "2269B6A6-E34A-4025-9D29-185AA4F130F7"
method = {
"name": &"_process",
"flags": 8,
"args": [{
"name": &"delta",
"type": 3
}]
}
id = 39
[obj type="OScriptFunction" id="OScriptFunction_ymphy"]
guid = "87A9D0AC-71D1-40A8-93A0-8FD28A66B5F5"
method = {
"name": &"_ready",
"flags": 8
}
id = 40
[obj type="OScriptGraph" id="OScriptGraph_vnwp4"]
graph_name = &"EventGraph"
offset = Vector2(93.2317, -555.105)
zoom = 0.309548
flags = 8
nodes = Array[int]([1, 2, 4, 8, 10, 11, 12, 17, 35, 36, 39, 40, 41, 42, 43, 47])
functions = Array[int]([1, 39, 40])
[obj type="OScriptGraph" id="OScriptGraph_rdlud"]
graph_name = &"jump"
offset = Vector2(441.83, -230.321)
zoom = 0.548383
flags = 22
nodes = Array[int]([27, 28, 29, 30, 31, 32, 37, 38, 50, 51])
functions = Array[int]([32])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_r0lqa"]
function_id = "1031B61B-76FF-40DD-B385-F9B26B7C8CDC"
id = 1
position = Vector2(640, -880)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"delta",
"type": 3,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_rfkh0"]
function_name = &"move_and_slide"
target_class_name = "CharacterBody2D"
target_type = 24
flags = 520
method = {
"name": &"move_and_slide",
"return": {
"type": 1
}
}
chain = false
id = 2
position = Vector2(1840, -880)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "CharacterBody2D",
"target_class": "CharacterBody2D"
}, {
"pin_name": &"return_value",
"type": 1,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_b3n7e"]
function_name = &"set_velocity"
target_class_name = "CharacterBody2D"
target_type = 24
flags = 520
method = {
"name": &"set_velocity",
"args": [{
"name": &"velocity",
"type": 5
}]
}
chain = false
id = 4
position = Vector2(1600, -880)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "CharacterBody2D",
"target_class": "CharacterBody2D"
}, {
"pin_name": &"velocity",
"type": 5,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeVariableGet" id="OScriptNodeVariableGet_1du6l"]
variable_name = &"gravity"
id = 8
position = Vector2(980, -680)
pin_data = Array[Dictionary]([{
"pin_name": &"value",
"type": 5,
"dir": 1,
"flags": 2050,
"label": "gravity",
"usage": 4102
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_anne1"]
function_name = &"get_velocity"
target_class_name = "CharacterBody2D"
target_type = 24
flags = 522
method = {
"name": &"get_velocity",
"return": {
"type": 5
},
"flags": 5
}
chain = false
id = 10
position = Vector2(1200, -820)
pin_data = Array[Dictionary]([{
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "CharacterBody2D",
"target_class": "CharacterBody2D"
}, {
"pin_name": &"return_value",
"type": 5,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_22rt0"]
op = 6
code = &"+"
name = &"Addition"
left_type = 5
left_type_name = &"Vector2"
right_type = 5
right_type_name = &"Vector2"
return_type = 5
id = 11
position = Vector2(1380, -700)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 5,
"flags": 2
}, {
"pin_name": &"b",
"type": 5,
"flags": 2
}, {
"pin_name": &"result",
"type": 5,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_383al"]
op = 8
code = &"*"
name = &"Multiply"
left_type = 5
left_type_name = &"Vector2"
right_type = 3
right_type_name = &"float"
return_type = 5
id = 12
position = Vector2(1180, -680)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 5,
"flags": 2
}, {
"pin_name": &"b",
"type": 3,
"flags": 2
}, {
"pin_name": &"result",
"type": 5,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeBranch" id="OScriptNodeBranch_5iqlh"]
id = 17
position = Vector2(1040, -540)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 516,
"label": "if [condition]"
}, {
"pin_name": &"condition",
"type": 1,
"flags": 2,
"dv": false
}, {
"pin_name": &"true",
"dir": 1,
"flags": 516
}, {
"pin_name": &"false",
"dir": 1,
"flags": 516
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_tcko8"]
function_name = &"set_velocity"
target_class_name = "CharacterBody2D"
target_type = 24
flags = 520
method = {
"name": &"set_velocity",
"args": [{
"name": &"velocity",
"type": 5
}]
}
chain = false
id = 27
position = Vector2(1440, -420)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "CharacterBody2D",
"target_class": "CharacterBody2D"
}, {
"pin_name": &"velocity",
"type": 5,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_7eptu"]
function_name = &"get_velocity"
target_class_name = "CharacterBody2D"
target_type = 24
flags = 522
method = {
"name": &"get_velocity",
"return": {
"type": 5
},
"flags": 5
}
chain = false
id = 28
position = Vector2(880, -340)
pin_data = Array[Dictionary]([{
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "CharacterBody2D",
"target_class": "CharacterBody2D"
}, {
"pin_name": &"return_value",
"type": 5,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeComposeFrom" id="OScriptNodeComposeFrom_rt7wi"]
id = 29
position = Vector2(1060, -220)
pin_data = Array[Dictionary]([{
"pin_name": &"x",
"type": 3,
"flags": 2
}, {
"pin_name": &"y",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"value",
"type": 5,
"dir": 1,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_ygt6u"]
op = 8
code = &"*"
name = &"Multiply"
left_type = 5
left_type_name = &"Vector2"
right_type = 3
right_type_name = &"float"
return_type = 5
id = 30
position = Vector2(1060, -340)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 5,
"flags": 2
}, {
"pin_name": &"b",
"type": 3,
"flags": 2
}, {
"pin_name": &"result",
"type": 5,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_trt2o"]
op = 6
code = &"+"
name = &"Addition"
left_type = 5
left_type_name = &"Vector2"
right_type = 5
right_type_name = &"Vector2"
return_type = 5
id = 31
position = Vector2(1260, -340)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 5,
"flags": 2
}, {
"pin_name": &"b",
"type": 5,
"flags": 2
}, {
"pin_name": &"result",
"type": 5,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeFunctionEntry" id="OScriptNodeFunctionEntry_e8ych"]
function_id = "610292FB-E2A2-493E-81FB-62E3435DC01D"
id = 32
position = Vector2(880, -420)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeInputAction" id="OScriptNodeInputAction_pvc4a"]
action = "jump"
mode = 2
id = 35
position = Vector2(860, -480)
pin_data = Array[Dictionary]([{
"pin_name": &"state",
"type": 1,
"dir": 1,
"flags": 2,
"label": "Just Pressed"
}])
[obj type="OScriptNodeCallScriptFunction" id="OScriptNodeCallScriptFunction_ixi38"]
guid = "610292FB-E2A2-493E-81FB-62E3435DC01D"
function_name = &"jump"
flags = 8
id = 36
position = Vector2(1300, -540)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_fmhbm"]
function_name = &"set_global_rotation_degrees"
target_class_name = "Node2D"
target_type = 24
flags = 520
method = {
"name": &"set_global_rotation_degrees",
"args": [{
"name": &"degrees",
"type": 3
}]
}
chain = false
id = 37
position = Vector2(1660, -420)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"degrees",
"type": 3,
"flags": 2,
"dv": -20.0
}])
[obj type="OScriptNodeVariableGet" id="OScriptNodeVariableGet_v87hg"]
variable_name = &"jumppower"
id = 38
position = Vector2(820, -220)
pin_data = Array[Dictionary]([{
"pin_name": &"value",
"type": 3,
"dir": 1,
"flags": 2050,
"label": "jumppower",
"usage": 4102
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_7kgk0"]
function_id = "2269B6A6-E34A-4025-9D29-185AA4F130F7"
id = 39
position = Vector2(640, -540)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"delta",
"type": 3,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_6iwbn"]
function_id = "87A9D0AC-71D1-40A8-93A0-8FD28A66B5F5"
id = 40
position = Vector2(640, -260)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeSceneNode" id="OScriptNodeSceneNode_ibax8"]
node_path = NodePath("AnimatedSprite2D")
target_class_name = "AnimatedSprite2D"
id = 41
position = Vector2(620, -180)
pin_data = Array[Dictionary]([{
"pin_name": &"AnimatedSprite2D",
"type": 24,
"dir": 1,
"flags": 2050,
"target_class": "AnimatedSprite2D"
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_57klu"]
function_name = &"play"
target_class_name = "AnimatedSprite2D"
target_type = 24
flags = 520
method = {
"name": &"play",
"default_args": [&"", 1.0, false],
"args": [{
"name": &"name",
"type": 21
}, {
"name": &"custom_speed",
"type": 3
}, {
"name": &"from_end",
"type": 1
}]
}
chain = false
id = 42
position = Vector2(900, -260)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "AnimatedSprite2D",
"target_class": "AnimatedSprite2D"
}, {
"pin_name": &"name",
"type": 21,
"flags": 2,
"dv": "fly"
}, {
"pin_name": &"custom_speed",
"type": 3,
"flags": 2,
"dv": 1.0,
"gdv": 1.0
}, {
"pin_name": &"from_end",
"type": 1,
"flags": 2,
"dv": false
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_34or8"]
function_name = &"rotate"
target_class_name = "Node2D"
target_type = 24
flags = 520
method = {
"name": &"rotate",
"args": [{
"name": &"radians",
"type": 3
}]
}
chain = false
id = 43
position = Vector2(2100, -820)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"radians",
"type": 3,
"flags": 2,
"dv": 0.0
}])
[obj type="OScriptNodeCallBuiltinFunction" id="OScriptNodeCallBuiltinFunction_yeao5"]
function_name = &"deg_to_rad"
method = {
"name": &"deg_to_rad",
"return": {
"type": 3
},
"args": [{
"name": &"deg",
"type": 3
}]
}
id = 47
position = Vector2(1880, -760)
pin_data = Array[Dictionary]([{
"pin_name": &"deg",
"type": 3,
"flags": 2,
"dv": 1.0
}, {
"pin_name": &"return_value",
"type": 3,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeSceneNode" id="OScriptNodeSceneNode_qgbbb"]
node_path = NodePath("Jump")
target_class_name = "AudioStreamPlayer"
id = 50
position = Vector2(1980, -360)
pin_data = Array[Dictionary]([{
"pin_name": &"Jump",
"type": 24,
"dir": 1,
"flags": 2050,
"target_class": "AudioStreamPlayer"
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_baiiq"]
function_name = &"play"
target_class_name = "AudioStreamPlayer"
target_type = 24
flags = 520
method = {
"name": &"play",
"default_args": [0.0],
"args": [{
"name": &"from_position",
"type": 3
}]
}
chain = false
id = 51
position = Vector2(2200, -420)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "AudioStreamPlayer",
"target_class": "AudioStreamPlayer"
}, {
"pin_name": &"from_position",
"type": 3,
"flags": 2,
"dv": 0.0
}])
[obj type="OScriptVariable" id="OScriptVariable_76gxp"]
name = "gravity"
category = "Default"
classification = "type:Vector2"
type = 5
default_value = Vector2(0, 960)
[obj type="OScriptVariable" id="OScriptVariable_sqwey"]
name = "jumppower"
category = "Default"
classification = "type:float"
type = 3
default_value = -400.0
[resource]
base_type = &"CharacterBody2D"
variables = Array[OScriptVariable]([SubResource("OScriptVariable_76gxp"), SubResource("OScriptVariable_sqwey")])
functions = Array[OScriptFunction]([SubResource("OScriptFunction_wacfw"), SubResource("OScriptFunction_h5uke"), SubResource("OScriptFunction_ldnlh"), SubResource("OScriptFunction_ymphy")])
connections = Array[int]([4, 0, 2, 0, 1, 0, 4, 0, 10, 0, 11, 0, 8, 0, 12, 0, 39, 0, 17, 0, 32, 0, 27, 0, 28, 0, 30, 0, 30, 0, 31, 0, 17, 0, 36, 0, 27, 0, 37, 0, 40, 0, 42, 0, 2, 0, 43, 0, 37, 0, 51, 0, 12, 0, 11, 1, 1, 1, 12, 1, 35, 0, 17, 1, 38, 0, 29, 1, 29, 0, 31, 1, 41, 0, 42, 1, 50, 0, 51, 1, 11, 0, 4, 2, 31, 0, 27, 2, 47, 0, 43, 2])
nodes = Array[OScriptNode]([SubResource("OScriptNodeEvent_r0lqa"), SubResource("OScriptNodeCallMemberFunction_rfkh0"), SubResource("OScriptNodeCallMemberFunction_b3n7e"), SubResource("OScriptNodeVariableGet_1du6l"), SubResource("OScriptNodeCallMemberFunction_anne1"), SubResource("OScriptNodeOperator_22rt0"), SubResource("OScriptNodeOperator_383al"), SubResource("OScriptNodeBranch_5iqlh"), SubResource("OScriptNodeCallMemberFunction_tcko8"), SubResource("OScriptNodeCallMemberFunction_7eptu"), SubResource("OScriptNodeComposeFrom_rt7wi"), SubResource("OScriptNodeOperator_ygt6u"), SubResource("OScriptNodeOperator_trt2o"), SubResource("OScriptNodeFunctionEntry_e8ych"), SubResource("OScriptNodeInputAction_pvc4a"), SubResource("OScriptNodeCallScriptFunction_ixi38"), SubResource("OScriptNodeCallMemberFunction_fmhbm"), SubResource("OScriptNodeVariableGet_v87hg"), SubResource("OScriptNodeEvent_7kgk0"), SubResource("OScriptNodeEvent_6iwbn"), SubResource("OScriptNodeSceneNode_ibax8"), SubResource("OScriptNodeCallMemberFunction_57klu"), SubResource("OScriptNodeCallMemberFunction_34or8"), SubResource("OScriptNodeCallBuiltinFunction_yeao5"), SubResource("OScriptNodeSceneNode_qgbbb"), SubResource("OScriptNodeCallMemberFunction_baiiq")])
graphs = Array[OScriptGraph]([SubResource("OScriptGraph_vnwp4"), SubResource("OScriptGraph_rdlud")])

50
scenes/bird/bird.tscn Normal file
View file

@ -0,0 +1,50 @@
[gd_scene load_steps=8 format=3 uid="uid://p4ok7pbb7jks"]
[ext_resource type="Texture2D" uid="uid://cg2pfy0xiqc2n" path="res://assets/images/bird/1.png" id="1_bfb63"]
[ext_resource type="Script" path="res://scenes/bird/bird.gd" id="1_qkdre"]
[ext_resource type="Texture2D" uid="uid://bcsmsauyx5snh" path="res://assets/images/bird/traurig.png" id="2_vjjeb"]
[ext_resource type="Texture2D" uid="uid://db8a4y650lxxq" path="res://assets/images/bird/2.png" id="4_yix81"]
[ext_resource type="AudioStream" uid="uid://3ubywe0tisu" path="res://assets/sounds/jump.wav" id="5_bp6ee"]
[sub_resource type="SpriteFrames" id="SpriteFrames_lt608"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_vjjeb")
}],
"loop": true,
"name": &"die",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_bfb63")
}, {
"duration": 1.0,
"texture": ExtResource("4_yix81")
}],
"loop": true,
"name": &"fly",
"speed": 3.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_er0y6"]
radius = 23.0
height = 68.0
[node name="bird" type="CharacterBody2D"]
script = ExtResource("1_qkdre")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(4, 4)
sprite_frames = SubResource("SpriteFrames_lt608")
animation = &"fly"
frame_progress = 0.779322
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource("CapsuleShape2D_er0y6")
[node name="Jump" type="AudioStreamPlayer" parent="."]
stream = ExtResource("5_bp6ee")
bus = &"Effects"

15
scenes/cloud/cloud.gd Normal file
View file

@ -0,0 +1,15 @@
extends Sprite2D
var speed:int
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
frame = randi_range(0,3)
var sc = randi_range(1,6)
scale = Vector2(sc,sc)
speed = randi_range(-1,-4)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
global_position.x += speed

470
scenes/cloud/cloud.torch Normal file
View file

@ -0,0 +1,470 @@
[orchestration type="OScript" load_steps=23 format=3 uid="uid://dk1fj1b34j6oe"]
[obj type="OScriptFunction" id="OScriptFunction_ngs18"]
guid = "4E93ED4F-1566-4AD5-885A-21A5B25A0020"
method = {
"name": &"_ready",
"flags": 8
}
id = 0
[obj type="OScriptFunction" id="OScriptFunction_hl67t"]
guid = "68015AFE-F296-4A95-AF87-0D2149ABD799"
method = {
"name": &"_process",
"flags": 8,
"args": [{
"name": &"delta",
"type": 3
}]
}
id = 4
[obj type="OScriptFunction" id="OScriptFunction_hy1i5"]
guid = "C9480AC5-8F88-4F12-8CBD-26C8D5EEA0D8"
method = {
"name": &"_on_visible_on_screen_notifier_2d_screen_exited"
}
id = 14
[obj type="OScriptGraph" id="OScriptGraph_qvaj1"]
graph_name = &"EventGraph"
offset = Vector2(118.151, 35.7418)
zoom = 1.21
flags = 8
nodes = Array[int]([0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])
functions = Array[int]([0, 4, 14])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_d0t27"]
function_id = "4E93ED4F-1566-4AD5-885A-21A5B25A0020"
id = 0
position = Vector2(320, 200)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodePropertySet" id="OScriptNodePropertySet_5xg6c"]
mode = 2
property_name = &"frame"
property_hint = "0,3,1"
node_path = NodePath(".")
property = {
"name": &"frame",
"type": 2,
"class_name": &"",
"hint": 1,
"hint_string": "0,3,1",
"usage": 16777222
}
id = 1
position = Vector2(640, 200)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"frame",
"type": 2,
"flags": 2,
"dv": 0,
"hint": 1,
"hint_string": "0,3,1",
"usage": 16777222
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeCallBuiltinFunction" id="OScriptNodeCallBuiltinFunction_i7flf"]
function_name = &"randi_range"
method = {
"name": &"randi_range",
"return": {
"type": 2
},
"args": [{
"name": &"from",
"type": 2
}, {
"name": &"to",
"type": 2
}]
}
id = 2
position = Vector2(440, 280)
pin_data = Array[Dictionary]([{
"pin_name": &"from",
"type": 2,
"flags": 2
}, {
"pin_name": &"to",
"type": 2,
"flags": 2,
"dv": 4
}, {
"pin_name": &"return_value",
"type": 2,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_3043m"]
function_id = "68015AFE-F296-4A95-AF87-0D2149ABD799"
id = 4
position = Vector2(320, 420)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"delta",
"type": 3,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_waa14"]
function_name = &"get_global_position"
target_class_name = "Node2D"
target_type = 24
flags = 522
method = {
"name": &"get_global_position",
"return": {
"type": 5
},
"flags": 5
}
chain = false
id = 5
position = Vector2(340, 600)
pin_data = Array[Dictionary]([{
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"return_value",
"type": 5,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_tovmh"]
function_name = &"set_global_position"
target_class_name = "Node2D"
target_type = 24
flags = 520
method = {
"name": &"set_global_position",
"args": [{
"name": &"position",
"type": 5
}]
}
chain = false
id = 6
position = Vector2(1180, 420)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"position",
"type": 5,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_y6f7j"]
op = 6
code = &"+"
name = &"Addition"
left_type = 2
left_type_name = &"int"
right_type = 2
right_type_name = &"int"
return_type = 2
id = 7
position = Vector2(800, 560)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 2,
"flags": 2
}, {
"pin_name": &"b",
"type": 2,
"flags": 2
}, {
"pin_name": &"result",
"type": 2,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeDecompose" id="OScriptNodeDecompose_oqbno"]
id = 8
position = Vector2(580, 600)
pin_data = Array[Dictionary]([{
"pin_name": &"value",
"type": 5,
"flags": 10,
"dv": Vector2(0, 0)
}, {
"pin_name": &"x",
"type": 3,
"dir": 1,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"y",
"type": 3,
"dir": 1,
"flags": 2,
"dv": 0.0
}])
[obj type="OScriptNodeComposeFrom" id="OScriptNodeComposeFrom_wxgaa"]
id = 9
position = Vector2(980, 600)
pin_data = Array[Dictionary]([{
"pin_name": &"x",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"y",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"value",
"type": 5,
"dir": 1,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeCallBuiltinFunction" id="OScriptNodeCallBuiltinFunction_1b54s"]
function_name = &"randi_range"
method = {
"name": &"randi_range",
"return": {
"type": 2
},
"args": [{
"name": &"from",
"type": 2
}, {
"name": &"to",
"type": 2
}]
}
id = 10
position = Vector2(1440, 260)
pin_data = Array[Dictionary]([{
"pin_name": &"from",
"type": 2,
"flags": 2,
"dv": -1
}, {
"pin_name": &"to",
"type": 2,
"flags": 2,
"dv": -4
}, {
"pin_name": &"return_value",
"type": 2,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_34soe"]
function_name = &"set_global_scale"
target_class_name = "Node2D"
target_type = 24
flags = 520
method = {
"name": &"set_global_scale",
"args": [{
"name": &"scale",
"type": 5
}]
}
chain = false
id = 11
position = Vector2(1220, 200)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"scale",
"type": 5,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeComposeFrom" id="OScriptNodeComposeFrom_r8ki6"]
id = 12
position = Vector2(1020, 280)
pin_data = Array[Dictionary]([{
"pin_name": &"x",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"y",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"value",
"type": 5,
"dir": 1,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeCallBuiltinFunction" id="OScriptNodeCallBuiltinFunction_a637r"]
function_name = &"randf_range"
method = {
"name": &"randf_range",
"return": {
"type": 3
},
"args": [{
"name": &"from",
"type": 3
}, {
"name": &"to",
"type": 3
}]
}
id = 13
position = Vector2(820, 280)
pin_data = Array[Dictionary]([{
"pin_name": &"from",
"type": 3,
"flags": 2,
"dv": 1.0
}, {
"pin_name": &"to",
"type": 3,
"flags": 2,
"dv": 6.0
}, {
"pin_name": &"return_value",
"type": 3,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_euhco"]
function_id = "C9480AC5-8F88-4F12-8CBD-26C8D5EEA0D8"
id = 14
position = Vector2(340, 760)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_55fjp"]
function_name = &"queue_free"
target_class_name = "Node"
target_type = 24
flags = 520
method = {
"name": &"queue_free"
}
chain = false
id = 15
position = Vector2(860, 760)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node",
"target_class": "Node"
}])
[obj type="OScriptNodeVariableGet" id="OScriptNodeVariableGet_imnbl"]
variable_name = &"speed"
id = 16
position = Vector2(600, 480)
pin_data = Array[Dictionary]([{
"pin_name": &"value",
"type": 3,
"dir": 1,
"flags": 2050,
"label": "speed",
"usage": 4102
}])
[obj type="OScriptNodeVariableSet" id="OScriptNodeVariableSet_62f5t"]
variable_name = &"speed"
id = 17
position = Vector2(1640, 200)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"speed",
"type": 3,
"flags": 2050,
"usage": 4102
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"value",
"type": 3,
"dir": 1,
"flags": 1026,
"usage": 4102
}])
[obj type="OScriptVariable" id="OScriptVariable_nfldx"]
name = "speed"
category = "Default"
classification = "type:float"
type = 3
default_value = 0.0
[resource]
base_type = &"Sprite2D"
variables = Array[OScriptVariable]([SubResource("OScriptVariable_nfldx")])
functions = Array[OScriptFunction]([SubResource("OScriptFunction_ngs18"), SubResource("OScriptFunction_hl67t"), SubResource("OScriptFunction_hy1i5")])
connections = Array[int]([0, 0, 1, 0, 4, 0, 6, 0, 16, 0, 7, 0, 5, 0, 8, 0, 7, 0, 9, 0, 1, 0, 11, 0, 13, 0, 12, 0, 14, 0, 15, 0, 11, 0, 17, 0, 2, 0, 1, 1, 8, 0, 7, 1, 8, 1, 9, 1, 13, 0, 12, 1, 10, 0, 17, 1, 9, 0, 6, 2, 12, 0, 11, 2])
nodes = Array[OScriptNode]([SubResource("OScriptNodeEvent_d0t27"), SubResource("OScriptNodePropertySet_5xg6c"), SubResource("OScriptNodeCallBuiltinFunction_i7flf"), SubResource("OScriptNodeEvent_3043m"), SubResource("OScriptNodeCallMemberFunction_waa14"), SubResource("OScriptNodeCallMemberFunction_tovmh"), SubResource("OScriptNodeOperator_y6f7j"), SubResource("OScriptNodeDecompose_oqbno"), SubResource("OScriptNodeComposeFrom_wxgaa"), SubResource("OScriptNodeCallBuiltinFunction_1b54s"), SubResource("OScriptNodeCallMemberFunction_34soe"), SubResource("OScriptNodeComposeFrom_r8ki6"), SubResource("OScriptNodeCallBuiltinFunction_a637r"), SubResource("OScriptNodeEvent_euhco"), SubResource("OScriptNodeCallMemberFunction_55fjp"), SubResource("OScriptNodeVariableGet_imnbl"), SubResource("OScriptNodeVariableSet_62f5t")])
graphs = Array[OScriptGraph]([SubResource("OScriptGraph_qvaj1")])

17
scenes/cloud/cloud.tscn Normal file
View file

@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://dhrn26gfar1rn"]
[ext_resource type="Texture2D" uid="uid://cfks34adpcdyi" path="res://assets/images/clouds/clouds.png" id="1_jfc78"]
[ext_resource type="Script" path="res://scenes/cloud/cloud.gd" id="2_m6nde"]
[node name="Cloud" type="Sprite2D"]
scale = Vector2(6, 6)
texture = ExtResource("1_jfc78")
vframes = 4
frame = 3
script = ExtResource("2_m6nde")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
position = Vector2(6.08333, 0.500001)
scale = Vector2(0.608333, 0.7)
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]

43
scenes/gui/puff.tscn Normal file
View file

@ -0,0 +1,43 @@
[gd_scene load_steps=7 format=3 uid="uid://52knyyx1ypg1"]
[ext_resource type="Texture2D" uid="uid://c2ty5xty0mk3t" path="res://assets/images/clouds/w4.png" id="1_rtr5g"]
[sub_resource type="Gradient" id="Gradient_urd7v"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_ci4ss"]
gradient = SubResource("Gradient_urd7v")
[sub_resource type="Curve" id="Curve_8m5j8"]
min_value = -1.0
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_b62ow"]
curve = SubResource("Curve_8m5j8")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_tayv3"]
particle_flag_disable_z = true
emission_shape_scale = Vector3(0, 1, 1)
angle_min = -180.0
angle_max = 180.0
initial_velocity_max = 300.0
angular_velocity_min = -180.0
angular_velocity_max = -1.60933e-05
gravity = Vector3(0, 98, 0)
color_ramp = SubResource("GradientTexture1D_ci4ss")
hue_variation_min = -1.0
hue_variation_max = 1.0
hue_variation_curve = SubResource("CurveTexture_b62ow")
collision_mode = 1
collision_friction = 0.0
collision_bounce = 1.0
[node name="puff" type="GPUParticles2D"]
emitting = false
amount = 40
process_material = SubResource("ParticleProcessMaterial_tayv3")
texture = ExtResource("1_rtr5g")
lifetime = 4.0
one_shot = true
explosiveness = 1.0

View file

@ -0,0 +1,9 @@
[orchestration type="OScript" load_steps=2 format=3 uid="uid://7877vrq5ltdr"]
[obj type="OScriptGraph" id="OScriptGraph_wx4gl"]
graph_name = &"EventGraph"
flags = 8
[resource]
base_type = &"Area2D"
graphs = Array[OScriptGraph]([SubResource("OScriptGraph_wx4gl")])

View file

@ -0,0 +1,7 @@
extends TextureButton
func _on_pressed() -> void:
$puff.emitting = true

View file

@ -0,0 +1,14 @@
extends Control
func _on_play_pressed() -> void:
get_tree().change_scene_to_file("res://scenes/main.tscn")
func _on_exit_pressed() -> void:
get_tree().quit()

View file

@ -0,0 +1,265 @@
[orchestration type="OScript" load_steps=14 format=3 uid="uid://b8x2gyqycqrwr"]
[obj type="OScriptFunction" id="OScriptFunction_fx4b6"]
guid = "4A1F41EB-67C4-426C-8DCD-816349F7865C"
method = {
"name": &"_on_play_pressed"
}
id = 0
[obj type="OScriptFunction" id="OScriptFunction_vp4yh"]
guid = "11178596-046B-467D-966A-41FF7DA575C7"
method = {
"name": &"_on_exit_pressed"
}
id = 4
[obj type="OScriptGraph" id="OScriptGraph_rq4gi"]
graph_name = &"EventGraph"
offset = Vector2(-552.654, 103.831)
zoom = 0.883177
flags = 8
nodes = Array[int]([0, 1, 2, 3, 4, 5, 6, 8, 10, 11])
functions = Array[int]([0, 4])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_i4kj0"]
function_id = "4A1F41EB-67C4-426C-8DCD-816349F7865C"
id = 0
position = Vector2(-440, -120)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeSceneTree" id="OScriptNodeSceneTree_a1eq1"]
id = 1
position = Vector2(-400, -20)
pin_data = Array[Dictionary]([{
"pin_name": &"scene_tree",
"type": 24,
"dir": 1,
"flags": 2,
"target_class": "SceneTree"
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_wd3kt"]
function_name = &"change_scene_to_file"
target_class_name = "SceneTree"
target_type = 24
flags = 520
method = {
"name": &"change_scene_to_file",
"return": {
"type": 2,
"class_name": &"Error",
"usage": 65542
},
"args": [{
"name": &"path",
"type": 4
}]
}
chain = false
id = 2
position = Vector2(80, -100)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "SceneTree",
"target_class": "SceneTree"
}, {
"pin_name": &"path",
"type": 4,
"flags": 2,
"dv": ""
}, {
"pin_name": &"return_value",
"type": 2,
"dir": 1,
"flags": 33554434,
"label": "Error",
"target_class": "Error",
"usage": 65542
}])
[obj type="OScriptNodeResourcePath" id="OScriptNodeResourcePath_h36mq"]
path = "res://scenes/main.tscn"
id = 3
position = Vector2(-220, 100)
pin_data = Array[Dictionary]([{
"pin_name": &"path",
"type": 4,
"dir": 1,
"flags": 2050,
"label": "res://scenes/main.tscn",
"dv": ""
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_tgoc7"]
function_id = "11178596-046B-467D-966A-41FF7DA575C7"
id = 4
position = Vector2(-420, 560)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeSceneTree" id="OScriptNodeSceneTree_gxroo"]
id = 5
position = Vector2(-300, 640)
pin_data = Array[Dictionary]([{
"pin_name": &"scene_tree",
"type": 24,
"dir": 1,
"flags": 2,
"target_class": "SceneTree"
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_jd1xd"]
function_name = &"quit"
target_class_name = "SceneTree"
target_type = 24
flags = 520
method = {
"name": &"quit",
"default_args": [0],
"args": [{
"name": &"exit_code",
"type": 2
}]
}
chain = false
id = 6
position = Vector2(-40, 560)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "SceneTree",
"target_class": "SceneTree"
}, {
"pin_name": &"exit_code",
"type": 2,
"flags": 2,
"dv": 0
}])
[obj type="OScriptNodeSceneNode" id="OScriptNodeSceneNode_14yay"]
node_path = NodePath("music")
target_class_name = "AudioStreamPlayer"
id = 8
position = Vector2(80, 60)
pin_data = Array[Dictionary]([{
"pin_name": &"music",
"type": 24,
"dir": 1,
"flags": 2050,
"target_class": "AudioStreamPlayer"
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_3sx2o"]
function_name = &"add_child"
target_class_name = "Node"
target_type = 24
flags = 520
method = {
"name": &"add_child",
"default_args": [false, 0],
"args": [{
"name": &"node",
"type": 24,
"class_name": &"Node"
}, {
"name": &"force_readable_name",
"type": 1
}, {
"name": &"internal",
"type": 2,
"class_name": &"Node.InternalMode",
"usage": 65542
}]
}
chain = false
id = 10
position = Vector2(420, -60)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node",
"target_class": "Node"
}, {
"pin_name": &"node",
"type": 24,
"flags": 2,
"target_class": "Node"
}, {
"pin_name": &"force_readable_name",
"type": 1,
"flags": 2,
"dv": false
}, {
"pin_name": &"internal",
"type": 2,
"flags": 33554434,
"target_class": "Node.InternalMode",
"dv": 0,
"usage": 65542
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_hc3ng"]
function_name = &"queue_free"
target_class_name = "Node"
target_type = 24
flags = 520
method = {
"name": &"queue_free"
}
chain = false
id = 11
position = Vector2(-160, -120)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node",
"target_class": "Node"
}])
[resource]
base_type = &"Control"
functions = Array[OScriptFunction]([SubResource("OScriptFunction_fx4b6"), SubResource("OScriptFunction_vp4yh")])
connections = Array[int]([11, 0, 2, 0, 4, 0, 6, 0, 2, 0, 10, 0, 0, 0, 11, 0, 1, 0, 2, 1, 5, 0, 6, 1, 8, 0, 11, 1, 3, 0, 2, 2, 8, 0, 10, 2])
nodes = Array[OScriptNode]([SubResource("OScriptNodeEvent_i4kj0"), SubResource("OScriptNodeSceneTree_a1eq1"), SubResource("OScriptNodeCallMemberFunction_wd3kt"), SubResource("OScriptNodeResourcePath_h36mq"), SubResource("OScriptNodeEvent_tgoc7"), SubResource("OScriptNodeSceneTree_gxroo"), SubResource("OScriptNodeCallMemberFunction_jd1xd"), SubResource("OScriptNodeSceneNode_14yay"), SubResource("OScriptNodeCallMemberFunction_3sx2o"), SubResource("OScriptNodeCallMemberFunction_hc3ng")])
graphs = Array[OScriptGraph]([SubResource("OScriptGraph_rq4gi")])

View file

@ -0,0 +1,361 @@
[gd_scene load_steps=14 format=3 uid="uid://c0mhbgge5ocss"]
[ext_resource type="Script" path="res://scenes/gui/startscreen/startscreen.gd" id="1_1ni70"]
[ext_resource type="PackedScene" uid="uid://pkc0xylwcsvx" path="res://scenes/background/background.tscn" id="1_wfe0h"]
[ext_resource type="Texture2D" uid="uid://chkpw3t1i4il1" path="res://icon.png" id="2_k1sxv"]
[ext_resource type="PackedScene" uid="uid://bo8pkjaj4tu44" path="res://scenes/pipe/pipe.tscn" id="2_nw6te"]
[ext_resource type="Texture2D" uid="uid://bmcn41xuywnm5" path="res://assets/images/pipe.png" id="2_x8auj"]
[ext_resource type="Texture2D" uid="uid://iuwyotlo7766" path="res://assets/images/gui/play.png" id="3_635x5"]
[ext_resource type="Script" path="res://scenes/gui/startscreen/easteregg.gd" id="3_cqlg8"]
[ext_resource type="Texture2D" uid="uid://c2ty5xty0mk3t" path="res://assets/images/clouds/w4.png" id="3_xla87"]
[ext_resource type="Texture2D" uid="uid://bgqpcw6t22djf" path="res://assets/images/gui/exit.png" id="4_dfy67"]
[ext_resource type="AudioStream" uid="uid://qjevjhqvykkg" path="res://assets/sounds/popcorn.wav" id="10_y6vx2"]
[sub_resource type="Gradient" id="Gradient_26v0n"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_gyy01"]
gradient = SubResource("Gradient_26v0n")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_1c6ff"]
particle_flag_disable_z = true
angle_min = 1.07288e-05
angle_max = 360.0
initial_velocity_max = 50.0
gravity = Vector3(0, 98, 0)
color_ramp = SubResource("GradientTexture1D_gyy01")
[node name="Startscreen" type="Control"]
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.8, 0.8)
size_flags_vertical = 3
script = ExtResource("1_1ni70")
metadata/_edit_horizontal_guides_ = [700.0]
[node name="Background" parent="." instance=ExtResource("1_wfe0h")]
[node name="EASTEREGG" type="TextureButton" parent="."]
layout_direction = 1
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 252.5
offset_top = -221.25
offset_right = 454.5
offset_bottom = 4209.75
grow_horizontal = 2
grow_vertical = 2
rotation = 3.92699
texture_normal = ExtResource("2_x8auj")
texture_pressed = ExtResource("2_x8auj")
ignore_texture_size = true
stretch_mode = 4
script = ExtResource("3_cqlg8")
[node name="puff" type="GPUParticles2D" parent="EASTEREGG"]
z_index = -1
position = Vector2(112.253, 62.7565)
rotation = -1.57079
scale = Vector2(10, 10)
emitting = false
amount = 120
process_material = SubResource("ParticleProcessMaterial_1c6ff")
texture = ExtResource("3_xla87")
lifetime = 2.0
one_shot = true
[node name="pipes" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="pipe" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-136.25, 283.75)
scale = Vector2(2, 2)
move = false
[node name="pipe3" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-233.75, 240)
scale = Vector2(2, 2)
move = false
[node name="pipe4" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(581.25, 261.25)
scale = Vector2(3, 3)
move = false
[node name="pipe19" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(723.75, 160)
scale = Vector2(4, 4)
move = false
[node name="pipe5" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(475, 345)
scale = Vector2(2, 2)
move = false
[node name="pipe17" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(92.5, 311.25)
rotation = -0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe18" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(72.5, 428.75)
rotation = -0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe6" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-650, 232.5)
rotation = 0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe16" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-671.25, 106.25)
rotation = 0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe2" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-41.25, 327.5)
scale = Vector2(2, 2)
move = false
[node name="pipe7" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-455, -357.5)
rotation = 2.35619
scale = Vector2(2, 2)
move = false
[node name="pipe8" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-705, -117.5)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe9" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-228.75, -363.75)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe10" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-143.75, -308.75)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe11" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-52.5, -326.25)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe12" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(538.75, -350)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe13" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(627.5, -296.25)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe14" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(708.75, -195)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe20" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-988.75, 287.5)
scale = Vector2(2, 2)
move = false
[node name="pipe39" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1621.25, 152.5)
scale = Vector2(10, 10)
move = false
[node name="pipe21" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1082.5, -8.74998)
scale = Vector2(2, 2)
move = false
[node name="pipe22" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(2411.25, 162.5)
scale = Vector2(3, 3)
move = false
[node name="pipe23" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(965, -306.25)
scale = Vector2(4, 4)
move = false
[node name="pipe24" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(2590, 302.5)
scale = Vector2(2, 2)
move = false
[node name="pipe25" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(3177.5, 272.5)
rotation = -0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe26" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(2958.75, 243.75)
rotation = -0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe27" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-2161.25, -266.25)
rotation = 0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe28" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-2177.5, 220)
rotation = 0.785397
scale = Vector2(2, 2)
move = false
[node name="pipe29" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-886.25, -172.5)
scale = Vector2(2, 2)
move = false
[node name="pipe30" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1726.25, -40)
rotation = 2.35619
scale = Vector2(2, 2)
move = false
[node name="pipe31" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1553.75, -221.25)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe32" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1435, -303.75)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe33" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1316.25, -118.75)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe34" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(-1203.75, -351.25)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe35" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(1687.5, -55)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe36" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(1423.75, -286.25)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe37" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(1557.5, 160)
rotation = 3.14159
scale = Vector2(2, 2)
move = false
[node name="pipe38" parent="pipes" instance=ExtResource("2_nw6te")]
position = Vector2(1107.5, 1040)
rotation = 3.92699
scale = Vector2(6, 6)
move = false
[node name="EASTEREGG3" type="TextureButton" parent="."]
layout_direction = 1
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -575.0
offset_top = 277.5
offset_right = -330.0
offset_bottom = 5277.5
grow_horizontal = 2
grow_vertical = 2
toggle_mode = true
texture_normal = ExtResource("2_x8auj")
texture_pressed = ExtResource("2_x8auj")
texture_disabled = ExtResource("2_k1sxv")
ignore_texture_size = true
stretch_mode = 4
[node name="GUI" type="HSplitContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -688.5
offset_top = -300.0
offset_right = 688.5
offset_bottom = 300.0
grow_horizontal = 2
grow_vertical = 2
dragger_visibility = 2
[node name="Logo" type="TextureRect" parent="GUI"]
layout_mode = 2
texture = ExtResource("2_k1sxv")
stretch_mode = 2
[node name="Buttons" type="VBoxContainer" parent="GUI"]
layout_mode = 2
[node name="Play" type="TextureButton" parent="GUI/Buttons"]
layout_mode = 2
texture_normal = ExtResource("3_635x5")
[node name="Exit" type="TextureButton" parent="GUI/Buttons"]
layout_mode = 2
texture_normal = ExtResource("4_dfy67")
[node name="music" type="AudioStreamPlayer" parent="."]
stream = ExtResource("10_y6vx2")
autoplay = true
bus = &"Music"
playback_type = 1
[connection signal="pressed" from="EASTEREGG" to="EASTEREGG" method="_on_pressed"]
[connection signal="pressed" from="EASTEREGG3" to="EASTEREGG3" method="_on_pressed"]
[connection signal="pressed" from="GUI/Buttons/Play" to="." method="_on_play_pressed"]
[connection signal="pressed" from="GUI/Buttons/Exit" to="." method="_on_exit_pressed"]

47
scenes/main.tscn Normal file
View file

@ -0,0 +1,47 @@
[gd_scene load_steps=6 format=3 uid="uid://cqd50t6qhjigy"]
[ext_resource type="PackedScene" uid="uid://pkc0xylwcsvx" path="res://scenes/background/background.tscn" id="1_8me3y"]
[ext_resource type="PackedScene" uid="uid://p4ok7pbb7jks" path="res://scenes/bird/bird.tscn" id="1_e2wtq"]
[ext_resource type="Script" path="res://scenes/pipe_spawner.gd" id="3_8x68a"]
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_gax6h"]
distance = -700.0
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_53oto"]
normal = Vector2(0, 1)
[node name="main" type="Node2D"]
metadata/_edit_horizontal_guides_ = [699.0]
[node name="Background" parent="." instance=ExtResource("1_8me3y")]
[node name="bird" parent="." instance=ExtResource("1_e2wtq")]
position = Vector2(150, 326)
[node name="pipes" type="Node2D" parent="."]
z_as_relative = false
position = Vector2(1568, 0)
[node name="pipe spawner" type="Marker2D" parent="."]
position = Vector2(1568, 0)
script = ExtResource("3_8x68a")
[node name="spawn_pipe" type="Timer" parent="pipe spawner"]
wait_time = 2.0
autostart = true
[node name="levelup" type="Timer" parent="pipe spawner"]
wait_time = 5.0
autostart = true
[node name="border" type="StaticBody2D" parent="."]
metadata/_edit_lock_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="border"]
shape = SubResource("WorldBoundaryShape2D_gax6h")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="border"]
shape = SubResource("WorldBoundaryShape2D_53oto")
[connection signal="timeout" from="pipe spawner/spawn_pipe" to="pipe spawner" method="_on_spawn_pipe_timeout"]
[connection signal="timeout" from="pipe spawner/levelup" to="pipe spawner" method="_on_levelup_timeout"]

20
scenes/pipe/pipe.gd Normal file
View file

@ -0,0 +1,20 @@
extends AnimatableBody2D
@export var move=true
@export var del_on_screen_exit=true
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if global_rotation_degrees > -90:
$sprite.flip_h = true
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
if move:
global_position += Vector2(-4,0)
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
if del_on_screen_exit:
queue_free()
print("pipes deleted")

605
scenes/pipe/pipe.torch Normal file
View file

@ -0,0 +1,605 @@
[orchestration type="OScript" load_steps=34 format=3 uid="uid://diohul3xtdogn"]
[obj type="OScriptFunction" id="OScriptFunction_im4xq"]
guid = "39BAF2FA-B50A-4B15-9C6B-3A2E168EB826"
method = {
"name": &"_physics_process",
"flags": 8,
"args": [{
"name": &"delta",
"type": 3
}]
}
id = 6
[obj type="OScriptFunction" id="OScriptFunction_igi14"]
guid = "303EFCC6-A965-42D9-8EC7-23974EB1CD2D"
method = {
"name": &"_ready",
"flags": 8
}
id = 22
[obj type="OScriptFunction" id="OScriptFunction_yp8xe"]
guid = "76474EBC-B668-4F17-984B-7B6B80C74BA5"
method = {
"name": &"new_pos",
"return": {
"type": 5
},
"args": [{
"name": &"a",
"type": 5
}, {
"name": &"y_offset",
"type": 3
}]
}
user_defined = true
id = 40
[obj type="OScriptFunction" id="OScriptFunction_2bonc"]
guid = "31593827-58DD-4FB9-A462-B7A87F83A977"
method = {
"name": &"_on_visible_on_screen_notifier_2d_screen_exited"
}
id = 63
[obj type="OScriptGraph" id="OScriptGraph_kqnq4"]
graph_name = &"EventGraph"
offset = Vector2(82.6969, 853.195)
zoom = 1.06864
flags = 8
nodes = Array[int]([6, 19, 22, 43, 44, 51, 53, 54, 56, 59, 61, 62, 63, 64, 65, 66, 67, 68])
functions = Array[int]([6, 22, 63])
[obj type="OScriptGraph" id="OScriptGraph_2m2e4"]
graph_name = &"new_pos"
offset = Vector2(-86.8504, -231.851)
zoom = 0.263331
flags = 22
nodes = Array[int]([29, 30, 31, 32, 40, 41])
functions = Array[int]([40])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_6x8w8"]
function_id = "39BAF2FA-B50A-4B15-9C6B-3A2E168EB826"
id = 6
position = Vector2(160, 460)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"delta",
"type": 3,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_28xu4"]
function_name = &"set_global_position"
target_class_name = "Node2D"
target_type = 24
flags = 520
method = {
"name": &"set_global_position",
"args": [{
"name": &"position",
"type": 5
}]
}
chain = false
id = 19
position = Vector2(840, 680)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"position",
"type": 5,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_6di3c"]
function_id = "303EFCC6-A965-42D9-8EC7-23974EB1CD2D"
id = 22
position = Vector2(160, 80)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeComposeFrom" id="OScriptNodeComposeFrom_d6uni"]
id = 29
position = Vector2(500, 820)
pin_data = Array[Dictionary]([{
"pin_name": &"x",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"y",
"type": 3,
"flags": 2,
"dv": 0.0
}, {
"pin_name": &"value",
"type": 5,
"dir": 1,
"flags": 2,
"dv": Vector2(0, 0)
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_cwix2"]
op = 10
code = &"unary-"
name = &"Unary- or Negate"
left_type = 3
left_type_name = &"float"
return_type = 3
id = 30
position = Vector2(320, 820)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 3,
"flags": 2
}, {
"pin_name": &"result",
"type": 3,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeComposeFrom" id="OScriptNodeComposeFrom_lflnt"]
id = 31
position = Vector2(100, 820)
pin_data = Array[Dictionary]([{
"pin_name": &"from",
"type": 2,
"flags": 2,
"dv": 2
}, {
"pin_name": &"value",
"type": 2,
"dir": 1,
"flags": 2,
"dv": 0
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_gkhxs"]
op = 6
code = &"+"
name = &"Addition"
left_type = 5
left_type_name = &"Vector2"
right_type = 5
right_type_name = &"Vector2"
return_type = 5
id = 32
position = Vector2(720, 740)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 5,
"flags": 2
}, {
"pin_name": &"b",
"type": 5,
"flags": 2
}, {
"pin_name": &"result",
"type": 5,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeFunctionEntry" id="OScriptNodeFunctionEntry_35qst"]
function_id = "76474EBC-B668-4F17-984B-7B6B80C74BA5"
id = 40
position = Vector2(160, 680)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"a",
"type": 5,
"dir": 1,
"flags": 2
}, {
"pin_name": &"y_offset",
"type": 3,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeFunctionResult" id="OScriptNodeFunctionResult_tny25"]
function_id = "76474EBC-B668-4F17-984B-7B6B80C74BA5"
id = 41
position = Vector2(1000, 680)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"return_value",
"type": 5,
"flags": 2
}, {
"pin_name": &"return_out",
"type": 5,
"dir": 1,
"flags": 34
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_5cskj"]
function_name = &"get_global_position"
target_class_name = "Node2D"
target_type = 24
flags = 522
method = {
"name": &"get_global_position",
"return": {
"type": 5
},
"flags": 5
}
chain = false
id = 43
position = Vector2(340, 740)
pin_data = Array[Dictionary]([{
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"return_value",
"type": 5,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeCallScriptFunction" id="OScriptNodeCallScriptFunction_5lsou"]
guid = "76474EBC-B668-4F17-984B-7B6B80C74BA5"
function_name = &"new_pos"
flags = 8
id = 44
position = Vector2(600, 680)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"a",
"type": 5,
"flags": 2
}, {
"pin_name": &"y_offset",
"type": 3,
"flags": 2
}, {
"pin_name": &"return_value",
"type": 5,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeBranch" id="OScriptNodeBranch_ivi31"]
id = 51
position = Vector2(840, 80)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 516,
"label": "if [condition]"
}, {
"pin_name": &"condition",
"type": 1,
"flags": 2,
"dv": false
}, {
"pin_name": &"true",
"dir": 1,
"flags": 516
}, {
"pin_name": &"false",
"dir": 1,
"flags": 516
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_f28nk"]
function_name = &"get_global_rotation_degrees"
target_class_name = "Node2D"
target_type = 24
flags = 522
method = {
"name": &"get_global_rotation_degrees",
"return": {
"type": 3
},
"flags": 5
}
chain = false
id = 53
position = Vector2(300, 160)
pin_data = Array[Dictionary]([{
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node2D",
"target_class": "Node2D"
}, {
"pin_name": &"return_value",
"type": 3,
"dir": 1,
"flags": 1026
}])
[obj type="OScriptNodeSceneNode" id="OScriptNodeSceneNode_3bva8"]
node_path = NodePath("sprite")
target_class_name = "Sprite2D"
id = 54
position = Vector2(840, 200)
pin_data = Array[Dictionary]([{
"pin_name": &"sprite",
"type": 24,
"dir": 1,
"flags": 2050,
"target_class": "Sprite2D"
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_xbftv"]
function_name = &"set_flip_h"
target_class_name = "Sprite2D"
target_type = 24
flags = 520
method = {
"name": &"set_flip_h",
"args": [{
"name": &"flip_h",
"type": 1
}]
}
chain = false
id = 56
position = Vector2(1160, 240)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Sprite2D",
"target_class": "Sprite2D"
}, {
"pin_name": &"flip_h",
"type": 1,
"flags": 2,
"dv": true
}])
[obj type="OScriptNodeOperator" id="OScriptNodeOperator_foj8o"]
op = 4
code = &">"
name = &"Greater-than"
left_type = 3
left_type_name = &"float"
right_type = 3
right_type_name = &"float"
return_type = 1
id = 59
position = Vector2(600, 160)
pin_data = Array[Dictionary]([{
"pin_name": &"a",
"type": 3,
"flags": 2
}, {
"pin_name": &"b",
"type": 3,
"flags": 2,
"dv": -90.0
}, {
"pin_name": &"result",
"type": 1,
"dir": 1,
"flags": 2
}])
[obj type="OScriptNodeBranch" id="OScriptNodeBranch_q6ewe"]
id = 61
position = Vector2(540, 500)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 516,
"label": "if [condition]"
}, {
"pin_name": &"condition",
"type": 1,
"flags": 2,
"dv": false
}, {
"pin_name": &"true",
"dir": 1,
"flags": 516
}, {
"pin_name": &"false",
"dir": 1,
"flags": 516
}])
[obj type="OScriptNodeVariableGet" id="OScriptNodeVariableGet_aw5t6"]
variable_name = &"move"
id = 62
position = Vector2(260, 580)
pin_data = Array[Dictionary]([{
"pin_name": &"value",
"type": 1,
"dir": 1,
"flags": 2050,
"label": "move",
"dv": false,
"usage": 4102
}])
[obj type="OScriptNodeEvent" id="OScriptNodeEvent_kwrm8"]
function_id = "31593827-58DD-4FB9-A462-B7A87F83A977"
id = 63
position = Vector2(120, 1100)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}])
[obj type="OScriptNodeCallMemberFunction" id="OScriptNodeCallMemberFunction_30g35"]
function_name = &"queue_free"
target_class_name = "Node"
target_type = 24
flags = 520
method = {
"name": &"queue_free"
}
chain = false
id = 64
position = Vector2(840, 1100)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"target",
"type": 24,
"flags": 2050,
"label": "Node",
"target_class": "Node"
}])
[obj type="OScriptNodeBranch" id="OScriptNodeBranch_4lc6a"]
id = 65
position = Vector2(620, 1100)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 516,
"label": "if [condition]"
}, {
"pin_name": &"condition",
"type": 1,
"flags": 2,
"dv": false
}, {
"pin_name": &"true",
"dir": 1,
"flags": 516
}, {
"pin_name": &"false",
"dir": 1,
"flags": 516
}])
[obj type="OScriptNodeVariableGet" id="OScriptNodeVariableGet_3nu1n"]
variable_name = &"del_screen_exit"
id = 66
position = Vector2(360, 1180)
pin_data = Array[Dictionary]([{
"pin_name": &"value",
"type": 1,
"dir": 1,
"flags": 2050,
"label": "del_screen_exit",
"usage": 4102
}])
[obj type="OScriptNodeCallBuiltinFunction" id="OScriptNodeCallBuiltinFunction_kjptc"]
function_name = &"print"
flags = 33
method = {
"name": &"print",
"flags": 17,
"args": [{
"name": &"arg1",
"usage": 131078
}]
}
variable_arg_count = 0
id = 67
position = Vector2(1040, 1100)
pin_data = Array[Dictionary]([{
"pin_name": &"ExecIn",
"flags": 4
}, {
"pin_name": &"ExecOut",
"dir": 1,
"flags": 4
}, {
"pin_name": &"arg1",
"flags": 2,
"usage": 131078
}])
[obj type="OScriptNodeComposeFrom" id="OScriptNodeComposeFrom_qd1f0"]
id = 68
position = Vector2(720, 1220)
pin_data = Array[Dictionary]([{
"pin_name": &"from",
"type": 4,
"flags": 2,
"dv": "pipe deleted"
}, {
"pin_name": &"value",
"type": 4,
"dir": 1,
"flags": 2,
"dv": ""
}])
[obj type="OScriptVariable" id="OScriptVariable_ohr7i"]
name = "place"
category = "Default"
classification = "type:int"
type = 2
default_value = 300
[obj type="OScriptVariable" id="OScriptVariable_252wm"]
name = "move"
category = "Default"
exported = true
classification = "type:bool"
type = 1
default_value = true
[obj type="OScriptVariable" id="OScriptVariable_6onxm"]
name = "del_screen_exit"
category = "Default"
exported = true
classification = "type:bool"
type = 1
default_value = true
[resource]
base_type = &"Node2D"
variables = Array[OScriptVariable]([SubResource("OScriptVariable_ohr7i"), SubResource("OScriptVariable_252wm"), SubResource("OScriptVariable_6onxm")])
functions = Array[OScriptFunction]([SubResource("OScriptFunction_im4xq"), SubResource("OScriptFunction_igi14"), SubResource("OScriptFunction_yp8xe"), SubResource("OScriptFunction_2bonc")])
connections = Array[int]([44, 0, 19, 0, 30, 0, 29, 0, 31, 0, 30, 0, 40, 1, 32, 0, 40, 0, 41, 0, 61, 0, 44, 0, 22, 0, 51, 0, 51, 1, 56, 0, 53, 0, 59, 0, 6, 0, 61, 0, 65, 0, 64, 0, 63, 0, 65, 0, 64, 0, 67, 0, 29, 0, 32, 1, 32, 0, 41, 1, 43, 0, 44, 1, 59, 0, 51, 1, 54, 0, 56, 1, 62, 0, 61, 1, 66, 0, 65, 1, 68, 0, 67, 1, 44, 1, 19, 2])
nodes = Array[OScriptNode]([SubResource("OScriptNodeEvent_6x8w8"), SubResource("OScriptNodeCallMemberFunction_28xu4"), SubResource("OScriptNodeEvent_6di3c"), SubResource("OScriptNodeComposeFrom_d6uni"), SubResource("OScriptNodeOperator_cwix2"), SubResource("OScriptNodeComposeFrom_lflnt"), SubResource("OScriptNodeOperator_gkhxs"), SubResource("OScriptNodeFunctionEntry_35qst"), SubResource("OScriptNodeFunctionResult_tny25"), SubResource("OScriptNodeCallMemberFunction_5cskj"), SubResource("OScriptNodeCallScriptFunction_5lsou"), SubResource("OScriptNodeBranch_ivi31"), SubResource("OScriptNodeCallMemberFunction_f28nk"), SubResource("OScriptNodeSceneNode_3bva8"), SubResource("OScriptNodeCallMemberFunction_xbftv"), SubResource("OScriptNodeOperator_foj8o"), SubResource("OScriptNodeBranch_q6ewe"), SubResource("OScriptNodeVariableGet_aw5t6"), SubResource("OScriptNodeEvent_kwrm8"), SubResource("OScriptNodeCallMemberFunction_30g35"), SubResource("OScriptNodeBranch_4lc6a"), SubResource("OScriptNodeVariableGet_3nu1n"), SubResource("OScriptNodeCallBuiltinFunction_kjptc"), SubResource("OScriptNodeComposeFrom_qd1f0")])
graphs = Array[OScriptGraph]([SubResource("OScriptGraph_kqnq4"), SubResource("OScriptGraph_2m2e4")])

34
scenes/pipe/pipe.tscn Normal file
View file

@ -0,0 +1,34 @@
[gd_scene load_steps=5 format=3 uid="uid://bo8pkjaj4tu44"]
[ext_resource type="Script" path="res://scenes/pipe/pipe.gd" id="1_o5eem"]
[ext_resource type="Texture2D" uid="uid://bmcn41xuywnm5" path="res://assets/images/pipe.png" id="2_m6yfy"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6btt8"]
size = Vector2(8, 200)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gncap"]
size = Vector2(10, 6)
[node name="pipe" type="AnimatableBody2D"]
script = ExtResource("1_o5eem")
[node name="sprite" type="Sprite2D" parent="."]
position = Vector2(0, 412)
scale = Vector2(4, 4)
texture = ExtResource("2_m6yfy")
[node name="col1" type="CollisionShape2D" parent="."]
position = Vector2(0, 424)
scale = Vector2(4, 4)
shape = SubResource("RectangleShape2D_6btt8")
[node name="col2" type="CollisionShape2D" parent="."]
position = Vector2(0, 12)
scale = Vector2(4, 4)
shape = SubResource("RectangleShape2D_gncap")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
position = Vector2(-1.90735e-06, 414)
scale = Vector2(2.4, 41.4)
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"]

File diff suppressed because it is too large Load diff

22
scenes/pipe_spawner.gd Normal file
View file

@ -0,0 +1,22 @@
extends Marker2D
const pipe = preload("res://scenes/pipe/pipe.tscn")
var wobbl = 5
func spawn_pipe(pos:Vector2,rot,sca):
var instance = pipe.instantiate()
instance.global_position = pos
instance.rotation_degrees = rot
if sca:
instance.scale = Vector2(sca,sca)
$"../pipes".add_child(instance)
func double_pipe(pos_y,space):
spawn_pipe(Vector2(0,pos_y-space/2),180,2)
spawn_pipe(Vector2(0,pos_y+space/2),0,2)
func _on_spawn_pipe_timeout() -> void:
print("spawn pipes")
double_pipe(randi_range(-wobbl,wobbl)+350,180) #350 =middle of the screen