From e8425579802ee0a44abfc3f0f31c7601b04e22d5 Mon Sep 17 00:00:00 2001 From: lupoDharkael Date: Sat, 1 Dec 2018 16:16:48 +0100 Subject: [PATCH] Update kinematic_character demo --- .../Player Red/playerRed_fall.png.import | 31 ++++ .../Player Red/playerRed_stand.png.import | 31 ++++ .../Player Red/playerRed_up1.png.import | 31 ++++ .../Player Red/playerRed_up2.png.import | 31 ++++ .../Player Red/playerRed_up3.png.import | 31 ++++ .../Player Red/playerRed_walk1.png.import | 31 ++++ .../Player Red/playerRed_walk2.png.import | 31 ++++ .../Player Red/playerRed_walk3.png.import | 31 ++++ .../Player Red/playerRed_walk4.png.import | 31 ++++ .../Player Red/playerRed_walk5.png.import | 31 ++++ .../Script/.sconsign.dblite | Bin 92551 -> 118487 bytes cpp/kinematic_character/Script/Makefile | 3 +- cpp/kinematic_character/Script/SConstruct | 11 +- .../Script/src/colworld.cpp | 12 +- cpp/kinematic_character/Script/src/colworld.h | 4 +- cpp/kinematic_character/Script/src/common.cpp | 4 +- cpp/kinematic_character/Script/src/player.cpp | 32 ++-- cpp/kinematic_character/Script/src/player.h | 4 +- cpp/kinematic_character/circle.png.import | 31 ++++ cpp/kinematic_character/colworld.tscn | 156 +++++++----------- cpp/kinematic_character/icon.png.import | 31 ++++ .../long_obstacle.png.import | 31 ++++ cpp/kinematic_character/obstacle.png.import | 31 ++++ cpp/kinematic_character/princess.png.import | 31 ++++ cpp/kinematic_character/project.godot | 32 +++- 25 files changed, 587 insertions(+), 136 deletions(-) create mode 100644 cpp/kinematic_character/Player Red/playerRed_fall.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_stand.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_up1.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_up2.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_up3.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_walk1.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_walk2.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_walk3.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_walk4.png.import create mode 100644 cpp/kinematic_character/Player Red/playerRed_walk5.png.import create mode 100644 cpp/kinematic_character/circle.png.import create mode 100644 cpp/kinematic_character/icon.png.import create mode 100644 cpp/kinematic_character/long_obstacle.png.import create mode 100644 cpp/kinematic_character/obstacle.png.import create mode 100644 cpp/kinematic_character/princess.png.import diff --git a/cpp/kinematic_character/Player Red/playerRed_fall.png.import b/cpp/kinematic_character/Player Red/playerRed_fall.png.import new file mode 100644 index 0000000..212c407 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_fall.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_fall.png-301bfd41d778b32114baf3c9c50ff2be.stex" + +[deps] + +source_file="res://Player Red/playerRed_fall.png" +dest_files=[ "res://.import/playerRed_fall.png-301bfd41d778b32114baf3c9c50ff2be.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_stand.png.import b/cpp/kinematic_character/Player Red/playerRed_stand.png.import new file mode 100644 index 0000000..1de5ed0 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_stand.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_stand.png-af591b973e2c87f6a38b4a41e4833941.stex" + +[deps] + +source_file="res://Player Red/playerRed_stand.png" +dest_files=[ "res://.import/playerRed_stand.png-af591b973e2c87f6a38b4a41e4833941.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_up1.png.import b/cpp/kinematic_character/Player Red/playerRed_up1.png.import new file mode 100644 index 0000000..3c95f67 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_up1.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_up1.png-f260a896e5f77f9f0845c53613477c85.stex" + +[deps] + +source_file="res://Player Red/playerRed_up1.png" +dest_files=[ "res://.import/playerRed_up1.png-f260a896e5f77f9f0845c53613477c85.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_up2.png.import b/cpp/kinematic_character/Player Red/playerRed_up2.png.import new file mode 100644 index 0000000..0110ee0 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_up2.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_up2.png-87399f0c9fe53fc55fe801604850254a.stex" + +[deps] + +source_file="res://Player Red/playerRed_up2.png" +dest_files=[ "res://.import/playerRed_up2.png-87399f0c9fe53fc55fe801604850254a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_up3.png.import b/cpp/kinematic_character/Player Red/playerRed_up3.png.import new file mode 100644 index 0000000..725d1b8 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_up3.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_up3.png-95b2956869d268a117ea111914f90220.stex" + +[deps] + +source_file="res://Player Red/playerRed_up3.png" +dest_files=[ "res://.import/playerRed_up3.png-95b2956869d268a117ea111914f90220.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_walk1.png.import b/cpp/kinematic_character/Player Red/playerRed_walk1.png.import new file mode 100644 index 0000000..a93aec8 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_walk1.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_walk1.png-ade6ae6ec480d525ec4bd65536c4f3dc.stex" + +[deps] + +source_file="res://Player Red/playerRed_walk1.png" +dest_files=[ "res://.import/playerRed_walk1.png-ade6ae6ec480d525ec4bd65536c4f3dc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_walk2.png.import b/cpp/kinematic_character/Player Red/playerRed_walk2.png.import new file mode 100644 index 0000000..50273c4 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_walk2.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_walk2.png-dee2c8490b7429a8491012a77edabca6.stex" + +[deps] + +source_file="res://Player Red/playerRed_walk2.png" +dest_files=[ "res://.import/playerRed_walk2.png-dee2c8490b7429a8491012a77edabca6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_walk3.png.import b/cpp/kinematic_character/Player Red/playerRed_walk3.png.import new file mode 100644 index 0000000..7af09cc --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_walk3.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_walk3.png-1bd3d8c9ff5f381422a5ef2523fe18dc.stex" + +[deps] + +source_file="res://Player Red/playerRed_walk3.png" +dest_files=[ "res://.import/playerRed_walk3.png-1bd3d8c9ff5f381422a5ef2523fe18dc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_walk4.png.import b/cpp/kinematic_character/Player Red/playerRed_walk4.png.import new file mode 100644 index 0000000..44a0d8a --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_walk4.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_walk4.png-6009a111ffdcb8be52e3e006cb9940b3.stex" + +[deps] + +source_file="res://Player Red/playerRed_walk4.png" +dest_files=[ "res://.import/playerRed_walk4.png-6009a111ffdcb8be52e3e006cb9940b3.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Player Red/playerRed_walk5.png.import b/cpp/kinematic_character/Player Red/playerRed_walk5.png.import new file mode 100644 index 0000000..91ab745 --- /dev/null +++ b/cpp/kinematic_character/Player Red/playerRed_walk5.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/playerRed_walk5.png-23e13d3afa791a065240513219f17404.stex" + +[deps] + +source_file="res://Player Red/playerRed_walk5.png" +dest_files=[ "res://.import/playerRed_walk5.png-23e13d3afa791a065240513219f17404.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/Script/.sconsign.dblite b/cpp/kinematic_character/Script/.sconsign.dblite index a5f5ad6eede56f578ee29ac9611adc6e97a2faa4..657328f89a71e977704a88cd41fab3cc0b47220e 100644 GIT binary patch literal 118487 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 delta 13912 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 Lhb4E{wdMa8?&Q7H diff --git a/cpp/kinematic_character/Script/Makefile b/cpp/kinematic_character/Script/Makefile index ca67c32..1c0ddb9 100644 --- a/cpp/kinematic_character/Script/Makefile +++ b/cpp/kinematic_character/Script/Makefile @@ -1,3 +1,2 @@ - all: - scons cpp_bindings=../../../../godot-cpp/ headers=../../../../godot_headers/ + scons cpp_bindings="../../../godot-cpp/" headers="../../../godot-cpp/godot_headers/" diff --git a/cpp/kinematic_character/Script/SConstruct b/cpp/kinematic_character/Script/SConstruct index 2aa7749..ea0e06f 100644 --- a/cpp/kinematic_character/Script/SConstruct +++ b/cpp/kinematic_character/Script/SConstruct @@ -11,8 +11,8 @@ env = Environment() if platform == "windows": env = Environment(ENV = os.environ) -godot_headers_path = ARGUMENTS.get("headers", os.getenv("GODOT_HEADERS", "godot_headers")) -godot_bindings_path = ARGUMENTS.get("cpp_bindings", os.getenv("CPP_BINDINGS", "cpp_bindings")) +godot_headers_path = ARGUMENTS.get("headers", os.getenv("GODOT_HEADERS", "godot-cpp/godot_headers")) +godot_bindings_path = ARGUMENTS.get("cpp_bindings", os.getenv("CPP_BINDINGS", "godot-cpp")) # default to debug build, must be same setting as used for cpp_bindings target = ARGUMENTS.get("target", "debug") @@ -41,9 +41,12 @@ def add_sources(sources, dir): if f.endswith(".cpp"): sources.append(dir + "/" + f) -env.Append(CPPPATH=[godot_headers_path, godot_bindings_path + '/include/', godot_bindings_path + '/include/core/', 'src' ]) +env.Append(CPPPATH=[godot_headers_path, godot_bindings_path + '/include/gen/', godot_bindings_path + '/include/core/', godot_bindings_path + '/include/']) -env.Append(LIBS=['godot_cpp_bindings']) +if target == "debug": + env.Append(LIBS=['libgodot-cpp.linux.debug.64']) +else: + env.Append(LIBS=['libgodot-cpp.linux.release.64']) env.Append(LIBPATH=[ godot_bindings_path + '/bin/' ]) sources = [] diff --git a/cpp/kinematic_character/Script/src/colworld.cpp b/cpp/kinematic_character/Script/src/colworld.cpp index b79addb..a36d375 100644 --- a/cpp/kinematic_character/Script/src/colworld.cpp +++ b/cpp/kinematic_character/Script/src/colworld.cpp @@ -14,7 +14,7 @@ * limitations under the License. **/ -#include +#include "colworld.h" #include using namespace godot; @@ -29,18 +29,18 @@ void ColWorld::_init() { } void ColWorld::_ready() { - owner->get_node("princess")->connect("body_entered", owner, "_on_princess_body_enter"); + get_node("princess")->connect("body_entered", this, "_on_princess_body_enter"); } void ColWorld::_on_princess_body_enter(KinematicBody2D *body) { if (body->get_name() == "Character") { - ((Label *)owner->get_node("youwin"))->show(); + ((Label *)get_node("youwin"))->show(); } } void ColWorld::_register_methods() { - register_method((char *)"_init", &ColWorld::_init); - register_method((char *)"_ready", &ColWorld::_ready); + register_method("_init", &ColWorld::_init); + register_method("_ready", &ColWorld::_ready); - register_method((char *)"_on_princess_body_enter", &ColWorld::_on_princess_body_enter); + register_method("_on_princess_body_enter", &ColWorld::_on_princess_body_enter); } diff --git a/cpp/kinematic_character/Script/src/colworld.h b/cpp/kinematic_character/Script/src/colworld.h index 88ecca1..fba6636 100644 --- a/cpp/kinematic_character/Script/src/colworld.h +++ b/cpp/kinematic_character/Script/src/colworld.h @@ -23,8 +23,8 @@ namespace godot { -class ColWorld : public GodotScript { - GODOT_CLASS(ColWorld) +class ColWorld : public Node2D { + GODOT_CLASS(ColWorld, Node2D) public: ColWorld(); diff --git a/cpp/kinematic_character/Script/src/common.cpp b/cpp/kinematic_character/Script/src/common.cpp index ace9d97..6db039a 100644 --- a/cpp/kinematic_character/Script/src/common.cpp +++ b/cpp/kinematic_character/Script/src/common.cpp @@ -16,8 +16,8 @@ #include -#include -#include +#include "colworld.h" +#include "player.h" using namespace godot; diff --git a/cpp/kinematic_character/Script/src/player.cpp b/cpp/kinematic_character/Script/src/player.cpp index e13df32..69e599e 100644 --- a/cpp/kinematic_character/Script/src/player.cpp +++ b/cpp/kinematic_character/Script/src/player.cpp @@ -14,13 +14,13 @@ * limitations under the License. **/ -#include +#include "player.h" +#include "colworld.h" #include #include #include -#include #include using namespace godot; @@ -58,13 +58,13 @@ void GDPlayer::_init() { } void GDPlayer::_ready() { - ray0 = ((RayCast2D *)owner->get_node("Ray0")); - ray1 = ((RayCast2D *)owner->get_node("Ray1")); + ray0 = ((RayCast2D *)get_node("Ray0")); + ray1 = ((RayCast2D *)get_node("Ray1")); - ray0->add_exception(owner); - ray1->add_exception(owner); + ray0->add_exception(this); + ray1->add_exception(this); - owner->connect("move", owner, "_move"); + connect("move", this, "_move"); } void GDPlayer::moving() { @@ -74,9 +74,9 @@ void GDPlayer::moving() { void GDPlayer::_physics_process(const float delta) { Vector2 _force = Vector2(0, _gravity); - bool left = Input::is_action_pressed("ui_left"); - bool right = Input::is_action_pressed("ui_right"); - bool jump = Input::is_action_pressed("ui_up"); + bool left = Input::get_singleton()->is_action_pressed("ui_left"); + bool right = Input::get_singleton()->is_action_pressed("ui_right"); + bool jump = Input::get_singleton()->is_action_pressed("ui_up"); bool stop = true; @@ -108,18 +108,18 @@ void GDPlayer::_physics_process(const float delta) { // Integrate forces to velocity _velocity += _force * delta; // Integrate velocity into motion and move - _velocity = owner->move_and_slide(_velocity, Vector2(0, -1)); + _velocity = move_and_slide(_velocity, Vector2(0, -1)); bool floor_colliding = (ray0->is_colliding() || ray1->is_colliding()); - if (owner->is_on_floor() || floor_colliding) { + if (is_on_floor() || floor_colliding) { _on_air_time = 0; } if (_on_air_time < _max_airborn_time && jump && !_prev_jump_pressed && !_jumping) { _velocity.y = -_jump_speed; _jumping = false; - owner->emit_signal("move"); + emit_signal("move"); } _on_air_time += delta; @@ -134,14 +134,14 @@ void GDPlayer::_physics_process(const float delta) { bool animating = false; if (left) { - ((AnimatedSprite *)owner->get_node("AnimatedSprite"))->set_flip_h(true); + ((AnimatedSprite *)get_node("AnimatedSprite"))->set_flip_h(true); if (floor_colliding) { _current_anim = "Run"; } animating = true; } if (right) { - ((AnimatedSprite *)owner->get_node("AnimatedSprite"))->set_flip_h(false); + ((AnimatedSprite *)get_node("AnimatedSprite"))->set_flip_h(false); if (floor_colliding) { _current_anim = "Run"; } @@ -159,7 +159,7 @@ void GDPlayer::_physics_process(const float delta) { _current_anim = "Default"; } - ((AnimatedSprite *)owner->get_node("AnimatedSprite"))->play(_current_anim); + ((AnimatedSprite *)get_node("AnimatedSprite"))->play(_current_anim); } void GDPlayer::_register_methods() { diff --git a/cpp/kinematic_character/Script/src/player.h b/cpp/kinematic_character/Script/src/player.h index 89b5f10..fd26fd1 100644 --- a/cpp/kinematic_character/Script/src/player.h +++ b/cpp/kinematic_character/Script/src/player.h @@ -25,8 +25,8 @@ using namespace godot; -class GDPlayer : public GodotScript { - GODOT_CLASS(GDPlayer) +class GDPlayer : public KinematicBody2D { + GODOT_CLASS(GDPlayer, KinematicBody2D) public: GDPlayer(); diff --git a/cpp/kinematic_character/circle.png.import b/cpp/kinematic_character/circle.png.import new file mode 100644 index 0000000..65dc5fc --- /dev/null +++ b/cpp/kinematic_character/circle.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/circle.png-10953cad44a8947fbdd4128a631e9e52.stex" + +[deps] + +source_file="res://circle.png" +dest_files=[ "res://.import/circle.png-10953cad44a8947fbdd4128a631e9e52.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/colworld.tscn b/cpp/kinematic_character/colworld.tscn index d3daba9..68162e4 100644 --- a/cpp/kinematic_character/colworld.tscn +++ b/cpp/kinematic_character/colworld.tscn @@ -25,7 +25,7 @@ extents = Vector2( 8, 8 ) 0/tex_offset = Vector2( 0, 0 ) 0/modulate = Color( 1, 1, 1, 1 ) 0/region = Rect2( 0, 0, 0, 0 ) -0/is_autotile = false +0/tile_mode = 0 0/occluder_offset = Vector2( 0, 0 ) 0/navigation_offset = Vector2( 0, 0 ) 0/shapes = [ { @@ -34,6 +34,7 @@ extents = Vector2( 8, 8 ) "shape": SubResource( 2 ), "shape_transform": Transform2D( 1, 0, 0, 1, 8, 8 ) } ] +0/z_index = 0 [sub_resource type="RectangleShape2D" id=4] @@ -137,13 +138,11 @@ extents = Vector2( 8, 8 ) custom_solver_bias = 0.0 extents = Vector2( 32, 8 ) -[node name="colworld" type="Node2D" index="0"] - +[node name="colworld" type="Node2D"] editor/display_folded = true script = SubResource( 1 ) -[node name="TileMap" type="TileMap" parent="." index="0"] - +[node name="TileMap" type="TileMap" parent="."] mode = 0 tile_set = SubResource( 3 ) cell_size = Vector2( 16, 16 ) @@ -162,8 +161,7 @@ occluder_light_mask = 1 format = 1 tile_data = PoolIntArray( 0, 0, 2141323264, 1, 0, 2141323264, 2, 0, 2141323264, 3, 0, 2141323264, 4, 0, 2141323264, 5, 0, 2141323264, 6, 0, 2141323264, 7, 0, 2141323264, 8, 0, 2141323264, 9, 0, 2141323264, 10, 0, 2141323264, 11, 0, 2141323264, 12, 0, 2141323264, 13, 0, 2141323264, 14, 0, 2141323264, 15, 0, 2141323264, 16, 0, 2141323264, 17, 0, 2141323264, 18, 0, 2141323264, 19, 0, 2141323264, 20, 0, 2141323264, 21, 0, 2141323264, 22, 0, 2141323264, 23, 0, 2141323264, 24, 0, 2141323264, 25, 0, 2141323264, 26, 0, 2141323264, 27, 0, 2141323264, 28, 0, 2141323264, 29, 0, 2141323264, 30, 0, 2141323264, 31, 0, 2141323264, 32, 0, 2141323264, 65536, 0, 2141323264, 65537, 0, 2141323264, 65538, 0, 2141323264, 65539, 0, 2141323264, 65540, 0, 2141323264, 65541, 0, 2141323264, 65542, 0, 2141323264, 65543, 0, 2141323264, 65544, 0, 2141323264, 65545, 0, 2141323264, 65546, 0, 2141323264, 65547, 0, 2141323264, 65548, 0, 2141323264, 65549, 0, 2141323264, 65550, 0, 2141323264, 65551, 0, 2141323264, 65552, 0, 2141323264, 65553, 0, 2141323264, 65554, 0, 2141323264, 65555, 0, 2141323264, 65556, 0, 2141323264, 65557, 0, 2141323264, 65558, 0, 2141323264, 65559, 0, 2141323264, 65560, 0, 2141323264, 65561, 0, 2141323264, 65562, 0, 2141323264, 65563, 0, 2141323264, 65564, 0, 2141323264, 65565, 0, 2141323264, 65566, 0, 2141323264, 65567, 0, 2141323264, 65568, 0, 2141323264, 131072, 0, 2141323264, 131073, 0, 2141323264, 131103, 0, 2141323264, 131104, 0, 2141323264, 196608, 0, 2141323264, 196609, 0, 2141323264, 196639, 0, 2141323264, 196640, 0, 2141323264, 262144, 0, 2141323264, 262145, 0, 2141323264, 262175, 0, 2141323264, 262176, 0, 2141323264, 327680, 0, 2141323264, 327681, 0, 2141323264, 327685, 0, 2141323264, 327686, 0, 2141323264, 327687, 0, 2141323264, 327688, 0, 2141323264, 327689, 0, 2141323264, 327690, 0, 2141323264, 327691, 0, 2141323264, 327692, 0, 2141323264, 327693, 0, 2141323264, 327697, 0, 2141323264, 327698, 0, 2141323264, 327711, 0, 2141323264, 327712, 0, 2141323264, 393216, 0, 2141323264, 393217, 0, 2141323264, 393237, 0, 2141323264, 393238, 0, 2141323264, 393247, 0, 2141323264, 393248, 0, 2141323264, 458752, 0, 2141323264, 458753, 0, 2141323264, 458783, 0, 2141323264, 458784, 0, 2141323264, 524288, 0, 2141323264, 524289, 0, 2141323264, 524313, 0, 2141323264, 524314, 0, 2141323264, 524319, 0, 2141323264, 524320, 0, 2141323264, 589824, 0, 2141323264, 589825, 0, 2141323264, 589830, 0, 2141323264, 589831, 0, 2141323264, 589832, 0, 2141323264, 589833, 0, 2141323264, 589834, 0, 2141323264, 589845, 0, 2141323264, 589846, 0, 2141323264, 589847, 0, 2141323264, 589855, 0, 2141323264, 589856, 0, 2141323264, 655360, 0, 2141323264, 655361, 0, 2141323264, 655391, 0, 2141323264, 655392, 0, 2141323264, 720896, 0, 2141323264, 720897, 0, 2141323264, 720927, 0, 2141323264, 720928, 0, 2141323264, 786432, 0, 2141323264, 786433, 0, 2141323264, 786463, 0, 2141323264, 786464, 0, 2141323264, 851968, 0, 2141323264, 851969, 0, 2141323264, 851999, 0, 2141323264, 852000, 0, 2141323264, 917504, 0, 2141323264, 917505, 0, 2141323264, 917535, 0, 2141323264, 917536, 0, 2141323264, 983040, 0, 2141323264, 983041, 0, 2141323264, 983071, 0, 2141323264, 983072, 0, 2141323264, 1048576, 0, 2141323264, 1048577, 0, 2141323264, 1048607, 0, 2141323264, 1048608, 0, 2141323264, 1114112, 0, 2141323264, 1114113, 0, 2141323264, 1114143, 0, 2141323264, 1114144, 0, 2141323264, 1179648, 0, 2141323264, 1179649, 0, 2141323264, 1179654, 0, 2141323264, 1179655, 0, 2141323264, 1179656, 0, 2141323264, 1179679, 0, 2141323264, 1179680, 0, 2141323264, 1245184, 0, 2141323264, 1245185, 0, 2141323264, 1245204, 0, 2141323264, 1245205, 0, 2141323264, 1245206, 0, 2141323264, 1245207, 0, 2141323264, 1245215, 0, 2141323264, 1245216, 0, 2141323264, 1310720, 0, 2141323264, 1310721, 0, 2141323264, 1310751, 0, 2141323264, 1310752, 0, 2141323264, 1376256, 0, 2141323264, 1376257, 0, 2141323264, 1376285, 0, 2141323264, 1376286, 0, 2141323264, 1376287, 0, 2141323264, 1376288, 0, 2141323264, 1441792, 0, 2141323264, 1441793, 0, 2141323264, 1441823, 0, 2141323264, 1441824, 0, 2141323264, 1507328, 0, 2141323264, 1507329, 0, 2141323264, 1507359, 0, 2141323264, 1507360, 0, 2141323264, 1572864, 0, 2141323264, 1572865, 0, 2141323264, 1572890, 0, 2141323264, 1572891, 0, 2141323264, 1572895, 0, 2141323264, 1572896, 0, 2141323264, 1638400, 0, 2141323264, 1638401, 0, 2141323264, 1638413, 0, 2141323264, 1638425, 0, 2141323264, 1638426, 0, 2141323264, 1638431, 0, 2141323264, 1638432, 0, 2141323264, 1703936, 0, 2141323264, 1703937, 0, 2141323264, 1703946, 0, 2141323264, 1703947, 0, 2141323264, 1703948, 0, 2141323264, 1703949, 0, 2141323264, 1703965, 0, 2141323264, 1703966, 0, 2141323264, 1703967, 0, 2141323264, 1703968, 0, 2141323264, 1769472, 0, 2141323264, 1769473, 0, 2141323264, 1769482, 0, 2141323264, 1769483, 0, 2141323264, 1769501, 0, 2141323264, 1769502, 0, 2141323264, 1769503, 0, 2141323264, 1769504, 0, 2141323264, 1835008, 0, 2141323264, 1835009, 0, 2141323264, 1835012, 0, 2141323264, 1835018, 0, 2141323264, 1835019, 0, 2141323264, 1835034, 0, 2141323264, 1835035, 0, 2141323264, 1835036, 0, 2141323264, 1835037, 0, 2141323264, 1835038, 0, 2141323264, 1835039, 0, 2141323264, 1835040, 0, 2141323264, 1900544, 0, 2141323264, 1900545, 0, 2141323264, 1900546, 0, 2141323264, 1900547, 0, 2141323264, 1900548, 0, 2141323264, 1900549, 0, 2141323264, 1900550, 0, 2141323264, 1900551, 0, 2141323264, 1900552, 0, 2141323264, 1900553, 0, 2141323264, 1900554, 0, 2141323264, 1900555, 0, 2141323264, 1900556, 0, 2141323264, 1900557, 0, 2141323264, 1900558, 0, 2141323264, 1900559, 0, 2141323264, 1900560, 0, 2141323264, 1900561, 0, 2141323264, 1900562, 0, 2141323264, 1900563, 0, 2141323264, 1900564, 0, 2141323264, 1900565, 0, 2141323264, 1900566, 0, 2141323264, 1900567, 0, 2141323264, 1900568, 0, 2141323264, 1900569, 0, 2141323264, 1900570, 0, 2141323264, 1900571, 0, 2141323264, 1900572, 0, 2141323264, 1900573, 0, 2141323264, 1900574, 0, 2141323264, 1900575, 0, 2141323264, 1900576, 0, 2141323264, 1966080, 0, 2141323264, 1966081, 0, 2141323264, 1966082, 0, 2141323264, 1966083, 0, 2141323264, 1966084, 0, 2141323264, 1966085, 0, 2141323264, 1966086, 0, 2141323264, 1966087, 0, 2141323264, 1966088, 0, 2141323264, 1966089, 0, 2141323264, 1966090, 0, 2141323264, 1966091, 0, 2141323264, 1966092, 0, 2141323264, 1966093, 0, 2141323264, 1966094, 0, 2141323264, 1966095, 0, 2141323264, 1966096, 0, 2141323264, 1966097, 0, 2141323264, 1966098, 0, 2141323264, 1966099, 0, 2141323264, 1966100, 0, 2141323264, 1966101, 0, 2141323264, 1966102, 0, 2141323264, 1966103, 0, 2141323264, 1966104, 0, 2141323264, 1966105, 0, 2141323264, 1966106, 0, 2141323264, 1966107, 0, 2141323264, 1966108, 0, 2141323264, 1966109, 0, 2141323264, 1966110, 0, 2141323264, 1966111, 0, 2141323264, 1966112, 0, 2141323264, 2031616, 0, 2141323264, 2031617, 0, 2141323264, 2031618, 0, 2141323264, 2031619, 0, 2141323264, 2031620, 0, 2141323264, 2031621, 0, 2141323264, 2031622, 0, 2141323264, 2031623, 0, 2141323264, 2031624, 0, 2141323264, 2031625, 0, 2141323264, 2031626, 0, 2141323264, 2031627, 0, 2141323264, 2031628, 0, 2141323264, 2031629, 0, 2141323264, 2031630, 0, 2141323264, 2031631, 0, 2141323264, 2031632, 0, 2141323264, 2031633, 0, 2141323264, 2031634, 0, 2141323264, 2031635, 0, 2141323264, 2031636, 0, 2141323264, 2031637, 0, 2141323264, 2031638, 0, 2141323264, 2031639, 0, 2141323264, 2031640, 0, 2141323264, 2031641, 0, 2141323264, 2031642, 0, 2141323264, 2031643, 0, 2141323264, 2031644, 0, 2141323264, 2031645, 0, 2141323264, 2031646, 0, 2141323264, 2031647, 0, 2141323264, 2031648, 0, 2141323264 ) -[node name="princess" type="Area2D" parent="." index="1"] - +[node name="princess" type="Area2D" parent="."] editor/display_folded = true position = Vector2( 97, 72 ) input_pickable = true @@ -174,77 +172,66 @@ angular_damp = 1.0 audio_bus_override = false audio_bus_name = "Master" -[node name="collision" type="CollisionShape2D" parent="princess" index="0"] - +[node name="collision" type="CollisionShape2D" parent="princess"] shape = SubResource( 4 ) -[node name="Sprite" type="Sprite" parent="princess" index="1"] - +[node name="Sprite" type="Sprite" parent="princess"] texture = ExtResource( 3 ) -[node name="Character" parent="." index="2" instance=ExtResource( 4 )] - +[node name="Character" parent="." instance=ExtResource( 4 )] position = Vector2( 354.296, 254.923 ) +motion/sync_to_physics = false -[node name="moving_platform1" type="KinematicBody2D" parent="." index="3"] - +[node name="moving_platform1" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 274.142, 152 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="collision" type="CollisionShape2D" parent="moving_platform1" index="0"] - +[node name="collision" type="CollisionShape2D" parent="moving_platform1"] shape = SubResource( 5 ) -[node name="sprite" type="Sprite" parent="moving_platform1" index="1"] - +[node name="sprite" type="Sprite" parent="moving_platform1"] texture = ExtResource( 2 ) -[node name="anim" type="AnimationPlayer" parent="moving_platform1" index="2"] - +[node name="anim" type="AnimationPlayer" parent="moving_platform1"] +root_node = NodePath("..") +autoplay = "leftright" playback_process_mode = 0 playback_default_blend_time = 0.0 -root_node = NodePath("..") +playback_speed = 1.0 anims/leftright = SubResource( 6 ) -playback/active = true -playback/speed = 1.0 blend_times = [ ] -autoplay = "leftright" - -[node name="moving_platform2" type="KinematicBody2D" parent="." index="4"] +[node name="moving_platform2" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 88.3493, 284.689 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="collision" type="CollisionShape2D" parent="moving_platform2" index="0"] - +[node name="collision" type="CollisionShape2D" parent="moving_platform2"] shape = SubResource( 5 ) -[node name="sprite" type="Sprite" parent="moving_platform2" index="1"] - +[node name="sprite" type="Sprite" parent="moving_platform2"] texture = ExtResource( 2 ) -[node name="anim" type="AnimationPlayer" parent="moving_platform2" index="2"] - +[node name="anim" type="AnimationPlayer" parent="moving_platform2"] +root_node = NodePath("..") +autoplay = "updown" playback_process_mode = 0 playback_default_blend_time = 0.0 -root_node = NodePath("..") +playback_speed = 1.0 anims/leftright = SubResource( 7 ) anims/updown = SubResource( 8 ) -playback/active = true -playback/speed = 1.0 blend_times = [ ] -autoplay = "updown" - -[node name="youwin" type="Label" parent="." index="5"] +[node name="youwin" type="Label" parent="."] visible = false anchor_left = 0.0 anchor_top = 0.0 @@ -255,7 +242,9 @@ margin_top = 41.0 margin_right = 344.0 margin_bottom = 67.0 rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false mouse_filter = 2 +mouse_default_cursor_shape = 0 size_flags_horizontal = 2 size_flags_vertical = 0 text = "Thank You Cubio @@ -265,122 +254,107 @@ percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 -[node name="oneway1" type="KinematicBody2D" parent="." index="6"] - +[node name="oneway1" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 439, 308 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="sprite" type="Sprite" parent="oneway1" index="0"] - +[node name="sprite" type="Sprite" parent="oneway1"] scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway1" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway1"] shape = SubResource( 9 ) one_way_collision = true -[node name="oneway2" type="KinematicBody2D" parent="." index="7"] - +[node name="oneway2" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 456, 308 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="sprite" type="Sprite" parent="oneway2" index="0"] - +[node name="sprite" type="Sprite" parent="oneway2"] scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway2" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway2"] shape = SubResource( 9 ) one_way_collision = true -[node name="oneway3" type="KinematicBody2D" parent="." index="8"] - +[node name="oneway3" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 472, 308 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="sprite" type="Sprite" parent="oneway3" index="0"] - +[node name="sprite" type="Sprite" parent="oneway3"] scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway3" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway3"] shape = SubResource( 9 ) one_way_collision = true -[node name="oneway4" type="KinematicBody2D" parent="." index="9"] - +[node name="oneway4" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 487, 308 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="sprite" type="Sprite" parent="oneway4" index="0"] - +[node name="sprite" type="Sprite" parent="oneway4"] scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway4" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway4"] shape = SubResource( 9 ) one_way_collision = true -[node name="circle" type="KinematicBody2D" parent="." index="10"] - +[node name="circle" type="KinematicBody2D" parent="."] editor/display_folded = true position = Vector2( 241.169, 304.126 ) input_pickable = false collision_layer = 1 collision_mask = 1 collision/safe_margin = 0.08 +motion/sync_to_physics = false -[node name="sprite" type="Sprite" parent="circle" index="0"] - +[node name="sprite" type="Sprite" parent="circle"] texture = ExtResource( 5 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="circle" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="circle"] shape = SubResource( 10 ) -[node name="anim" type="AnimationPlayer" parent="circle" index="2"] - +[node name="anim" type="AnimationPlayer" parent="circle"] +root_node = NodePath("..") +autoplay = "turn" playback_process_mode = 1 playback_default_blend_time = 0.0 -root_node = NodePath("..") +playback_speed = 1.0 anims/turn = SubResource( 11 ) -playback/active = true -playback/speed = 1.0 blend_times = [ ] -autoplay = "turn" - -[node name="box" type="CollisionShape2D" parent="circle" index="3"] +[node name="box" type="CollisionShape2D" parent="circle"] position = Vector2( -0.440125, -37.0904 ) shape = SubResource( 12 ) -[node name="boxsprite" type="Sprite" parent="circle" index="4"] - +[node name="boxsprite" type="Sprite" parent="circle"] position = Vector2( 0, -37.4108 ) texture = ExtResource( 2 ) -[node name="platform" type="StaticBody2D" parent="." index="11"] - +[node name="platform" type="StaticBody2D" parent="."] editor/display_folded = true position = Vector2( 251.44, 396.557 ) rotation = -0.428054 @@ -389,19 +363,14 @@ collision_layer = 1 collision_mask = 1 constant_linear_velocity = Vector2( 0, 0 ) constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 - -[node name="sprite" type="Sprite" parent="platform" index="0"] +[node name="sprite" type="Sprite" parent="platform"] texture = ExtResource( 6 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="platform" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="platform"] shape = SubResource( 13 ) -[node name="platform1" type="StaticBody2D" parent="." index="12"] - +[node name="platform1" type="StaticBody2D" parent="."] editor/display_folded = true position = Vector2( 369.116, 394.016 ) rotation = 0.465931 @@ -410,15 +379,10 @@ collision_layer = 1 collision_mask = 1 constant_linear_velocity = Vector2( 0, 0 ) constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 - -[node name="sprite" type="Sprite" parent="platform1" index="0"] +[node name="sprite" type="Sprite" parent="platform1"] texture = ExtResource( 6 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="platform1" index="1"] - +[node name="CollisionShape2D" type="CollisionShape2D" parent="platform1"] shape = SubResource( 13 ) - diff --git a/cpp/kinematic_character/icon.png.import b/cpp/kinematic_character/icon.png.import new file mode 100644 index 0000000..45ee6af --- /dev/null +++ b/cpp/kinematic_character/icon.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/long_obstacle.png.import b/cpp/kinematic_character/long_obstacle.png.import new file mode 100644 index 0000000..f136761 --- /dev/null +++ b/cpp/kinematic_character/long_obstacle.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/long_obstacle.png-1b33440a15b4db156b2a9ec7e9a2a80e.stex" + +[deps] + +source_file="res://long_obstacle.png" +dest_files=[ "res://.import/long_obstacle.png-1b33440a15b4db156b2a9ec7e9a2a80e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/obstacle.png.import b/cpp/kinematic_character/obstacle.png.import new file mode 100644 index 0000000..90cd6e5 --- /dev/null +++ b/cpp/kinematic_character/obstacle.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex" + +[deps] + +source_file="res://obstacle.png" +dest_files=[ "res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/princess.png.import b/cpp/kinematic_character/princess.png.import new file mode 100644 index 0000000..91a78e5 --- /dev/null +++ b/cpp/kinematic_character/princess.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/princess.png-9b4caf2cfe324ae3734249d5b559d39d.stex" + +[deps] + +source_file="res://princess.png" +dest_files=[ "res://.import/princess.png-9b4caf2cfe324ae3734249d5b559d39d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/cpp/kinematic_character/project.godot b/cpp/kinematic_character/project.godot index ae47600..d37377b 100644 --- a/cpp/kinematic_character/project.godot +++ b/cpp/kinematic_character/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -32,16 +37,31 @@ singletons=[ ] [input] -jump=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) ] -move_bottom=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +} +move_bottom={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) ] -move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) ] -move_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) ] -move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) ] +} [memory]