This commit is contained in:
megamichi 2024-10-01 15:56:30 +02:00
commit 80f2563cdc
95 changed files with 3327 additions and 0 deletions

2
.gitattributes vendored Normal file
View file

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

3
.gitignore vendored Normal file
View file

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

1
.import/.gdignore Normal file
View file

@ -0,0 +1 @@

View file

@ -0,0 +1,3 @@
source_md5="64cf2426648afd816c13a28725bffb21"
dest_md5="31d5a434dac95782c436d6704c6c6ff7"

View file

@ -0,0 +1,3 @@
source_md5="b77a2b521e0a2f4bf9777c6363dfe09b"
dest_md5="e685523e783e93aa05d163d80d90ca54"

View file

@ -0,0 +1,3 @@
source_md5="78c718e7fcc01998628b64c439d1aed6"
dest_md5="061d3735f177e7ad096f1b09ddab05b7"

View file

@ -0,0 +1,3 @@
source_md5="26def96d27af5b87655bf2988030ca4d"
dest_md5="941d565bd3eaadcb55b377f49aaa34c8"

View file

@ -0,0 +1,3 @@
source_md5="954467bb323fd837834693147e80e2eb"
dest_md5="0915f92f96a20ebc81540c096944fdff"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="af7e72abeefc8dea578cc8090092ceb9"
dest_md5="8e0a76e8cbd439677a56e7d3975e14d9"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="34f710d33e87d5e1a87517e367b2c10e"
dest_md5="f1cf23e861bfc95add83650ffc7000b6"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="4520065e9d26d049c1e616379a2a14f0"
dest_md5="4616b4ba13621b00bffd7835e1b87804"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="ea398567b238c37fe05fd9d16d9ecbb7"
dest_md5="6f0a9828a6c255fe35d0fb769194c065"

View file

@ -0,0 +1,3 @@
source_md5="78b9e83c0a868bdd005f118bebeccb05"
dest_md5="505b96b61153c8254cea9e2ab747ba23"

View file

@ -0,0 +1,3 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="26ea799ea0a3da9e753b3ebe822e0570"

Binary file not shown.

View file

@ -0,0 +1,3 @@
source_md5="713cd5f07aa4a38aa3a8c0218f28661e"
dest_md5="e39aa21327c91bbd9fee55c049e4a70a"

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/GUI/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bj7bgtdcbdald"
path="res://.godot/imported/logo.png-9e0752731fb3ccd9eb2168a14668dff5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/GUI/logo.png"
dest_files=["res://.godot/imported/logo.png-9e0752731fb3ccd9eb2168a14668dff5.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: 4.2 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://do0okfxenx2ci"
path="res://.godot/imported/restart button.png-7513f25cb6ebab489454ccd634b0b01c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/GUI/restart button.png"
dest_files=["res://.godot/imported/restart button.png-7513f25cb6ebab489454ccd634b0b01c.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/GUI/schild.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfmflpkl335e3"
path="res://.godot/imported/schild.png-8e1e3e92f093b03eb8625bfeff3f7f11.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/GUI/schild.png"
dest_files=["res://.godot/imported/schild.png-8e1e3e92f093b03eb8625bfeff3f7f11.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/GUI/start button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2i2d0rmdtklc"
path="res://.godot/imported/start button.png-b349fb91b4bad0fa472b7263072d2f24.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/GUI/start button.png"
dest_files=["res://.godot/imported/start button.png-b349fb91b4bad0fa472b7263072d2f24.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: 5.9 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bg78j6xxw3ck4"
path="res://.godot/imported/background.png-b4e7437f07894e7f253b684ff783fbd2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Ground/background.png"
dest_files=["res://.godot/imported/background.png-b4e7437f07894e7f253b684ff783fbd2.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/Ground/ground.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bmklwmjrtynqo"
path="res://.godot/imported/ground.png-673271eeeb2d2777787f0fa18dd4ce4d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Ground/ground.png"
dest_files=["res://.godot/imported/ground.png-673271eeeb2d2777787f0fa18dd4ce4d.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/Ground/stars.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dgfvf2ta4lc4e"
path="res://.godot/imported/stars.png-57bc8dc47b79b5d04d53ace720164aae.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Ground/stars.png"
dest_files=["res://.godot/imported/stars.png-57bc8dc47b79b5d04d53ace720164aae.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
builds/DuckRun_v1.2.apk Normal file

Binary file not shown.

Binary file not shown.

BIN
builds/DuckRun_v2.0.0.apk Normal file

Binary file not shown.

Binary file not shown.

BIN
builds/DuckRun_v2.0.1.apk Normal file

Binary file not shown.

Binary file not shown.

BIN
builds/DuckRun_v2.0.2.apk Normal file

Binary file not shown.

Binary file not shown.

BIN
builds/DuckRun_v2.0.3.apk Normal file

Binary file not shown.

Binary file not shown.

BIN
builds/DuckRun_v2.0.4.apk Normal file

Binary file not shown.

Binary file not shown.

20
code/GUI/restartschild.gd Normal file
View file

@ -0,0 +1,20 @@
extends Sprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
global_position.y = -80
func _process(_delta: float) -> void:
global_position.x = get_viewport().get_visible_rect().size.x * 0.5
func _on_duck_gameover() -> void:
$AnimationPlayer.play("in")
show()
func _on_restart_pressed() -> void:
$"../..".start_game()
$AnimationPlayer.play("out")
await $AnimationPlayer.animation_finished
hide()

18
code/GUI/startschild.gd Normal file
View file

@ -0,0 +1,18 @@
extends Sprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$AnimationPlayer.play("in")
show()
func _process(_delta: float) -> void:
global_position.x = get_viewport().get_visible_rect().size.x -51
$Logo.global_position.x = 0
func _on_start_pressed() -> void:
$"../..".start_game()
$AnimationPlayer.play("out")
await $AnimationPlayer.animation_finished
hide()

10
code/global.gd Normal file
View file

@ -0,0 +1,10 @@
extends Node
signal levelup
signal start
var maxspeed = 260
var speed = 100
var score = 0
var gamerunning = false

37
code/main.gd Normal file
View file

@ -0,0 +1,37 @@
extends Node
func _ready() -> void:
$Screen/Background/Floor/EasterEggFixCollision.disabled = false
func start_game():
$Screen/Background/Floor/EasterEggFixCollision.disabled = true
$Screen/SpawnTimer.start()
$Screen/LevelUpTimer.start()
$Screen/Duck.start()
$Screen/HindernissSpawner.del_all()
$Screen/EastereggSpawner.del_all()
$"/root/Global".gamerunning = true
$"/root/Global".start.emit()
$"/root/Global".score = 0
$"/root/Global".speed = 100
func _on_level_up_timer_timeout() -> void:
if $"/root/Global".speed < $"/root/Global".maxspeed:
$"/root/Global".speed += 10
$"/root/Global".levelup.emit()
func _score() -> void:
if not $"/root/Global".gamerunning:
$Gui/Score.text = ""
elif $Screen/Duck.alive:
$"/root/Global".score += 10
$Gui/Score.text = "Score: "+str($"/root/Global".score)
func _process(delta):
if $"/root/Global".gamerunning:
$Screen/Background/Sprites.position.x -= $"/root/Global".speed*delta
if $Screen/Background/Sprites.position.x <= -200:
$Screen/Background/Sprites.position.x = 0

9
code/score.gd Normal file
View file

@ -0,0 +1,9 @@
extends Label
var speed = 70
# Called when the node enters the scene tree for the first time.
#func _ready() -> void:
#text = "0"
# Called every frame. 'delta' is the elapsed time since the previous frame.

7
default_env.tres Normal file
View file

@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=3 uid="uid://ceeax73haqw51"]
[sub_resource type="Sky" id="1"]
[resource]
background_mode = 2
sky = SubResource("1")

514
export_presets.cfg Normal file
View file

@ -0,0 +1,514 @@
[preset.0]
name="Android"
platform="Android"
runnable=true
advanced_options=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="builds/DuckRun_v2.0.4.apk"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=1
[preset.0.options]
custom_template/debug=""
custom_template/release=""
gradle_build/use_gradle_build=false
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=true
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
version/code=7
version/name="2.0.4"
package/unique_name="at.megamichi.duckrun"
package/name="DuckRun"
package/signed=true
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
custom_build/use_custom_build=false
custom_build/export_format=0
custom_build/min_sdk=""
custom_build/target_sdk=""
one_click_deploy/clear_previous_install=false
package/classify_as_game=true
xr_features/hand_tracking=0
xr_features/hand_tracking_frequency=0
xr_features/passthrough=0
[preset.1]
name="Linux"
platform="Linux"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
[preset.2]
name="Web"
platform="Web"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../testduck/DuckRun_v1.2.html"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.2.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
variant/thread_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=true
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/ensure_cross_origin_isolation_headers=true
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
[preset.3]
name="iOS"
platform="iOS"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.3.options]
custom_template/debug=""
custom_template/release=""
architectures/arm64=true
application/app_store_team_id="ABC"
application/code_sign_identity_debug=""
application/export_method_debug=1
application/code_sign_identity_release=""
application/export_method_release=0
application/targeted_device_family=2
application/bundle_identifier="at.megamichi.duckrun"
application/signature=""
application/short_version=""
application/version=""
application/min_ios_version="12.0"
application/additional_plist_content=""
application/icon_interpolation=4
application/export_project_only=false
application/delete_old_export_files_unconditionally=false
application/generate_simulator_library_if_missing=true
capabilities/access_wifi=false
capabilities/push_notifications=false
capabilities/performance_gaming_tier=false
capabilities/performance_a12=false
user_data/accessible_from_files_app=false
user_data/accessible_from_itunes_sharing=false
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
privacy/microphone_usage_description=""
privacy/microphone_usage_description_localized={}
privacy/photolibrary_usage_description=""
privacy/photolibrary_usage_description_localized={}
privacy/file_timestamp_access_reasons=3
privacy/system_boot_time_access_reasons=1
privacy/disk_space_access_reasons=3
privacy/active_keyboard_access_reasons=0
privacy/user_defaults_access_reasons=0
privacy/tracking_enabled=false
privacy/tracking_domains=PackedStringArray()
privacy/collected_data/name/collected=false
privacy/collected_data/name/linked_to_user=false
privacy/collected_data/name/used_for_tracking=false
privacy/collected_data/name/collection_purposes=0
privacy/collected_data/email_address/collected=false
privacy/collected_data/email_address/linked_to_user=false
privacy/collected_data/email_address/used_for_tracking=false
privacy/collected_data/email_address/collection_purposes=0
privacy/collected_data/phone_number/collected=false
privacy/collected_data/phone_number/linked_to_user=false
privacy/collected_data/phone_number/used_for_tracking=false
privacy/collected_data/phone_number/collection_purposes=0
privacy/collected_data/physical_address/collected=false
privacy/collected_data/physical_address/linked_to_user=false
privacy/collected_data/physical_address/used_for_tracking=false
privacy/collected_data/physical_address/collection_purposes=0
privacy/collected_data/other_contact_info/collected=false
privacy/collected_data/other_contact_info/linked_to_user=false
privacy/collected_data/other_contact_info/used_for_tracking=false
privacy/collected_data/other_contact_info/collection_purposes=0
privacy/collected_data/health/collected=false
privacy/collected_data/health/linked_to_user=false
privacy/collected_data/health/used_for_tracking=false
privacy/collected_data/health/collection_purposes=0
privacy/collected_data/fitness/collected=false
privacy/collected_data/fitness/linked_to_user=false
privacy/collected_data/fitness/used_for_tracking=false
privacy/collected_data/fitness/collection_purposes=0
privacy/collected_data/payment_info/collected=false
privacy/collected_data/payment_info/linked_to_user=false
privacy/collected_data/payment_info/used_for_tracking=false
privacy/collected_data/payment_info/collection_purposes=0
privacy/collected_data/credit_info/collected=false
privacy/collected_data/credit_info/linked_to_user=false
privacy/collected_data/credit_info/used_for_tracking=false
privacy/collected_data/credit_info/collection_purposes=0
privacy/collected_data/other_financial_info/collected=false
privacy/collected_data/other_financial_info/linked_to_user=false
privacy/collected_data/other_financial_info/used_for_tracking=false
privacy/collected_data/other_financial_info/collection_purposes=0
privacy/collected_data/precise_location/collected=false
privacy/collected_data/precise_location/linked_to_user=false
privacy/collected_data/precise_location/used_for_tracking=false
privacy/collected_data/precise_location/collection_purposes=0
privacy/collected_data/coarse_location/collected=false
privacy/collected_data/coarse_location/linked_to_user=false
privacy/collected_data/coarse_location/used_for_tracking=false
privacy/collected_data/coarse_location/collection_purposes=0
privacy/collected_data/sensitive_info/collected=false
privacy/collected_data/sensitive_info/linked_to_user=false
privacy/collected_data/sensitive_info/used_for_tracking=false
privacy/collected_data/sensitive_info/collection_purposes=0
privacy/collected_data/contacts/collected=false
privacy/collected_data/contacts/linked_to_user=false
privacy/collected_data/contacts/used_for_tracking=false
privacy/collected_data/contacts/collection_purposes=0
privacy/collected_data/emails_or_text_messages/collected=false
privacy/collected_data/emails_or_text_messages/linked_to_user=false
privacy/collected_data/emails_or_text_messages/used_for_tracking=false
privacy/collected_data/emails_or_text_messages/collection_purposes=0
privacy/collected_data/photos_or_videos/collected=false
privacy/collected_data/photos_or_videos/linked_to_user=false
privacy/collected_data/photos_or_videos/used_for_tracking=false
privacy/collected_data/photos_or_videos/collection_purposes=0
privacy/collected_data/audio_data/collected=false
privacy/collected_data/audio_data/linked_to_user=false
privacy/collected_data/audio_data/used_for_tracking=false
privacy/collected_data/audio_data/collection_purposes=0
privacy/collected_data/gameplay_content/collected=false
privacy/collected_data/gameplay_content/linked_to_user=false
privacy/collected_data/gameplay_content/used_for_tracking=false
privacy/collected_data/gameplay_content/collection_purposes=0
privacy/collected_data/customer_support/collected=false
privacy/collected_data/customer_support/linked_to_user=false
privacy/collected_data/customer_support/used_for_tracking=false
privacy/collected_data/customer_support/collection_purposes=0
privacy/collected_data/other_user_content/collected=false
privacy/collected_data/other_user_content/linked_to_user=false
privacy/collected_data/other_user_content/used_for_tracking=false
privacy/collected_data/other_user_content/collection_purposes=0
privacy/collected_data/browsing_history/collected=false
privacy/collected_data/browsing_history/linked_to_user=false
privacy/collected_data/browsing_history/used_for_tracking=false
privacy/collected_data/browsing_history/collection_purposes=0
privacy/collected_data/search_hhistory/collected=false
privacy/collected_data/search_hhistory/linked_to_user=false
privacy/collected_data/search_hhistory/used_for_tracking=false
privacy/collected_data/search_hhistory/collection_purposes=0
privacy/collected_data/user_id/collected=false
privacy/collected_data/user_id/linked_to_user=false
privacy/collected_data/user_id/used_for_tracking=false
privacy/collected_data/user_id/collection_purposes=0
privacy/collected_data/device_id/collected=false
privacy/collected_data/device_id/linked_to_user=false
privacy/collected_data/device_id/used_for_tracking=false
privacy/collected_data/device_id/collection_purposes=0
privacy/collected_data/purchase_history/collected=false
privacy/collected_data/purchase_history/linked_to_user=false
privacy/collected_data/purchase_history/used_for_tracking=false
privacy/collected_data/purchase_history/collection_purposes=0
privacy/collected_data/product_interaction/collected=false
privacy/collected_data/product_interaction/linked_to_user=false
privacy/collected_data/product_interaction/used_for_tracking=false
privacy/collected_data/product_interaction/collection_purposes=0
privacy/collected_data/advertising_data/collected=false
privacy/collected_data/advertising_data/linked_to_user=false
privacy/collected_data/advertising_data/used_for_tracking=false
privacy/collected_data/advertising_data/collection_purposes=0
privacy/collected_data/other_usage_data/collected=false
privacy/collected_data/other_usage_data/linked_to_user=false
privacy/collected_data/other_usage_data/used_for_tracking=false
privacy/collected_data/other_usage_data/collection_purposes=0
privacy/collected_data/crash_data/collected=false
privacy/collected_data/crash_data/linked_to_user=false
privacy/collected_data/crash_data/used_for_tracking=false
privacy/collected_data/crash_data/collection_purposes=0
privacy/collected_data/performance_data/collected=false
privacy/collected_data/performance_data/linked_to_user=false
privacy/collected_data/performance_data/used_for_tracking=false
privacy/collected_data/performance_data/collection_purposes=0
privacy/collected_data/other_diagnostic_data/collected=false
privacy/collected_data/other_diagnostic_data/linked_to_user=false
privacy/collected_data/other_diagnostic_data/used_for_tracking=false
privacy/collected_data/other_diagnostic_data/collection_purposes=0
privacy/collected_data/environment_scanning/collected=false
privacy/collected_data/environment_scanning/linked_to_user=false
privacy/collected_data/environment_scanning/used_for_tracking=false
privacy/collected_data/environment_scanning/collection_purposes=0
privacy/collected_data/hands/collected=false
privacy/collected_data/hands/linked_to_user=false
privacy/collected_data/hands/used_for_tracking=false
privacy/collected_data/hands/collection_purposes=0
privacy/collected_data/head/collected=false
privacy/collected_data/head/linked_to_user=false
privacy/collected_data/head/used_for_tracking=false
privacy/collected_data/head/collection_purposes=0
privacy/collected_data/other_data_types/collected=false
privacy/collected_data/other_data_types/linked_to_user=false
privacy/collected_data/other_data_types/used_for_tracking=false
privacy/collected_data/other_data_types/collection_purposes=0
icons/iphone_120x120=""
icons/iphone_180x180=""
icons/ipad_76x76=""
icons/ipad_152x152=""
icons/ipad_167x167=""
icons/app_store_1024x1024=""
icons/spotlight_40x40=""
icons/spotlight_80x80=""
icons/settings_58x58=""
icons/settings_87x87=""
icons/notification_40x40=""
icons/notification_60x60=""
storyboard/image_scale_mode=0
storyboard/custom_image@2x=""
storyboard/custom_image@3x=""
storyboard/use_custom_bg_color=false
storyboard/custom_bg_color=Color(0, 0, 0, 1)

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

34
icon.png.import Normal file
View file

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

BIN
m5x7.ttf Normal file

Binary file not shown.

34
m5x7.ttf.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://ddcous2vnc3ux"
path="res://.godot/imported/m5x7.ttf-ede74fbe3753eb2fe0ebc455b7b3a4db.fontdata"
[deps]
source_file="res://m5x7.ttf"
dest_files=["res://.godot/imported/m5x7.ttf-ede74fbe3753eb2fe0ebc455b7b3a4db.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={}

101
project.godot Normal file
View file

@ -0,0 +1,101 @@
; 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="DuckRun"
config/version="2.0.4"
run/main_scene="res://scenes/Main.tscn"
config/features=PackedStringArray("4.3")
boot_splash/image="res://icon.png"
config/icon="res://icon.png"
[autoload]
Global="*res://code/global.gd"
[display]
window/size/viewport_width=170
window/size/viewport_height=100
window/size/window_width_override=1020
window/size/window_height_override=600
window/stretch/mode="viewport"
window/stretch/aspect="keep_height"
window/handheld/orientation=4
[editor]
version_control/plugin_name="GitPlugin"
version_control/autoload_on_startup=true
[file_customization]
folder_colors={
"res://android/": "gray",
"res://assets/": "green",
"res://builds/": "gray",
"res://code/": "blue",
"res://scenes/": "orange"
}
[gui]
common/drop_mouse_on_gui_input_disabled=true
[importer_defaults]
texture={
"compress/bptc_ldr": 0,
"compress/hdr_mode": 0,
"compress/lossy_quality": 0.7,
"compress/mode": 0,
"compress/normal_map": 0,
"detect_3d": false,
"flags/anisotropic": false,
"flags/filter": false,
"flags/mipmaps": false,
"flags/repeat": 0,
"flags/srgb": 2,
"process/HDR_as_SRGB": false,
"process/fix_alpha_border": true,
"process/invert_color": false,
"process/normal_map_invert_y": false,
"process/premult_alpha": false,
"size_limit": 0,
"stream": false,
"svg/scale": 1.0
}
[input]
jump={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, 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(109, 21),"global_position":Vector2(118, 67),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
[layer_names]
2d_physics/layer_1="physic"
2d_physics/layer_2="collision"
[physics]
2d/default_gravity=900.0
common/enable_pause_aware_picking=true
[rendering]
textures/canvas_textures/default_texture_filter=0
textures/vram_compression/import_etc2_astc=true
environment/defaults/default_environment="res://default_env.tres"

42
scenes/Duck/Duck.gd Normal file
View file

@ -0,0 +1,42 @@
extends CharacterBody2D
const JUMP_VELOCITY = -230.0
signal gameover
@onready var alive = true
func die():
print("die")
gameover.emit()
alive = false
func start():
global_position = Vector2(21,91)
alive = true
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
if Input.is_action_pressed("jump") and is_on_floor() and alive and $"/root/Global".gamerunning:
velocity.y = JUMP_VELOCITY
move_and_slide()
func _process(_delta: float) -> void:
if position.x < -20:
if alive:
die()
if not $"/root/Global".gamerunning:
$AnimationPlayer.play("idle")
elif not is_on_floor():
$AnimationPlayer.play("fly")
elif not alive:
$AnimationPlayer.play("die")
else:
$AnimationPlayer.play("walk")
func _collide_with_hindernis(_body: Node2D) -> void:
print("colide")
if alive:
die()

136
scenes/Duck/Duck.tscn Normal file
View file

@ -0,0 +1,136 @@
[gd_scene load_steps=11 format=3 uid="uid://8v5mbbnddorh"]
[ext_resource type="Texture2D" uid="uid://dc6grg2oaq3a6" path="res://scenes/Duck/ente.png" id="1"]
[ext_resource type="Script" path="res://scenes/Duck/Duck.gd" id="1_pvotk"]
[sub_resource type="Animation" id="5"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [4]
}
[sub_resource type="Animation" id="6"]
resource_name = "die"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [5]
}
[sub_resource type="Animation" id="7"]
resource_name = "fly"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [2]
}
[sub_resource type="Animation" id="2"]
resource_name = "idle"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 1]
}
[sub_resource type="Animation" id="3"]
resource_name = "walk"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [3, 4]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_rcmnp"]
_data = {
"RESET": SubResource("5"),
"die": SubResource("6"),
"fly": SubResource("7"),
"idle": SubResource("2"),
"walk": SubResource("3")
}
[sub_resource type="CircleShape2D" id="CircleShape2D_1551i"]
radius = 1.21655
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_46c8m"]
radius = 6.0
height = 14.0
[node name="Duck" type="CharacterBody2D"]
script = ExtResource("1_pvotk")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
root_node = NodePath("../hitbox")
libraries = {
"": SubResource("AnimationLibrary_rcmnp")
}
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 3
position = Vector2(0, -7)
texture = ExtResource("1")
hframes = 3
vframes = 2
frame = 4
[node name="physicsbox" type="CollisionShape2D" parent="."]
position = Vector2(2.38419e-07, -6)
scale = Vector2(5, 5)
shape = SubResource("CircleShape2D_1551i")
[node name="hitbox" type="Area2D" parent="."]
position = Vector2(13, -2)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="hitbox"]
position = Vector2(-13, -4)
shape = SubResource("CapsuleShape2D_46c8m")
debug_color = Color(0.906661, 0.254677, 0.42413, 0.42)
[connection signal="area_entered" from="hitbox" to="." method="_collide_with_hindernis"]

BIN
scenes/Duck/ente.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dc6grg2oaq3a6"
path="res://.godot/imported/ente.png-89549b44b337187eba16391bfd7f28f9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://scenes/Duck/ente.png"
dest_files=["res://.godot/imported/ente.png-89549b44b337187eba16391bfd7f28f9.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=1
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

344
scenes/Main.tscn Normal file
View file

@ -0,0 +1,344 @@
[gd_scene load_steps=22 format=3 uid="uid://bb5qp5868y5i"]
[ext_resource type="Script" path="res://code/main.gd" id="1_ar2ah"]
[ext_resource type="PackedScene" uid="uid://8v5mbbnddorh" path="res://scenes/Duck/Duck.tscn" id="2"]
[ext_resource type="Script" path="res://code/score.gd" id="2_4em51"]
[ext_resource type="FontFile" uid="uid://ddcous2vnc3ux" path="res://m5x7.ttf" id="2_m1hnc"]
[ext_resource type="Texture2D" uid="uid://dgfvf2ta4lc4e" path="res://assets/Ground/stars.png" id="2_ohf2r"]
[ext_resource type="Texture2D" uid="uid://bg78j6xxw3ck4" path="res://assets/Ground/background.png" id="3"]
[ext_resource type="Texture2D" uid="uid://bmklwmjrtynqo" path="res://assets/Ground/ground.png" id="3_vc02h"]
[ext_resource type="Script" path="res://scenes/hindernis/Spawner/hindernis_spawner.gd" id="4_oc6me"]
[ext_resource type="PackedScene" uid="uid://dm307sj4nenjt" path="res://scenes/schild.tscn" id="5_ewtcf"]
[ext_resource type="Texture2D" uid="uid://do0okfxenx2ci" path="res://assets/GUI/restart button.png" id="6_boo0r"]
[ext_resource type="Script" path="res://scenes/easteregg/Spawner/easteregg_spawner.gd" id="8_awkaj"]
[ext_resource type="Script" path="res://code/GUI/startschild.gd" id="10_tn1on"]
[ext_resource type="Texture2D" uid="uid://d2i2d0rmdtklc" path="res://assets/GUI/start button.png" id="11_4sha5"]
[ext_resource type="Script" path="res://scenes/Wolke/Spawner/wolken_spawner.gd" id="11_x2wm3"]
[ext_resource type="Texture2D" uid="uid://bj7bgtdcbdald" path="res://assets/GUI/logo.png" id="14_4hepj"]
[sub_resource type="Animation" id="Animation_n8ktn"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:color:r")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0.560784, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:color:g")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0.937255, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
[sub_resource type="Animation" id="Animation_7cwe6"]
resource_name = "change_time"
length = 6.0
step = 0.25
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("..:modulate:r")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.5, 0, 1, 0, 0.6, -1, 0, 0.5, 0),
"times": PackedFloat32Array(0, 6)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("..:modulate:g")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.5, 0, 1, 0, 0.6, -1, 0, 0.5, 0),
"times": PackedFloat32Array(0, 6)
}
tracks/2/type = "bezier"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("..:modulate:b")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.5, 0, 1, 0, 0.6, -1, 0, 0.5, 0),
"times": PackedFloat32Array(0, 6)
}
tracks/3/type = "bezier"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath(".:color:r")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(0.560784, -0.25, 0, 0.25, 0, 0.1, -0.5, 0, 0.25, 0),
"times": PackedFloat32Array(0, 6)
}
tracks/4/type = "bezier"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".:color:g")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(0.937255, -0.25, 0, 0.25, 0, 0.1, -0.5, 0, 0.25, 0),
"times": PackedFloat32Array(0, 6)
}
tracks/5/type = "bezier"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath(".:color:b")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(0.937255, -0.25, 0, 0.25, 0, 0.3, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 6)
}
tracks/6/type = "bezier"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../Background/Stars:modulate:a")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(0, -0.25, 0, 1, 0, 1, -1, 0, 0.25, 0),
"times": PackedFloat32Array(0, 6)
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_c30x0"]
_data = {
"RESET": SubResource("Animation_n8ktn"),
"change_time": SubResource("Animation_7cwe6")
}
[sub_resource type="GDScript" id="GDScript_rkc4w"]
script/source = "extends Timer
var day = true
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _change_time() -> void:
print(day)
if day:
$\"../AnimationPlayer\".play(\"change_time\")
day = not day
else:
$\"../AnimationPlayer\".play_backwards(\"change_time\")
day = not day
"
[sub_resource type="RectangleShape2D" id="RectangleShape2D_o05as"]
size = Vector2(4, 15)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0a3yj"]
size = Vector2(361, 8)
[node name="Game" type="Node"]
script = ExtResource("1_ar2ah")
[node name="Screen" type="Node2D" parent="."]
[node name="AnimationPlayer" type="AnimationPlayer" parent="Screen"]
root_node = NodePath("../BackgroundRect")
libraries = {
"": SubResource("AnimationLibrary_c30x0")
}
[node name="Day-NightTimer" type="Timer" parent="Screen"]
wait_time = 12.0
autostart = true
script = SubResource("GDScript_rkc4w")
[node name="BackgroundRect" type="ColorRect" parent="Screen"]
offset_right = 801.0
offset_bottom = 97.0
color = Color(0.560784, 0.937255, 0.937255, 1)
[node name="Background" type="Node2D" parent="Screen"]
[node name="Stars" type="Sprite2D" parent="Screen/Background"]
modulate = Color(1, 1, 1, 0)
position = Vector2(85, 50)
texture = ExtResource("2_ohf2r")
[node name="Sprites" type="Node2D" parent="Screen/Background"]
position = Vector2(79, 96)
[node name="Background" type="Sprite2D" parent="Screen/Background/Sprites"]
position = Vector2(21, -37)
texture = ExtResource("3")
[node name="Background2" type="Sprite2D" parent="Screen/Background/Sprites"]
position = Vector2(221, -37)
texture = ExtResource("3")
[node name="Background3" type="Sprite2D" parent="Screen/Background/Sprites"]
position = Vector2(421, -37)
texture = ExtResource("3")
[node name="Ground" type="Sprite2D" parent="Screen/Background/Sprites"]
position = Vector2(21, -2)
texture = ExtResource("3_vc02h")
[node name="Ground2" type="Sprite2D" parent="Screen/Background/Sprites"]
position = Vector2(221, -2)
texture = ExtResource("3_vc02h")
[node name="Ground3" type="Sprite2D" parent="Screen/Background/Sprites"]
position = Vector2(421, -2)
texture = ExtResource("3_vc02h")
[node name="Floor" type="StaticBody2D" parent="Screen/Background"]
[node name="EasterEggFixCollision" type="CollisionShape2D" parent="Screen/Background/Floor"]
position = Vector2(-2, 83.5)
shape = SubResource("RectangleShape2D_o05as")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Screen/Background/Floor"]
position = Vector2(101.5, 96)
shape = SubResource("RectangleShape2D_0a3yj")
[node name="HindernissSpawner" type="Marker2D" parent="Screen"]
position = Vector2(446, 92)
script = ExtResource("4_oc6me")
[node name="Duck" parent="Screen" instance=ExtResource("2")]
position = Vector2(21, 91)
[node name="WolkenSpawner" type="Marker2D" parent="Screen"]
position = Vector2(485, -1)
script = ExtResource("11_x2wm3")
[node name="LevelUpTimer" type="Timer" parent="Screen"]
wait_time = 5.0
[node name="SpawnTimer" type="Timer" parent="Screen"]
wait_time = 1.6
[node name="WolkenTimer" type="Timer" parent="Screen"]
autostart = true
[node name="EastereggSpawner" type="Marker2D" parent="Screen"]
position = Vector2(81, -18)
script = ExtResource("8_awkaj")
[node name="Gui" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="GameOverSchild" parent="Gui" instance=ExtResource("5_ewtcf")]
visible = false
position = Vector2(279, 0)
[node name="Restart" type="TextureButton" parent="Gui/GameOverSchild"]
texture_repeat = 2
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.77
anchor_right = 0.5
anchor_bottom = 0.77
offset_left = -73.5
offset_top = -91.5
offset_right = -58.5
offset_bottom = -76.5
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(3, 3)
texture_normal = ExtResource("6_boo0r")
stretch_mode = 1
metadata/_edit_use_anchors_ = true
[node name="StartSchild" parent="Gui" instance=ExtResource("5_ewtcf")]
visible = false
position = Vector2(63, 0)
script = ExtResource("10_tn1on")
[node name="Start" type="TextureButton" parent="Gui/StartSchild"]
texture_repeat = 2
anchors_preset = -1
anchor_left = 0.5
anchor_top = 0.77
anchor_right = 0.5
anchor_bottom = 0.77
offset_left = -73.5
offset_top = -91.5
offset_right = -58.5
offset_bottom = -76.5
scale = Vector2(3, 3)
texture_normal = ExtResource("11_4sha5")
stretch_mode = 1
[node name="Logo" type="TextureButton" parent="Gui/StartSchild"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -140.0
offset_top = 40.0
offset_right = -112.0
offset_bottom = -81.0
grow_horizontal = 2
grow_vertical = 2
rotation = -0.397935
texture_normal = ExtResource("14_4hepj")
[node name="Score" type="Label" parent="Gui"]
layout_mode = 1
anchors_preset = 13
anchor_left = 0.5
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -0.5
offset_top = 12.0
offset_right = 0.5
offset_bottom = 12.0
grow_horizontal = 2
grow_vertical = 2
theme_override_fonts/font = ExtResource("2_m1hnc")
text = "
"
script = ExtResource("2_4em51")
[node name="ScoreCounter" type="Timer" parent="Gui/Score"]
wait_time = 0.1
autostart = true
[connection signal="timeout" from="Screen/Day-NightTimer" to="Screen/Day-NightTimer" method="_change_time"]
[connection signal="gameover" from="Screen/Duck" to="Gui/GameOverSchild" method="_on_duck_gameover"]
[connection signal="timeout" from="Screen/LevelUpTimer" to="." method="_on_level_up_timer_timeout"]
[connection signal="timeout" from="Screen/SpawnTimer" to="Screen/HindernissSpawner" method="_spawn"]
[connection signal="timeout" from="Screen/WolkenTimer" to="Screen/WolkenSpawner" method="_spawn"]
[connection signal="pressed" from="Gui/GameOverSchild/Restart" to="Gui/GameOverSchild" method="_on_restart_pressed"]
[connection signal="pressed" from="Gui/StartSchild/Start" to="Gui/StartSchild" method="_on_start_pressed"]
[connection signal="pressed" from="Gui/StartSchild/Logo" to="Screen/EastereggSpawner" method="_spawn"]
[connection signal="timeout" from="Gui/Score/ScoreCounter" to="." method="_score"]

View file

@ -0,0 +1,13 @@
extends Marker2D
var speed
func _ready() -> void:
speed = $"/root/Global".speed
func _spawn() -> void:
var wolke = preload("res://scenes/Wolke/wolke.tscn").instantiate()
wolke.global_position.y = randi_range(0,50)
$"../WolkenTimer".wait_time = randf_range(0.5,1.5)
add_child(wolke)

13
scenes/Wolke/wolke.gd Normal file
View file

@ -0,0 +1,13 @@
extends Sprite2D
#var sca: float
var speed: float
# Initialisierung in der _ready Methode
func _ready() -> void:
speed = 10*randi_range(1, 5)
frame = randi_range(0,4)
self_modulate = Color(1,1,1,randf_range(0,0.5))
func _process(delta: float) -> void:
global_position.x -= speed * delta

10
scenes/Wolke/wolke.tscn Normal file
View file

@ -0,0 +1,10 @@
[gd_scene load_steps=3 format=3 uid="uid://bky81sd1m7fm7"]
[ext_resource type="Texture2D" uid="uid://b03sbc7akorka" path="res://scenes/Wolke/wolken.png" id="1_c6lhp"]
[ext_resource type="Script" path="res://scenes/Wolke/wolke.gd" id="2_tsh5n"]
[node name="Wolke" type="Sprite2D"]
texture_filter = 1
texture = ExtResource("1_c6lhp")
hframes = 5
script = ExtResource("2_tsh5n")

BIN
scenes/Wolke/wolken.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b03sbc7akorka"
path="res://.godot/imported/wolken.png-7359136969363c0ed69a48c0ef5624bf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://scenes/Wolke/wolken.png"
dest_files=["res://.godot/imported/wolken.png-7359136969363c0ed69a48c0ef5624bf.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=1
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=0

View file

@ -0,0 +1,9 @@
extends Marker2D
func _spawn() -> void:
var easteregg = preload("res://scenes/easteregg/easteregg.tscn").instantiate()
add_child(easteregg)
func del_all():
for child in get_children():
child.queue_free()

View file

@ -0,0 +1,12 @@
extends RigidBody2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$Sprite.frame = randi_range(0,4)
position.x += randi_range(-10,10)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://co76l7v0x2t8t"]
[ext_resource type="Script" path="res://scenes/easteregg/easteregg.gd" id="1_3dnpr"]
[ext_resource type="Texture2D" uid="uid://bp48x77dixrme" path="res://scenes/hindernis/hindernisse.png" id="1_al4up"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ruej1"]
radius = 8.06226
[node name="RigidBody2D" type="RigidBody2D"]
script = ExtResource("1_3dnpr")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -7)
shape = SubResource("CircleShape2D_ruej1")
[node name="Sprite" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -7)
texture = ExtResource("1_al4up")
offset = Vector2(0, 0.5)
hframes = 5
frame = 3

View file

@ -0,0 +1,24 @@
extends Marker2D
var speed
func _ready() -> void:
speed = $"/root/Global".speed #get_parent().speed
func _spawn() -> void:
var hindernis = preload("res://scenes/hindernis/hindernis.tscn").instantiate()
speed = $"/root/Global".speed
hindernis.speed = speed
var v1 = 1.5 - (speed / 260)
var v2 = 2.0 - (speed / 260)
print(str(v1)," ",str(v2))
$"../SpawnTimer".wait_time = randf_range(v1,v2)
print("speed: ",speed)
add_child(hindernis)
func del_all():
for child in get_children():
child.queue_free()

View file

@ -0,0 +1,11 @@
extends CharacterBody2D
@onready var speed = 0
func _ready() -> void:
$"Sprite".frame = randi_range(0,4)
func _process(delta: float) -> void:
speed = $"..".speed
global_position.x -= speed*delta

View file

@ -0,0 +1,36 @@
[gd_scene load_steps=5 format=3 uid="uid://cp43g3amm8a6f"]
[ext_resource type="Script" path="res://scenes/hindernis/hindernis.gd" id="1_e0hqe"]
[ext_resource type="Texture2D" uid="uid://bp48x77dixrme" path="res://scenes/hindernis/hindernisse.png" id="2_thg8w"]
[sub_resource type="CircleShape2D" id="CircleShape2D_orpyb"]
radius = 5.0
[sub_resource type="CircleShape2D" id="CircleShape2D_r1tmj"]
radius = 5.0
[node name="CharacterBody2D" type="CharacterBody2D"]
collision_layer = 3
collision_mask = 3
script = ExtResource("1_e0hqe")
[node name="Sprite" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -7)
texture = ExtResource("2_thg8w")
offset = Vector2(0, 0.5)
hframes = 5
frame = 3
[node name="collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -7)
shape = SubResource("CircleShape2D_orpyb")
[node name="Area2D" type="Area2D" parent="."]
position = Vector2(0, -7)
collision_layer = 3
collision_mask = 3
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_r1tmj")
debug_color = Color(0.906661, 0.254677, 0.42413, 0.42)

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bp48x77dixrme"
path="res://.godot/imported/hindernisse.png-2e17c6b239dd45768c8c51c61d217402.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://scenes/hindernis/hindernisse.png"
dest_files=["res://.godot/imported/hindernisse.png-2e17c6b239dd45768c8c51c61d217402.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

89
scenes/schild.tscn Normal file
View file

@ -0,0 +1,89 @@
[gd_scene load_steps=7 format=3 uid="uid://dm307sj4nenjt"]
[ext_resource type="Texture2D" uid="uid://cfmflpkl335e3" path="res://assets/GUI/schild.png" id="1_wyhk0"]
[ext_resource type="Script" path="res://code/GUI/restartschild.gd" id="2_pxsow"]
[sub_resource type="Animation" id="Animation_2ygp6"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
[sub_resource type="Animation" id="Animation_2vs66"]
resource_name = "in"
length = 0.2
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 2),
"points": PackedFloat32Array(-98.5, -0.25, 0, 0.0666667, -21, 2.5, -0.2, 2, 0, 0),
"times": PackedFloat32Array(0, 0.2)
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_2eby2"]
resource_name = "out"
length = 0.2
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(-0.5, -0.25, 0, 0.25, 0, -100, -0.0666667, 3, 0, 0),
"times": PackedFloat32Array(0, 0.2)
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.233333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_n8lkd"]
_data = {
"RESET": SubResource("Animation_2ygp6"),
"in": SubResource("Animation_2vs66"),
"out": SubResource("Animation_2eby2")
}
[node name="Schild" type="Sprite2D"]
texture_filter = 1
texture = ExtResource("1_wyhk0")
script = ExtResource("2_pxsow")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_n8lkd")
}

11
schild.gd Normal file
View file

@ -0,0 +1,11 @@
extends Sprite2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

BIN
wobbl.res Normal file

Binary file not shown.