Compare commits

...

110 Commits

Author SHA1 Message Date
837d50714a Version 2.0.2 2016-04-07 08:34:27 +02:00
bb6cfc130b Option to toggle syntax highlighting
(cherry picked from commit d78e98e2a4)
2016-04-06 19:39:36 +02:00
b3891246e5 Fixed block indent inconsistency, fixes issue 3803
(cherry picked from commit 93700676b5)
2016-04-06 19:39:30 +02:00
00566a8592 Revert "free Material 'shadow_material_double_sided' on ::finish()"
This reverts commit 43c74056b1.
2016-04-06 19:37:16 +02:00
63e33cfdd2 Add a sleeping_state_changed signal to RigidBody and RigidBody2D classes
Closes #3911

(cherry picked from commit 6dcd1354c2)
2016-04-06 18:49:51 +02:00
dea6671d58 Bind Z key (without modifiers) to toggle wireframe in 3D view
Fixed #4124

(cherry picked from commit 8ee8802cbe)
2016-04-06 18:49:26 +02:00
7c6d2e7062 Fixed text edit undo and redo operation interaction
(cherry picked from commit 646e089782)
2016-04-06 18:48:31 +02:00
eb927383f2 Fixes errors occurring when switching to a new scene with a spatial editor from a canvas editor.
(cherry picked from commit f303e3483d)
2016-04-06 18:48:25 +02:00
5c98674a8b Added rotation/panning support for trackpads in 3D mode #53
(cherry picked from commit 3ebde34d8f)
2016-04-06 18:48:05 +02:00
4bde902de1 Fixed 'complex' typo in method name
(cherry picked from commit 971c3be52d)
2016-04-06 18:47:34 +02:00
a5f07d18ec Fixed undoing twice when removing selection
(cherry picked from commit 15f43149e1)
2016-04-06 18:47:28 +02:00
71da9a1a23 Separate help pages from scripts by default
Fixes #4199
(cherry picked from commit 9c89d3e042)
2016-04-06 18:47:22 +02:00
44daccc861 Change toggle comment behaviour. Fixes #4198
(cherry picked from commit 1b6f14d810)
2016-04-06 18:47:18 +02:00
MSC
4220ffbd8e memdelete 'joy_thread' + 'joy_mutex' on ::~joystick_linux()
(cherry picked from commit 391095e0ef)
2016-04-06 18:46:53 +02:00
MSC
43c74056b1 free Material 'shadow_material_double_sided' on ::finish()
(cherry picked from commit 7a9998370f)
2016-04-06 18:46:46 +02:00
48438e4f3b Fixed insert mode interaction with auto complete
(cherry picked from commit a984adb5a6)
2016-04-06 18:46:36 +02:00
5f901e2b27 Fixed insert mode removing first unselected character
(cherry picked from commit fe779d4386)
2016-04-06 18:46:32 +02:00
22ef9673dd Added insert mode to text editor
(cherry picked from commit 2b57cb94da)
2016-04-06 18:45:56 +02:00
5b1aa3a5cd Progress bar minsize now checks percent_visible
Allows for really thin progress bars such as for pixel-art styles.

(cherry picked from commit 0bba09c4cb)
2016-04-06 18:45:33 +02:00
f06f574735 Fix building against 2.0 API
812de22 used a method from the new plugin API in master,
so it failed building.
2016-04-02 23:11:38 +02:00
aac3b9db5c Add support for gnu-libstc++-4.9 needed by recent NDK versions
The 4.9 version is the default one, people can still build using 4.8
with older NDK versions by setting the (optional) NDK_TARGET
and NDK_TARGET_X86 environment variables.

(cherry picked from commit a0fb5b5f95)
2016-04-02 23:05:18 +02:00
9fdc1279cc Make hardcoded Mac version 2.0.x
To avoid having to bump it up every time.
2016-04-02 22:22:38 +02:00
01471e4c09 Function syntax highlighting
(cherry picked from commit 50aa78210c)
2016-04-02 22:19:54 +02:00
bac8248316 Remove trailing spaces
(cherry picked from commit 0a5472e697)
2016-04-02 22:19:40 +02:00
69e67d51c7 Port 2D demos to TSCN/TRES formats
Part of #4196.

(cherry picked from commit 23cf6a85bd)
2016-04-02 22:19:30 +02:00
c6ccd05fed Fix last two bindings in input_mapping demo
Also connect the signal from script, as it makes it easier to understand
than by having to check the connected signals via the GUI.

(cherry picked from commit 4eb49cc732)
2016-04-02 22:15:58 +02:00
937a96b26b Option to toggle line numbers
(cherry picked from commit 474911c533)
2016-04-02 22:15:38 +02:00
a52b1e866d inherit PKG_CONFIG_PATH from environment
(cherry picked from commit 32391ffd73)
2016-04-02 22:15:32 +02:00
fed11a662a doc/base/classes.xml: String.match, Node.find_node
Clarify wildcard behavior.

(cherry picked from commit ef08fed277)
2016-04-02 22:15:20 +02:00
26f2b7415c Fixed numbers not highlighting after space
(cherry picked from commit cd07badee3)
2016-04-02 22:15:11 +02:00
729dc5da83 Stopped save scene flicker, issue 4118
(cherry picked from commit 9d74b76a69)
2016-04-02 22:15:06 +02:00
54625bb771 Fix GDScript crash when call show/hide in func _exit_tree
(cherry picked from commit 0c6f089ce4)
2016-04-02 22:14:49 +02:00
523625a3d1 Syntax highlighting for numbers
(cherry picked from commit c844c2d604)
2016-04-02 22:14:27 +02:00
5caf6ad8b9 Expose android/shutdown_adb_on_exit parameter and default to true
It was added in 30d0ca9 for the Steam build but only enabled
when parsing a ._sc_ file that would define it.
It is now available for all users to toggle, in and outside of Steam.

Fixes #4073.

(cherry picked from commit c584940387)
2016-04-02 22:14:20 +02:00
7ddc17b18e BoxContainer: Bind method add_spacer(bool)
(cherry picked from commit 0571f961a8)
2016-04-02 22:13:58 +02:00
cf0a586a3e TextEdit: Fix Shift+Delete shortcut not calling cut()
(cherry picked from commit abb720438f)
2016-04-02 22:13:26 +02:00
41cc4ffe98 Fixes #3942 - Throws an error when exporting for X11 with no filename
(cherry picked from commit fb58bafc54)
2016-04-02 22:13:14 +02:00
0ea354c12a Fix issues with tilemap covering child nodes and old quadrants
Closes #4070

(cherry picked from commit 2a581835ca)
2016-04-02 22:12:53 +02:00
2bc4049b9b Fix for #4014, changed to 2 instead of 3 chars to trigger search
(cherry picked from commit 4e59d1c51f)
2016-04-02 22:12:41 +02:00
64a8fe6ad7 Option to toggle tab drawing
(cherry picked from commit 0fc7be89d3)
2016-04-02 22:12:29 +02:00
05c620b7ad Add -r flag to adb install for keep app user data
(cherry picked from commit 9e026fecef)
2016-04-02 22:12:12 +02:00
ca1ca6c7df Fix cursor getting locked on tree control if tree is cleared while modifying numerical element.
(cherry picked from commit 44fe74bfc3)
2016-04-02 22:12:02 +02:00
1369b38d85 Fixed highlighting when word occurs as substring first
(cherry picked from commit 9c0e1524e5)
2016-04-02 22:11:37 +02:00
68b7f9d87a Fixed highliting with shift and mouse
(cherry picked from commit 4cc3fbeaff)
2016-04-02 22:11:30 +02:00
8a78112e5b Highlight all occurrences of selected word
(cherry picked from commit b0488cacf2)
2016-04-02 22:10:41 +02:00
41326781d2 Fix editors panels, of the bottom panel, not resizing in some cases
(cherry picked from commit 4a0f835ece)
2016-04-02 22:10:31 +02:00
cacf7d136f LineEdit/TextEdit: Add Shift+Delete shortcut for cut
(cherry picked from commit fac027cb14)
2016-04-02 22:10:20 +02:00
a701c6ff68 TextEdit: Fix inconsistent copy, cut and paste behaviour
(cherry picked from commit 4dfd0c1863)
2016-04-02 22:10:15 +02:00
812de22194 Fix file dialog, of Particles2D plugin, showing "Error" icons
(cherry picked from commit 8d2a957e36)
2016-04-02 22:09:33 +02:00
8de0405032 Automatically create input node when creating a ShaderGraph
(cherry picked from commit 5ee67ba498)
2016-04-02 22:09:26 +02:00
e59c0610ca Fix crash when importing sub-scenes
(cherry picked from commit cb7db2d430)
2016-04-02 22:09:01 +02:00
8fd4c78caf Added configuable tab size
(cherry picked from commit 9234bd3ff9)
2016-04-02 22:08:41 +02:00
85820434de Correct spot light size conversion in Blender exporter.
The collada falloff angle is the angle from the center of the spot
light projection, whereas Blender's point light size is the angle from
one side to the opposite, meaning it's twice as much.

(cherry picked from commit 1f4a214987)
2016-04-02 22:08:23 +02:00
d0151daa69 Undo and redo commands on text editor now affect internal version which fixes inconsistent file saving validation.
(cherry picked from commit b2e471fd7c)
2016-04-02 22:07:40 +02:00
763b29ed18 Remove redundant buttons
Now the Load button is alone on its line,
we probably need to find it a better place.

(cherry picked from commit d36333b648)
2016-04-02 22:06:37 +02:00
1d096471dc Add stop and delete buttons to sample library
Based on the work by @rdcklinux in #3339.
The play button becomes a stop button while playing.
A delete button is added in the last column.

(cherry picked from commit 533b9b7342)
2016-04-02 22:06:30 +02:00
7c44cbee67 Fix link error when disable_3d=yes
(cherry picked from commit a638af886e)
2016-04-02 22:05:49 +02:00
d950a13c10 TileSet Export: Avoid invalid error when merge is enabled but file does not exist
(cherry picked from commit 897b33ce77)
2016-04-02 22:05:36 +02:00
6ce273b329 Fix crash when resizing ConcavePolygonShape2D segments
(cherry picked from commit 3fc16d4025)
2016-04-02 22:04:41 +02:00
0635a639e9 TimeScale node: return +inf remaining for 0 scale.
(cherry picked from commit 65b7791263)
2016-04-02 22:04:35 +02:00
424a104666 remove trailing whitespace
(cherry picked from commit 4a4f247914)
2016-04-02 22:03:48 +02:00
830947feaf AnimationTreePlayer: distinguish value tracks.
If the node had a 3D Transform, the transform would always get written,
even if the tracks on that node were supposed to be value tracks.

(cherry picked from commit 2fa200ff53)
2016-04-02 22:00:40 +02:00
ee20365f7c Variant::blend: add Quat, fix Vector3.
(cherry picked from commit f7fad32188)
2016-04-02 22:00:18 +02:00
0a24f562fb Update version in Info.plist
Getting info on Godot.app still shows version 1.0.0.  Would be nice to have this reflect the real version number via the build system.
(cherry picked from commit 3d9e26bfce)
2016-04-02 21:59:49 +02:00
60e4cfbcb7 TimeScale node: scale return value (time remaining).
(cherry picked from commit 2e1b1234a3)
2016-04-02 21:59:07 +02:00
656aa0a501 fix InputMap::action_erase_event()
fixes #3976

(cherry picked from commit 9544042adb)
2016-04-02 21:58:26 +02:00
7ad50eaea8 This will disable png arm neon optimizing for android template if compile on windows, but make compiling successful.
And arm neon opt is enabled if not on windows.

(cherry picked from commit db89a47e28)
2016-04-02 21:58:09 +02:00
83887ae16d migrate to container-based Travis CI
(cherry picked from commit 1f83ae9b5a)
2016-04-02 21:57:38 +02:00
827f4a895a osx: fix inverted horizontal scrolling
(cherry picked from commit 02eddbf7da)
2016-04-02 21:57:26 +02:00
da356eca0f Enabled scrolling past end of file
(cherry picked from commit f19eea2f2d)
2016-04-02 21:57:10 +02:00
53aa9cd51a Release 2.0.1 2016-03-06 19:05:45 +01:00
706d576f7b Add support for patch versions (2.0.x) 2016-03-06 19:05:27 +01:00
226e0a7f4f Fix Project Settings dialog add/delete global variable
(cherry picked from commit 48524384d6)
2016-03-06 18:07:42 +01:00
c44060bb82 doc: fix joystick left/right trigger axis description (index 6/7 instead of 4/5)
(cherry picked from commit 1b806ef54e)
2016-03-06 18:06:47 +01:00
4fee5f3915 Add more verbose build-in functions descriptions
Add descriptions for some global constants

(cherry picked from commit ff7c89ebaf)
2016-03-06 10:39:21 +01:00
e69c9021b5 The help page now show the entire object hierarchy
(cherry picked from commit fdd1209276)
2016-03-06 09:48:26 +01:00
edb3716da7 Fix Sprite doesn't updating region_rect value in certain conditions
(cherry picked from commit 1d188c1c7b)
2016-03-06 09:48:20 +01:00
1bdd5d24cb Removed "__editor_plugin_screen__" metadata creation
(cherry picked from commit b79e83ad6f)
2016-03-06 09:48:15 +01:00
a1a1c0b9f6 Added search box in Class List dialog (Script Editor)
(cherry picked from commit cc6a6ef08c)
2016-03-06 09:48:06 +01:00
450a7a9120 Write GDScript documentation
(cherry picked from commit cd1184d56c)
2016-03-05 15:12:24 +01:00
c850fa7331 Added relative paths for DirAccess::remove()
Follows similar behaviour to DirAccess::rename()

(cherry picked from commit d7052ddba3)
2016-03-05 13:35:48 +01:00
afd75013f9 html5: workaround for echo key events.
(cherry picked from commit 352db6b17e)
2016-03-05 13:35:36 +01:00
848c7378fd Add editor settings for call hint placement
Added settings: text_editor/put_callhint_tooltip_below_current_line
and text_editor/callhint_tooltip_offset

(cherry picked from commit 47206b409d)
2016-03-05 12:58:01 +01:00
4b2fcabb74 Hide hint if completion is active
(cherry picked from commit 26cc14e839)
2016-03-05 12:57:56 +01:00
cb7693c533 Move the call hint under the current line
(cherry picked from commit 03025f60b6)
2016-03-05 12:57:52 +01:00
7fea990b1b set_time_scale docs
This is correct?

(cherry picked from commit 6b7ec5de69)
2016-03-05 12:56:27 +01:00
95e46e6eac fix gradle build on windows
(cherry picked from commit d6cc887627)
2016-03-05 12:56:19 +01:00
bea8e1654e AnimationTreePlayer (Blend3): process all inputs.
Always call _process_node on all three inputs so that looped animations
don't get out of sync.

(cherry picked from commit b79351aa45)
2016-03-05 12:55:54 +01:00
cafcdb015d AnimationTreePlayer: blend value tracks (closes #2299)
Variant:
- zero() sets a Variant to the appropriate type of zero value
- blend() blends part of one Variant on top of another.

(cherry picked from commit 391ce81c5e)
2016-03-05 12:55:43 +01:00
459b914d9c Quick fixes to tween documentation formatting
Maybe the reST parser should be improved instead though ;)

(cherry picked from commit a12c63ef9e)
2016-03-01 08:38:23 +01:00
9ed3d21d5a Sync classes 2016-03-01 08:25:04 +01:00
82d06b0027 use joystick name from mapping-db if available 2016-03-01 08:16:27 +01:00
e0a66b6e56 deleted files added accidentally
(cherry picked from commit 96b60c281f)
2016-02-29 09:03:31 +01:00
186b82c350 Document Tween class
(cherry picked from commit 49e1cc6fa9)
2016-02-29 09:03:06 +01:00
1af2e1101d Remove grey capsule on official logo
It had been added by a contributor without prior discussion
with the rest of the team, but the grey capsule did not look
so good. Closes #3848.

Also renamed godot_{icon,logo} to just {icon,logo}.

(cherry picked from commit eb5f9ed89b)
2016-02-29 09:01:02 +01:00
a55f41e3d9 screen_shaders: convert demo images to JPG
(cherry picked from commit a97c1ca8f9)
2016-02-29 09:00:55 +01:00
439e29ea95 normalmap demo: convert images to JPG
To make the demos lighter

(cherry picked from commit 2fd177b2a5)
2016-02-29 09:00:48 +01:00
f5e8e89f50 Remove Noto Sans font from translation demo (heavy!)
(cherry picked from commit 0f087755cc)
2016-02-29 09:00:43 +01:00
f619b05751 added [presets] to ._sc_ and "android/shutdown_adb_on_exit" to editor_settings
(cherry picked from commit 30d0ca9766)
2016-02-29 09:00:35 +01:00
aa94ff6dae fix transform localization event in mouse motion
(cherry picked from commit 08e0e64a19)
2016-02-29 09:00:14 +01:00
ee5c250b63 OUYA gamepad mappings fix
Fix gamepad mappings for OUYA revision 4
2016-02-27 15:28:34 +01:00
e4d367e7a1 theora on server build 2016-02-27 15:28:22 +01:00
45a0bbe56e adds -pm and -project_manager command line options to start project manager
fixes bug where the user has an engine.cfg on the executable directory so it runs the game instead of opening the project manager
2016-02-27 15:27:33 +01:00
d86b12a397 Fixed closing a scene tab when it was not the CURRENT tab. Fixes #3810 2016-02-27 15:27:25 +01:00
f0ba9c7e78 x11: fix joysticks not recognizing some buttons
dpad on x360 pads with kernel < 4.3 is working now
2016-02-27 15:27:15 +01:00
61f17fb1bb applied some typo fixes. see godotengine/godot-docs#18 2016-02-27 15:27:10 +01:00
a43af20f31 added more Android gamepad mappings 2016-02-27 15:26:59 +01:00
7ba92ae9eb Fix typo in error 2016-02-27 15:26:27 +01:00
b05c27a27f Fix allocation bug if compiled with modern clang or gcc
* Add overflow checked intrinsic abstractions that check on overflow.
* Use them for memory allocation code.
* Use size_t type for memory allocation code to support full platform dependent width.

Fixes #3756.
2016-02-27 15:26:18 +01:00
e30cbc3b36 added a couple more Linux mappings, tweaked Ouya Linux mapping 2016-02-27 15:25:51 +01:00
687 changed files with 20072 additions and 16866 deletions

View File

@ -1,7 +1,6 @@
language: cpp
sudo: required
dist: trusty
sudo: false
compiler:
- gcc
@ -41,10 +40,33 @@ matrix:
- compiler: clang
env: GODOT_TARGET=x11
addons:
apt:
packages:
- build-essential
- scons
- pkg-config
- libx11-dev
- libxcursor-dev
- libasound2-dev
- libfreetype6-dev
- libgl1-mesa-dev
- libglu1-mesa-dev
- libssl-dev
- libxinerama-dev
- libudev-dev
# For cross-compiling to Windows.
- binutils-mingw-w64-i686
- binutils-mingw-w64-x86-64
- gcc-mingw-w64-i686
- gcc-mingw-w64-x86-64
- g++-mingw-w64-i686
- g++-mingw-w64-x86-64
- mingw-w64
before_script:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -qq; sudo apt-get install -y scons pkg-config libx11-dev libxcursor-dev build-essential libasound2-dev libfreetype6-dev libgl1-mesa-dev libglu-dev libssl-dev libxinerama-dev libudev-dev; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$GODOT_TARGET" = "windows" ]; then sudo apt-get update -qq; sudo apt-get install -y mingw32 mingw-w64; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update; brew install scons; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$GODOT_TARGET" = "android" ]; then brew update; brew install android-sdk android-ndk; export ANDROID_HOME=/usr/local/opt/android-sdk; export ANDROID_NDK_ROOT=/usr/local/opt/android-ndk; fi

View File

@ -63,7 +63,12 @@ elif (os.name=="nt"):
if (os.getenv("VSINSTALLDIR")==None or platform_arg=="android"):
custom_tools=['mingw']
env_base=Environment(tools=custom_tools,ENV = {'PATH' : os.environ['PATH']});
env_base=Environment(
tools=custom_tools,
ENV={
'PATH' : os.getenv('PATH'),
'PKG_CONFIG_PATH' : os.getenv('PKG_CONFIG_PATH')
});
#env_base=Environment(tools=custom_tools);
env_base.global_defaults=global_defaults

View File

@ -156,10 +156,7 @@ void InputMap::action_erase_event(const StringName& p_action,const InputEvent& p
List<InputEvent>::Element *E=_find_event(input_map[p_action].inputs,p_event);
if (E)
return; //already gots
input_map[p_action].inputs.erase(E);
}

View File

@ -41,7 +41,11 @@
#define _MKSTR(m_x) _STR(m_x)
#endif
// have to include version.h for this to work, include it in the .cpp not the .h
#ifdef VERSION_PATCH
#define VERSION_MKSTRING _MKSTR(VERSION_MAJOR)"." _MKSTR(VERSION_MINOR)"." _MKSTR(VERSION_PATCH)"." _MKSTR(VERSION_STATUS)"." _MKSTR(VERSION_REVISION)
#else
#define VERSION_MKSTRING _MKSTR(VERSION_MAJOR)"." _MKSTR(VERSION_MINOR)"." _MKSTR(VERSION_STATUS)"." _MKSTR(VERSION_REVISION)
#endif // VERSION_PATCH
#define VERSION_FULL_NAME _MKSTR(VERSION_NAME)" v" VERSION_MKSTRING
@ -154,6 +158,23 @@ inline void __swap_tmpl(T &x, T &y ) {
((m_hex>='A' && m_hex<='F')?(10+m_hex-'A'):\
((m_hex>='a' && m_hex<='f')?(10+m_hex-'a'):0)))
// Macro to check whether we are compiled by clang
// and we have a specific builtin
#if defined(__llvm__) && defined(__has_builtin)
#define _llvm_has_builtin(x) __has_builtin(x)
#else
#define _llvm_has_builtin(x) 0
#endif
#if (defined(__GNUC__) && (__GNUC__ >= 5)) || _llvm_has_builtin(__builtin_mul_overflow)
# define _mul_overflow __builtin_mul_overflow
#endif
#if (defined(__GNUC__) && (__GNUC__ >= 5)) || _llvm_has_builtin(__builtin_add_overflow)
# define _add_overflow __builtin_add_overflow
#endif
@ -167,6 +188,19 @@ static _FORCE_INLINE_ unsigned int nearest_power_of_2(unsigned int x) {
x |= x >> 4;
x |= x >> 8;
x |= x >> 16;
return ++x;
}
template<class T>
static _FORCE_INLINE_ T nearest_power_of_2_templated(T x) {
--x;
// If the compiler is smart, it unrolls this loop
// If its dumb, this is a bit slow.
for (size_t i = 0; i < sizeof(T); i++)
x |= x >> (1 << i);
return ++x;
}

View File

@ -1115,6 +1115,21 @@ void Variant::reference(const Variant& p_variant) {
}
}
void Variant::zero() {
switch(type) {
case NIL: break;
case BOOL: this->_data._bool = false; break;
case INT: this->_data._int = 0; break;
case REAL: this->_data._real = 0; break;
case VECTOR2: *reinterpret_cast<Vector2*>(this->_data._mem) = Vector2(); break;
case RECT2: *reinterpret_cast<Rect2*>(this->_data._mem) = Rect2(); break;
case VECTOR3: *reinterpret_cast<Vector3*>(this->_data._mem) = Vector3(); break;
case PLANE: *reinterpret_cast<Plane*>(this->_data._mem) = Plane(); break;
case QUAT: *reinterpret_cast<Quat*>(this->_data._mem) = Quat(); break;
case COLOR: *reinterpret_cast<Color*>(this->_data._mem) = Color(); break;
default: this->clear(); break;
}
}
void Variant::clear() {

View File

@ -372,6 +372,8 @@ public:
return res;
}
void zero();
static void blend(const Variant& a, const Variant& b, float c,Variant &r_dst);
static void interpolate(const Variant& a, const Variant& b, float c,Variant &r_dst);
struct CallError {

View File

@ -3431,6 +3431,65 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
}
void Variant::blend(const Variant& a, const Variant& b, float c, Variant &r_dst) {
if (a.type!=b.type) {
if(a.is_num() && b.is_num()) {
real_t va=a;
real_t vb=b;
r_dst=va + vb * c;
} else {
r_dst=a;
}
return;
}
switch(a.type) {
case NIL: { r_dst=Variant(); } return;
case INT:{
int va=a._data._int;
int vb=b._data._int;
r_dst=int(va + vb * c + 0.5);
} return;
case REAL:{
double ra=a._data._real;
double rb=b._data._real;
r_dst=ra + rb * c;
} return;
case VECTOR2:{ r_dst=*reinterpret_cast<const Vector2*>(a._data._mem)+*reinterpret_cast<const Vector2*>(b._data._mem)*c; } return;
case RECT2:{
const Rect2 *ra = reinterpret_cast<const Rect2*>(a._data._mem);
const Rect2 *rb = reinterpret_cast<const Rect2*>(b._data._mem);
r_dst=Rect2(ra->pos + rb->pos * c, ra->size + rb->size * c);
} return;
case VECTOR3:{ r_dst=*reinterpret_cast<const Vector3*>(a._data._mem)+*reinterpret_cast<const Vector3*>(b._data._mem)*c; } return;
case _AABB:{
const AABB *ra = reinterpret_cast<const AABB*>(a._data._mem);
const AABB *rb = reinterpret_cast<const AABB*>(b._data._mem);
r_dst=AABB(ra->pos + rb->pos * c, ra->size + rb->size * c);
} return;
case QUAT:{
Quat empty_rot;
const Quat *qa = reinterpret_cast<const Quat*>(a._data._mem);
const Quat *qb = reinterpret_cast<const Quat*>(b._data._mem);
r_dst=*qa * empty_rot.slerp(*qb,c);
} return;
case COLOR:{
const Color *ca = reinterpret_cast<const Color*>(a._data._mem);
const Color *cb = reinterpret_cast<const Color*>(b._data._mem);
float r = ca->r + cb->r * c;
float g = ca->g + cb->g * c;
float b = ca->b + cb->b * c;
float a = ca->a + cb->a * c;
r = r > 1.0 ? 1.0 : r;
g = g > 1.0 ? 1.0 : g;
b = b > 1.0 ? 1.0 : b;
a = a > 1.0 ? 1.0 : a;
r_dst=Color(r, g, b, a);
} return;
default:{ r_dst = c<0.5 ? a : b; } return;
}
}
void Variant::interpolate(const Variant& a, const Variant& b, float c,Variant &r_dst) {
if (a.type!=b.type) {

View File

@ -69,9 +69,24 @@ class Vector {
}
_FORCE_INLINE_ int _get_alloc_size(int p_elements) const {
_FORCE_INLINE_ size_t _get_alloc_size(size_t p_elements) const {
return nearest_power_of_2_templated(p_elements*sizeof(T)+sizeof(SafeRefCount)+sizeof(int));
}
return nearest_power_of_2(p_elements*sizeof(T)+sizeof(SafeRefCount)+sizeof(int));
_FORCE_INLINE_ bool _get_alloc_size_checked(size_t p_elements, size_t *out) const {
#if defined(_add_overflow) && defined(_mul_overflow)
size_t o;
size_t p;
if (_mul_overflow(p_elements, sizeof(T), &o)) return false;
if (_add_overflow(o, sizeof(SafeRefCount)+sizeof(int), &p)) return false;
*out = nearest_power_of_2_templated(p);
return true;
#else
// Speed is more important than correctness here, do the operations unchecked
// and hope the best
*out = _get_alloc_size(p_elements);
return true;
#endif
}
void _unref(void *p_data);
@ -257,19 +272,21 @@ Error Vector<T>::resize(int p_size) {
// possibly changing size, copy on write
_copy_on_write();
size_t alloc_size;
ERR_FAIL_COND_V(!_get_alloc_size_checked(p_size, &alloc_size), ERR_OUT_OF_MEMORY);
if (p_size>size()) {
if (size()==0) {
// alloc from scratch
void* ptr=memalloc(_get_alloc_size(p_size));
void* ptr=memalloc(alloc_size);
ERR_FAIL_COND_V( !ptr ,ERR_OUT_OF_MEMORY);
_ptr=(T*)((uint8_t*)ptr+sizeof(int)+sizeof(SafeRefCount));
_get_refcount()->init(); // init refcount
*_get_size()=0; // init size (currently, none)
} else {
void *_ptrnew = (T*)memrealloc((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount),_get_alloc_size(p_size));
void *_ptrnew = (T*)memrealloc((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount), alloc_size);
ERR_FAIL_COND_V( !_ptrnew ,ERR_OUT_OF_MEMORY);
_ptr=(T*)((uint8_t*)_ptrnew+sizeof(int)+sizeof(SafeRefCount));
}
@ -293,7 +310,7 @@ Error Vector<T>::resize(int p_size) {
t->~T();
}
void *_ptrnew = (T*)memrealloc((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount),_get_alloc_size(p_size));
void *_ptrnew = (T*)memrealloc((uint8_t*)_ptr-sizeof(int)-sizeof(SafeRefCount), alloc_size);
ERR_FAIL_COND_V( !_ptrnew ,ERR_OUT_OF_MEMORY);
_ptr=(T*)((uint8_t*)_ptrnew+sizeof(int)+sizeof(SafeRefCount));

View File

@ -1,5 +1,5 @@
[application]
name="Area 2D Input Events"
main_scene="res://input.scn"
main_scene="res://input.tscn"
icon="res://icon.png"

Binary file not shown.

View File

@ -0,0 +1,109 @@
[gd_scene load_steps=6 format=1]
[ext_resource path="res://input.gd" type="Script" id=1]
[ext_resource path="res://box_area.png" type="Texture" id=2]
[ext_resource path="res://circle_area.png" type="Texture" id=3]
[sub_resource type="RectangleShape2D" id=1]
custom_solver_bias = 0.0
extents = Vector2( 64, 64 )
[sub_resource type="CircleShape2D" id=2]
custom_solver_bias = 0.0
radius = 64.0
[node name="base" type="Node2D"]
[node name="box" type="Area2D" parent="."]
transform/pos = Vector2( 212, 281 )
transform/rot = 35.4081
input/pickable = true
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
gravity_vec = Vector2( 0, 1 )
gravity = 98.0
linear_damp = 0.1
angular_damp = 1.0
script/script = ExtResource( 1 )
[node name="sprite" type="Sprite" parent="box"]
texture = ExtResource( 2 )
[node name="label" type="Label" parent="box"]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = -43.0
margin/top = 71.0
margin/right = 43.0
margin/bottom = 84.0
align = 1
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="shape" type="CollisionShape2D" parent="box"]
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="circle" type="Area2D" parent="."]
transform/pos = Vector2( 547.877, 286.808 )
transform/rot = -40.5985
input/pickable = true
shapes/0/shape = SubResource( 2 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
gravity_vec = Vector2( 0, 1 )
gravity = 98.0
linear_damp = 0.1
angular_damp = 1.0
script/script = ExtResource( 1 )
[node name="sprite" type="Sprite" parent="circle"]
texture = ExtResource( 3 )
[node name="label" type="Label" parent="circle"]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = -43.0
margin/top = 71.0
margin/right = 43.0
margin/bottom = 84.0
align = 1
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="shape" type="CollisionShape2D" parent="circle"]
shape = SubResource( 2 )
trigger = false
_update_shape_index = -1
[node name="Label" type="Label" parent="."]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 0.0
margin/top = 0.0
margin/right = 40.0
margin/bottom = 13.0
text = "This demo shows how to use a regular Area2D to get input events, and how to convert the input events to local coordinates of the node.\nUnlike controls, Input on Area2D or PhysicsBody2D nodes only works properly (with scrolling) on canvas layer 0."
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1

View File

@ -0,0 +1,47 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://ball.gd" type="Script" id=1]
[ext_resource path="res://ball.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 7.45713
[node name="bal" type="RigidBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
mode = 0
mass = 1.0
friction = 1.0
bounce = 0.0
gravity_scale = 1.0
custom_integrator = false
continuous_cd = 0
contacts_reported = 0
contact_monitor = false
sleeping = false
can_sleep = true
velocity/linear = Vector2( 0, 0 )
velocity/angular = 0.0
damp_override/linear = -1.0
damp_override/angular = -1.0
script/script = ExtResource( 1 )
[node name="sprite" type="Sprite" parent="."]
transform/pos = Vector2( 0, 1 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
trigger = false
_update_shape_index = 0

View File

@ -10,7 +10,7 @@ func _process(delta):
timeout -= delta
if (timeout < 0):
timeout = EMIT_INTERVAL
var ball = preload("res://ball.scn").instance()
var ball = preload("res://ball.tscn").instance()
ball.set_pos(Vector2(randf()*get_viewport_rect().size.x, 0))
add_child(ball)

View File

@ -0,0 +1,178 @@
[gd_scene load_steps=13 format=1]
[ext_resource path="res://dynamic_colobjs.gd" type="Script" id=1]
[ext_resource path="res://circle.png" type="Texture" id=2]
[ext_resource path="res://box.png" type="Texture" id=3]
[ext_resource path="res://poly.png" type="Texture" id=4]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 28.8504
[sub_resource type="RectangleShape2D" id=2]
custom_solver_bias = 0.0
extents = Vector2( 32.1805, 30.0328 )
[sub_resource type="ConvexPolygonShape2D" id=3]
custom_solver_bias = 0.0
points = Vector2Array( 49.5669, -27.9744, 45.1564, 15.3961, 18.6931, -1.51105 )
[sub_resource type="ConvexPolygonShape2D" id=4]
custom_solver_bias = 0.0
points = Vector2Array( -55.093, -14.2052, -37.1739, 2.89948, -40.1345, 21.2602, -53.3067, 15.8716 )
[sub_resource type="ConvexPolygonShape2D" id=5]
custom_solver_bias = 0.0
points = Vector2Array( -40.1345, 21.2602, -37.1739, 2.89948, -14.386, -14.0076, -6.30005, 0.694214 )
[sub_resource type="ConvexPolygonShape2D" id=6]
custom_solver_bias = 0.0
points = Vector2Array( -14.386, -14.0076, 18.6931, -1.51105, 45.1564, 15.3961, -6.30005, 0.694214 )
[sub_resource type="Animation" id=7]
resource/name = "movethem"
length = 4.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("base/circle:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 2 ), "transitions":FloatArray( 1, 1 ), "values":[ Vector2( 0, 0 ), Vector2( 52.7569, -70.845 ) ] }
tracks/1/type = "value"
tracks/1/path = NodePath("base/box:transform/pos")
tracks/1/interp = 1
tracks/1/keys = { "cont":true, "times":FloatArray( 0, 2 ), "transitions":FloatArray( 1, 1 ), "values":[ Vector2( 193.173, -2.72076 ), Vector2( 195.894, -72.0999 ) ] }
tracks/2/type = "value"
tracks/2/path = NodePath("base/box:transform/rot")
tracks/2/interp = 1
tracks/2/keys = { "cont":true, "times":FloatArray( 0, 2 ), "transitions":FloatArray( 1, 1 ), "values":[ 0.0, 92.8111 ] }
tracks/3/type = "value"
tracks/3/path = NodePath("base/polygon:transform/pos")
tracks/3/interp = 1
tracks/3/keys = { "cont":true, "times":FloatArray( 0, 2 ), "transitions":FloatArray( 1, 1 ), "values":[ Vector2( 382.265, -2.72076 ), Vector2( 495.176, -10.883 ) ] }
[sub_resource type="Animation" id=8]
resource/name = "toggletrigger"
length = 6.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("base/box:trigger")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 4 ), "transitions":FloatArray( 1, 1 ), "values":[ false, true ] }
tracks/1/type = "value"
tracks/1/path = NodePath("base/box:visibility/opacity")
tracks/1/interp = 1
tracks/1/keys = { "cont":false, "times":FloatArray( 0, 4 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.2 ] }
[node name="base" type="Node2D"]
script/script = ExtResource( 1 )
[node name="base" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 137, 470 )
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 7.91353, -10.6267 )
shapes/0/trigger = false
shapes/1/shape = SubResource( 2 )
shapes/1/transform = Matrix32( 0.970626, -0.240595, 0.240595, 0.970626, 193.581, -13.1276 )
shapes/1/trigger = false
shapes/2/shape = SubResource( 3 )
shapes/2/transform = Matrix32( 1, 0, 0, 1, 399.202, -3.9451 )
shapes/2/trigger = false
shapes/3/shape = SubResource( 4 )
shapes/3/transform = Matrix32( 1, 0, 0, 1, 399.202, -3.9451 )
shapes/3/trigger = false
shapes/4/shape = SubResource( 5 )
shapes/4/transform = Matrix32( 1, 0, 0, 1, 399.202, -3.9451 )
shapes/4/trigger = false
shapes/5/shape = SubResource( 6 )
shapes/5/transform = Matrix32( 1, 0, 0, 1, 399.202, -3.9451 )
shapes/5/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.08
[node name="circle" type="CollisionShape2D" parent="base"]
transform/pos = Vector2( 7.91353, -10.6267 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = 0
[node name="sprite" type="Sprite" parent="base/circle"]
texture = ExtResource( 2 )
[node name="box" type="CollisionShape2D" parent="base"]
transform/pos = Vector2( 193.581, -13.1276 )
transform/rot = 13.9217
shape = SubResource( 2 )
trigger = false
_update_shape_index = 1
[node name="Sprite" type="Sprite" parent="base/box"]
texture = ExtResource( 3 )
[node name="polygon" type="CollisionPolygon2D" parent="base"]
transform/pos = Vector2( 399.202, -3.9451 )
build_mode = 0
polygon = Vector2Array( -55.093, -14.2052, -37.1739, 2.89948, -14.386, -14.0076, 18.6931, -1.51105, 49.5669, -27.9744, 45.1564, 15.3961, -6.30005, 0.694214, -40.1345, 21.2602, -53.3067, 15.8716 )
shape_range = Vector2( 2, 5 )
trigger = false
[node name="Sprite" type="Sprite" parent="base/polygon"]
texture = ExtResource( 4 )
[node name="shapemove" type="AnimationPlayer" parent="."]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/movethem = SubResource( 7 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "movethem"
[node name="triggertoggle" type="AnimationPlayer" parent="."]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/movethem = SubResource( 7 )
anims/toggletrigger = SubResource( 8 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "toggletrigger"
[node name="Label" type="Label" parent="."]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 21.0
margin/top = 21.0
margin/right = 719.0
margin/bottom = 73.0
text = "This demo simply shows that it\'s possible now to move a CollisionShape and CollisionPolygon after it was created\nand also turn it into a trigger at run-time. CollisionShape will remain alive during the running game and you can\ninteract with them, even though they are just meant to be helpers.\nIt is always recommended in a real use-case scenario, to move a body instead of a shape, as that path is better optimized."
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1

View File

@ -1,5 +1,5 @@
[application]
name="Run-Time CollisionShape"
main_scene="res://dynamic_colobjs.scn"
main_scene="res://dynamic_colobjs.tscn"
icon="res://icon.png"

View File

@ -1,7 +1,7 @@
[application]
name="Fog of War"
main_scene="res://fog.scn"
main_scene="res://fog.tscn"
icon="res://icon.png"
[input]

Binary file not shown.

View File

@ -0,0 +1,51 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://tileset.tres" type="TileSet" id=1]
[ext_resource path="res://troll.tscn" type="PackedScene" id=2]
[ext_resource path="res://fog.gd" type="Script" id=3]
[node name="Node2D" type="Node2D"]
[node name="TileMap" type="TileMap" parent="."]
transform/pos = Vector2( 206, 112 )
mode = 0
tile_set = ExtResource( 1 )
cell/size = Vector2( 48, 48 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 0
cell/y_sort = false
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( -589834, 2, -589833, 2, -589832, 2, -589831, 2, -589830, 2, -589829, 2, -589828, 2, -589827, 2, -589826, 2, -589825, 2, -655360, 2, -655359, 2, -655358, 2, -655357, 2, -655356, 2, -655355, 2, -655354, 2, -655353, 2, -655352, 2, -655351, 2, -524298, 2, -524297, 2, -524296, 2, -524295, 2, -524294, 2, -524293, 2, -524292, 2, -524291, 2, -524290, 2, -524289, 2, -589824, 2, -589823, 2, -589822, 2, -589821, 2, -589820, 2, -589819, 2, -589818, 2, -589817, 2, -589816, 2, -589815, 2, -458762, 2, -458761, 2, -458760, 2, -458759, 2, -458758, 2, -458757, 2, -458756, 2, -458755, 2, -458754, 2, -458753, 2, -524288, 2, -524287, 2, -524286, 2, -524285, 2, -524284, 2, -524283, 2, -524282, 2, -524281, 2, -524280, 2, -524279, 2, -393226, 2, -393225, 2, -393224, 2, -393223, 2, -393222, 2, -393221, 2, -393220, 2, -393219, 2, -393218, 2, -393217, 2, -458752, 2, -458751, 2, -458750, 2, -458749, 2, -458748, 2, -458747, 2, -458746, 2, -458745, 2, -458744, 2, -458743, 2, -327690, 2, -327689, 2, -327688, 2, -327687, 2, -327686, 2, -327685, 2, -327684, 2, -327683, 2, -327682, 2, -327681, 2, -393216, 2, -393215, 2, -393214, 2, -393213, 2, -393212, 2, -393211, 2, -393210, 2, -393209, 2, -393208, 2, -393207, 2, -262154, 2, -262153, 2, -262152, 2, -262151, 2, -262150, 2, -262149, 2, -262148, 2, -262147, 2, -262146, 2, -262145, 2, -327680, 2, -327679, 2, -327678, 2, -327677, 2, -327676, 2, -327675, 2, -327674, 2, -327673, 2, -327672, 2, -327671, 2, -196618, 2, -196617, 2, -196616, 2, -196615, 2, -196614, 2, -196613, 2, -196612, 2, -196611, 2, -196610, 2, -196609, 2, -262144, 2, -262143, 2, -262142, 2, -262141, 2, -262140, 2, -262139, 2, -262138, 2, -262137, 2, -262136, 2, -262135, 2, -131082, 2, -131081, 2, -131080, 2, -131079, 2, -131078, 2, -131077, 2, -131076, 2, -131075, 2, -131074, 2, -131073, 2, -196608, 2, -196607, 2, -196606, 2, -196605, 2, -196604, 2, -196603, 2, -196602, 2, -196601, 2, -196600, 2, -196599, 2, -65546, 2, -65545, 2, -65544, 2, -65543, 2, -65542, 2, -65541, 2, -65540, 2, -65539, 2, -65538, 2, -65537, 2, -131072, 2, -131071, 2, -131070, 2, -131069, 2, -131068, 2, -131067, 2, -131066, 2, -131065, 2, -131064, 2, -131063, 2, -10, 2, -9, 2, -8, 2, -7, 2, -6, 2, -5, 2, -4, 2, -3, 2, -2, 2, -1, 2, -65536, 2, -65535, 2, -65534, 2, -65533, 2, -65532, 2, -65531, 2, -65530, 2, -65529, 2, -65528, 2, -65527, 2, 65526, 2, 65527, 2, 65528, 2, 65529, 2, 65530, 2, 65531, 2, 65532, 2, 65533, 2, 65534, 2, 65535, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 131062, 2, 131063, 2, 131064, 2, 131065, 2, 131066, 2, 131067, 2, 131068, 2, 131069, 2, 131070, 2, 131071, 2, 65536, 2, 65537, 2, 65538, 2, 65539, 2, 65540, 2, 65541, 2, 65542, 2, 65543, 2, 65544, 2, 65545, 2, 196598, 2, 196599, 2, 196600, 2, 196601, 2, 196602, 2, 196603, 2, 196604, 2, 196605, 2, 196606, 2, 196607, 2, 131072, 2, 131073, 2, 131074, 2, 131075, 2, 131076, 2, 131077, 2, 131078, 2, 131079, 2, 131080, 2, 131081, 2, 262134, 2, 262135, 2, 262136, 2, 262137, 2, 262138, 2, 262139, 2, 262140, 2, 262141, 2, 262142, 2, 262143, 2, 196608, 2, 196609, 2, 196610, 2, 196611, 2, 196612, 2, 196613, 2, 196614, 2, 196615, 2, 196616, 2, 196617, 2, 327670, 2, 327671, 2, 327672, 2, 327673, 2, 327674, 2, 327675, 2, 327676, 2, 327677, 2, 327678, 2, 327679, 2, 262144, 2, 262145, 2, 262146, 2, 262147, 2, 262148, 2, 262149, 2, 262150, 2, 262151, 2, 262152, 2, 262153, 2, 393206, 2, 393207, 2, 393208, 2, 393209, 2, 393210, 2, 393211, 2, 393212, 2, 393213, 2, 393214, 2, 393215, 2, 327680, 2, 327681, 2, 327682, 2, 327683, 2, 327684, 2, 327685, 2, 327686, 2, 327687, 2, 327688, 2, 327689, 2, 458742, 2, 458743, 2, 458744, 2, 458745, 2, 458746, 2, 458747, 2, 458748, 2, 458749, 2, 458750, 2, 458751, 2, 393216, 2, 393217, 2, 393218, 2, 393219, 2, 393220, 2, 393221, 2, 393222, 2, 393223, 2, 393224, 2, 393225, 2, 524278, 2, 524279, 2, 524280, 2, 524281, 2, 524282, 2, 524283, 2, 524284, 2, 524285, 2, 524286, 2, 524287, 2, 458752, 2, 458753, 2, 458754, 2, 458755, 2, 458756, 2, 458757, 2, 458758, 2, 458759, 2, 458760, 2, 458761, 2, 589814, 2, 589815, 2, 589816, 2, 589817, 2, 589818, 2, 589819, 2, 589820, 2, 589821, 2, 589822, 2, 589823, 2, 524288, 2, 524289, 2, 524290, 2, 524291, 2, 524292, 2, 524293, 2, 524294, 2, 524295, 2, 524296, 2, 524297, 2, 655350, 2, 655351, 2, 655352, 2, 655353, 2, 655354, 2, 655355, 2, 655356, 2, 655357, 2, 655358, 2, 655359, 2, 589824, 2, 589825, 2, 589826, 2, 589827, 2, 589828, 2, 589829, 2, 589830, 2, 589831, 2, 589832, 2, 589833, 2 )
[node name="troll" parent="." instance=ExtResource( 2 )]
collision/margin = 0.001
[node name="Fog" type="TileMap" parent="."]
mode = 0
tile_set = ExtResource( 1 )
cell/size = Vector2( 48, 48 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 0
cell/y_sort = false
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( )
script/script = ExtResource( 3 )

View File

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<resource_file type="TileSet" subresource_count="3" version="1.0" version_name="Godot Engine v1.0.stable.custom_build">
<ext_resource path="res://floor.png" type="Texture"></ext_resource>
<ext_resource path="res://fog.png" type="Texture"></ext_resource>
<main_resource>
<string name="0/name"> "fog opaque" </string>
<resource name="0/texture" resource_type="Texture" path="res://fog.png"> </resource>
<vector2 name="0/tex_offset"> -48, -48 </vector2>
<vector2 name="0/shape_offset"> 0, 0 </vector2>
<rect2 name="0/region"> 0, 0, 144, 144 </rect2>
<array name="0/shapes" len="0" shared="false">
</array>
<string name="1/name"> "fog transparent" </string>
<resource name="1/texture" resource_type="Texture" path="res://fog.png"> </resource>
<vector2 name="1/tex_offset"> -48, -48 </vector2>
<vector2 name="1/shape_offset"> 0, 0 </vector2>
<rect2 name="1/region"> 144, 0, 144, 144 </rect2>
<array name="1/shapes" len="0" shared="false">
</array>
<string name="2/name"> "floor" </string>
<resource name="2/texture" resource_type="Texture" path="res://floor.png"> </resource>
<vector2 name="2/tex_offset"> 0, 0 </vector2>
<vector2 name="2/shape_offset"> 0, 0 </vector2>
<rect2 name="2/region"> 0, 0, 0, 0 </rect2>
<array name="2/shapes" len="0" shared="false">
</array>
</main_resource>
</resource_file>

Binary file not shown.

View File

@ -0,0 +1,32 @@
[gd_resource type="TileSet" load_steps=3 format=1]
[ext_resource path="res://fog.png" type="Texture" id=1]
[ext_resource path="res://floor.png" type="Texture" id=2]
[resource]
0/name = "fog opaque"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( -48, -48 )
0/region = Rect2( 0, 0, 144, 144 )
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 0, 0 )
0/shapes = [ ]
1/name = "fog transparent"
1/texture = ExtResource( 1 )
1/tex_offset = Vector2( -48, -48 )
1/region = Rect2( 144, 0, 144, 144 )
1/occluder_offset = Vector2( 0, 0 )
1/navigation_offset = Vector2( 0, 0 )
1/shape_offset = Vector2( 0, 0 )
1/shapes = [ ]
2/name = "floor"
2/texture = ExtResource( 2 )
2/tex_offset = Vector2( 0, 0 )
2/region = Rect2( 0, 0, 0, 0 )
2/occluder_offset = Vector2( 24, 24 )
2/navigation_offset = Vector2( 24, 24 )
2/shape_offset = Vector2( 0, 0 )
2/shapes = [ ]

View File

@ -0,0 +1,30 @@
[gd_scene load_steps=3 format=1]
[ext_resource path="res://fog.png" type="Texture" id=1]
[ext_resource path="res://floor.png" type="Texture" id=2]
[node name="Node2D" type="Node2D"]
[node name="fog opaque" type="Sprite" parent="."]
texture = ExtResource( 1 )
centered = false
offset = Vector2( -48, -48 )
region = true
region_rect = Rect2( 0, 0, 144, 144 )
[node name="fog transparent" type="Sprite" parent="."]
transform/pos = Vector2( 144, 0 )
texture = ExtResource( 1 )
centered = false
offset = Vector2( -48, -48 )
region = true
region_rect = Rect2( 144, 0, 144, 144 )
[node name="floor" type="Sprite" parent="."]
transform/pos = Vector2( 264, 24 )
texture = ExtResource( 2 )

Binary file not shown.

View File

@ -0,0 +1,52 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://troll.gd" type="Script" id=1]
[ext_resource path="res://troll.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 16.0
[node name="troll" type="KinematicBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 3.24216, 19.453 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.001
script/script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
transform/pos = Vector2( 3.24216, 19.453 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="Camera2D" type="Camera2D" parent="."]
anchor_mode = 1
rotating = false
current = true
zoom = Vector2( 1, 1 )
limit/left = -10000000
limit/top = -10000000
limit/right = 10000000
limit/bottom = 10000000
drag_margin/h_enabled = true
drag_margin/v_enabled = true
smoothing/enable = false
smoothing/speed = 5.0
drag_margin/left = 0.2
drag_margin/top = 0.2
drag_margin/right = 0.2
drag_margin/bottom = 0.2

Binary file not shown.

View File

@ -0,0 +1,88 @@
[gd_scene load_steps=5 format=1]
[ext_resource path="res://beach_cave.gd" type="Script" id=1]
[ext_resource path="res://ocean_beach.png" type="Texture" id=2]
[ext_resource path="res://ocean_cave.png" type="Texture" id=3]
[sub_resource type="Environment" id=1]
ambient_light/enabled = false
ambient_light/color = Color( 0, 0, 0, 1 )
ambient_light/energy = 1.0
fxaa/enabled = false
background/mode = 5
background/color = Color( 0, 0, 0, 1 )
background/energy = 1.0
background/scale = 1.0
background/glow = 0.0
background/canvas_max_layer = null
glow/enabled = true
glow/blur_passes = 3
glow/blur_scale = 1.2
glow/blur_strength = 1.2
glow/blur_blend_mode = 0
glow/bloom = 0.0
glow/bloom_treshold = 0.5
dof_blur/enabled = false
dof_blur/blur_passes = 1
dof_blur/begin = 100.0
dof_blur/range = 10.0
hdr/enabled = true
hdr/tonemapper = 0.0
hdr/exposure = 0.5
hdr/white = 1.0
hdr/glow_treshold = 0.7
hdr/glow_scale = 0.5
hdr/min_luminance = 0.3
hdr/max_luminance = 8.0
hdr/exposure_adj_speed = 2.0
fog/enabled = false
fog/begin = 100.0
fog/begin_color = Color( 0, 0, 0, 1 )
fog/end_color = Color( 0, 0, 0, 1 )
fog/attenuation = 1.0
fog/bg = true
bcs/enabled = false
bcs/brightness = 1.0
bcs/contrast = 1.0
bcs/saturation = 1.0
srgb/enabled = true
[node name="hdr" type="Node2D"]
script/script = ExtResource( 1 )
[node name="beach" type="Sprite" parent="."]
texture = ExtResource( 2 )
centered = false
modulate = Color( 2, 2, 2, 1 )
[node name="cave" type="Sprite" parent="."]
transform/scale = Vector2( 1.2, 1 )
texture = ExtResource( 3 )
centered = false
modulate = Color( 0.233166, 0.221219, 0.23582, 1 )
[node name="environment" type="WorldEnvironment" parent="."]
_import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
environment = SubResource( 1 )
[node name="Label" type="Label" parent="."]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 0.0
margin/top = 0.0
margin/right = 40.0
margin/bottom = 13.0
custom_colors/font_color = Color( 0.213955, 0.205626, 0.20313, 1 )
text = "Drag Left and Right"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1

View File

@ -1,7 +1,7 @@
[application]
name="HDR for 2D"
main_scene="res://beach_cave.scn"
main_scene="res://beach_cave.tscn"
icon="res://icon.png"
[display]

View File

@ -1,7 +1,7 @@
[application]
name="Hexagonal Game"
main_scene="res://map.scn"
main_scene="res://map.tscn"
icon="res://icon.png"
[input]

Binary file not shown.

31
demos/2d/hexamap/map.tscn Normal file
View File

@ -0,0 +1,31 @@
[gd_scene load_steps=3 format=1]
[ext_resource path="res://tileset.tres" type="TileSet" id=1]
[ext_resource path="res://troll.tscn" type="PackedScene" id=2]
[node name="Node2D" type="Node2D"]
[node name="TileMap" type="TileMap" parent="."]
mode = 0
tile_set = ExtResource( 1 )
cell/size = Vector2( 82, 94 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 1
cell/tile_origin = 0
cell/y_sort = false
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( -458747, 1073741831, -393213, 1073741831, -393212, 1073741831, -393211, 6, -393210, 1073741831, -393209, 1073741830, -393208, 1073741830, -393207, 6, -393206, 8, -327679, 1073741831, -327678, 1073741831, -327677, 1073741831, -327676, 1073741830, -327675, 1073741831, -327674, 6, -327673, 6, -327672, 6, -327671, 6, -327670, 6, -327669, 0, -327668, 0, -262143, 1073741831, -262142, 1073741831, -262141, 6, -262140, 6, -262139, 0, -262138, 6, -262137, 1, -262136, 0, -262135, 1, -262134, 1, -262133, 0, -262132, 0, -262131, 0, -196608, 9, -196607, 1073741832, -196606, 1073741830, -196605, 2, -196604, 2, -196603, 1073741845, -196602, 21, -196601, 19, -196600, 1073741826, -196599, 0, -196598, 16, -196597, 0, -196596, 0, -196595, 0, -196594, 0, -196593, 0, -131071, 0, -131070, 1, -131069, 1073741827, -131068, 1073741846, -131067, 20, -131066, 19, -131065, 2, -131064, 0, -131063, 14, -131062, 0, -131061, 0, -131060, 0, -131059, 0, -131058, 0, -131057, 0, -131056, 0, -65534, 1, -65533, 2, -65532, 1073741827, -65531, 1, -65530, 1, -65529, 0, -65528, 10, -65527, 12, -65526, 0, -65525, 0, -65524, 0, -65523, 0, -65522, 0, -65521, 0, -65520, 0, 1, 0, 2, 0, 3, 2, 4, 1073741826, 5, 1, 6, 15, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 65537, 0, 65538, 1, 65539, 1610612749, 65540, 1, 65541, 0, 65542, 0, 65543, 0, 65544, 0, 65545, 1610612753, 65546, 0, 65547, 0, 65548, 0, 65549, 0, 65550, 1073741848, 65551, 1073741849, 65552, 0, 131073, 0, 131074, 0, 131075, 0, 131076, 0, 131077, 1610612751, 131078, 1610612752, 131079, 1610612752, 131080, 1610612751, 131081, 1610612751, 131082, 0, 131083, 0, 131084, 0, 131085, 0, 131086, 0, 196612, 0, 196613, 1610612751, 196614, 1610612752, 196615, 1610612751, 196616, 1610612751, 196617, 1073741839, 196618, 1073741839, 196619, 0, 196620, 0, 196621, 0, 262150, 0, 262152, 0, 262154, 0, 262156, 0 )
[node name="troll" parent="." instance=ExtResource( 2 )]
transform/pos = Vector2( 602.819, -39.2876 )
collision/margin = 0.001

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,240 @@
[gd_resource type="TileSet" load_steps=27 format=1]
[ext_resource path="res://WWT-01.png" type="Texture" id=1]
[ext_resource path="res://WWT-02.png" type="Texture" id=2]
[ext_resource path="res://WWT-11.png" type="Texture" id=3]
[ext_resource path="res://WWT-12.png" type="Texture" id=4]
[ext_resource path="res://WWT-13.png" type="Texture" id=5]
[ext_resource path="res://WWT-14.png" type="Texture" id=6]
[ext_resource path="res://WWT-15.png" type="Texture" id=7]
[ext_resource path="res://WWT-16.png" type="Texture" id=8]
[ext_resource path="res://WWT-17.png" type="Texture" id=9]
[ext_resource path="res://WWT-18.png" type="Texture" id=10]
[ext_resource path="res://WWT-19.png" type="Texture" id=11]
[ext_resource path="res://WWT-20.png" type="Texture" id=12]
[ext_resource path="res://WWT-03.png" type="Texture" id=13]
[ext_resource path="res://WWT-21.png" type="Texture" id=14]
[ext_resource path="res://WWT-22.png" type="Texture" id=15]
[ext_resource path="res://WWT-23.png" type="Texture" id=16]
[ext_resource path="res://WWT-24.png" type="Texture" id=17]
[ext_resource path="res://WWT-25.png" type="Texture" id=18]
[ext_resource path="res://WWT-26.png" type="Texture" id=19]
[ext_resource path="res://WWT-04.png" type="Texture" id=20]
[ext_resource path="res://WWT-05.png" type="Texture" id=21]
[ext_resource path="res://WWT-06.png" type="Texture" id=22]
[ext_resource path="res://WWT-07.png" type="Texture" id=23]
[ext_resource path="res://WWT-08.png" type="Texture" id=24]
[ext_resource path="res://WWT-09.png" type="Texture" id=25]
[ext_resource path="res://WWT-10.png" type="Texture" id=26]
[resource]
0/name = "Tile 1"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( -24, -17 )
0/region = Rect2( 0, 0, 0, 0 )
0/occluder_offset = Vector2( -0, -0 )
0/navigation_offset = Vector2( -0, -0 )
0/shape_offset = Vector2( 0, 0 )
0/shapes = [ ]
1/name = "Tile 2"
1/texture = ExtResource( 2 )
1/tex_offset = Vector2( -24, -17 )
1/region = Rect2( 0, 0, 0, 0 )
1/occluder_offset = Vector2( -0, -0 )
1/navigation_offset = Vector2( -0, -0 )
1/shape_offset = Vector2( 0, 0 )
1/shapes = [ ]
2/name = "Tile 3"
2/texture = ExtResource( 13 )
2/tex_offset = Vector2( -24, -17 )
2/region = Rect2( 0, 0, 0, 0 )
2/occluder_offset = Vector2( -0, -0 )
2/navigation_offset = Vector2( -0, -0 )
2/shape_offset = Vector2( 0, 0 )
2/shapes = [ ]
3/name = "Tile 4"
3/texture = ExtResource( 20 )
3/tex_offset = Vector2( -24, -17 )
3/region = Rect2( 0, 0, 0, 0 )
3/occluder_offset = Vector2( -0, -0 )
3/navigation_offset = Vector2( -0, -0 )
3/shape_offset = Vector2( 0, 0 )
3/shapes = [ ]
4/name = "Tile 5"
4/texture = ExtResource( 21 )
4/tex_offset = Vector2( -24, -17 )
4/region = Rect2( 0, 0, 0, 0 )
4/occluder_offset = Vector2( -0, -0 )
4/navigation_offset = Vector2( -0, -0 )
4/shape_offset = Vector2( 0, 0 )
4/shapes = [ ]
5/name = "Tile 6"
5/texture = ExtResource( 22 )
5/tex_offset = Vector2( -24, -17 )
5/region = Rect2( 0, 0, 0, 0 )
5/occluder_offset = Vector2( -0, -0 )
5/navigation_offset = Vector2( -0, -0 )
5/shape_offset = Vector2( 0, 0 )
5/shapes = [ ]
6/name = "Tile 7"
6/texture = ExtResource( 23 )
6/tex_offset = Vector2( -24, -17 )
6/region = Rect2( 0, 0, 0, 0 )
6/occluder_offset = Vector2( -0, -0 )
6/navigation_offset = Vector2( -0, -0 )
6/shape_offset = Vector2( 0, 0 )
6/shapes = [ ]
7/name = "Tile 8"
7/texture = ExtResource( 24 )
7/tex_offset = Vector2( -24, -17 )
7/region = Rect2( 0, 0, 0, 0 )
7/occluder_offset = Vector2( -0, -0 )
7/navigation_offset = Vector2( -0, -0 )
7/shape_offset = Vector2( 0, 0 )
7/shapes = [ ]
8/name = "Tile 9"
8/texture = ExtResource( 25 )
8/tex_offset = Vector2( -24, -17 )
8/region = Rect2( 0, 0, 0, 0 )
8/occluder_offset = Vector2( -0, -0 )
8/navigation_offset = Vector2( -0, -0 )
8/shape_offset = Vector2( 0, 0 )
8/shapes = [ ]
9/name = "Tile 10"
9/texture = ExtResource( 26 )
9/tex_offset = Vector2( -24, -17 )
9/region = Rect2( 0, 0, 0, 0 )
9/occluder_offset = Vector2( -0, -0 )
9/navigation_offset = Vector2( -0, -0 )
9/shape_offset = Vector2( 0, 0 )
9/shapes = [ ]
10/name = "Tile 11"
10/texture = ExtResource( 3 )
10/tex_offset = Vector2( -24, -17 )
10/region = Rect2( 0, 0, 0, 0 )
10/occluder_offset = Vector2( -0, -0 )
10/navigation_offset = Vector2( -0, -0 )
10/shape_offset = Vector2( 0, 0 )
10/shapes = [ ]
11/name = "Tile 12"
11/texture = ExtResource( 4 )
11/tex_offset = Vector2( -24, -17 )
11/region = Rect2( 0, 0, 0, 0 )
11/occluder_offset = Vector2( -0, -0 )
11/navigation_offset = Vector2( -0, -0 )
11/shape_offset = Vector2( 0, 0 )
11/shapes = [ ]
12/name = "Tile 13"
12/texture = ExtResource( 5 )
12/tex_offset = Vector2( -24, -17 )
12/region = Rect2( 0, 0, 0, 0 )
12/occluder_offset = Vector2( -0, -0 )
12/navigation_offset = Vector2( -0, -0 )
12/shape_offset = Vector2( 0, 0 )
12/shapes = [ ]
13/name = "Tile 14"
13/texture = ExtResource( 6 )
13/tex_offset = Vector2( -24, -17 )
13/region = Rect2( 0, 0, 0, 0 )
13/occluder_offset = Vector2( -0, -0 )
13/navigation_offset = Vector2( -0, -0 )
13/shape_offset = Vector2( 0, 0 )
13/shapes = [ ]
14/name = "Tile 15"
14/texture = ExtResource( 7 )
14/tex_offset = Vector2( -24, -17 )
14/region = Rect2( 0, 0, 0, 0 )
14/occluder_offset = Vector2( -0, -0 )
14/navigation_offset = Vector2( -0, -0 )
14/shape_offset = Vector2( 0, 0 )
14/shapes = [ ]
15/name = "Tile 16"
15/texture = ExtResource( 8 )
15/tex_offset = Vector2( -24, -17 )
15/region = Rect2( 0, 0, 0, 0 )
15/occluder_offset = Vector2( -0, -0 )
15/navigation_offset = Vector2( -0, -0 )
15/shape_offset = Vector2( 0, 0 )
15/shapes = [ ]
16/name = "Tile 17"
16/texture = ExtResource( 9 )
16/tex_offset = Vector2( -24, -17 )
16/region = Rect2( 0, 0, 0, 0 )
16/occluder_offset = Vector2( -0, -0 )
16/navigation_offset = Vector2( -0, -0 )
16/shape_offset = Vector2( 0, 0 )
16/shapes = [ ]
17/name = "Tile 18"
17/texture = ExtResource( 10 )
17/tex_offset = Vector2( -24, -17 )
17/region = Rect2( 0, 0, 0, 0 )
17/occluder_offset = Vector2( -0, -0 )
17/navigation_offset = Vector2( -0, -0 )
17/shape_offset = Vector2( 0, 0 )
17/shapes = [ ]
18/name = "Tile 19"
18/texture = ExtResource( 11 )
18/tex_offset = Vector2( -24, -17 )
18/region = Rect2( 0, 0, 0, 0 )
18/occluder_offset = Vector2( -0, -0 )
18/navigation_offset = Vector2( -0, -0 )
18/shape_offset = Vector2( 0, 0 )
18/shapes = [ ]
19/name = "Tile 20"
19/texture = ExtResource( 12 )
19/tex_offset = Vector2( -24, -17 )
19/region = Rect2( 0, 0, 0, 0 )
19/occluder_offset = Vector2( -0, -0 )
19/navigation_offset = Vector2( -0, -0 )
19/shape_offset = Vector2( 0, 0 )
19/shapes = [ ]
20/name = "Tile 21"
20/texture = ExtResource( 14 )
20/tex_offset = Vector2( -24, -17 )
20/region = Rect2( 0, 0, 0, 0 )
20/occluder_offset = Vector2( -0, -0 )
20/navigation_offset = Vector2( -0, -0 )
20/shape_offset = Vector2( 0, 0 )
20/shapes = [ ]
21/name = "Tile 22"
21/texture = ExtResource( 15 )
21/tex_offset = Vector2( -24, -17 )
21/region = Rect2( 0, 0, 0, 0 )
21/occluder_offset = Vector2( -0, -0 )
21/navigation_offset = Vector2( -0, -0 )
21/shape_offset = Vector2( 0, 0 )
21/shapes = [ ]
22/name = "Tile 23"
22/texture = ExtResource( 16 )
22/tex_offset = Vector2( -24, -17 )
22/region = Rect2( 0, 0, 0, 0 )
22/occluder_offset = Vector2( -0, -0 )
22/navigation_offset = Vector2( -0, -0 )
22/shape_offset = Vector2( 0, 0 )
22/shapes = [ ]
23/name = "Tile 24"
23/texture = ExtResource( 17 )
23/tex_offset = Vector2( -24, -17 )
23/region = Rect2( 0, 0, 0, 0 )
23/occluder_offset = Vector2( -0, -0 )
23/navigation_offset = Vector2( -0, -0 )
23/shape_offset = Vector2( 0, 0 )
23/shapes = [ ]
24/name = "Tile 25"
24/texture = ExtResource( 18 )
24/tex_offset = Vector2( -24, -17 )
24/region = Rect2( 0, 0, 0, 0 )
24/occluder_offset = Vector2( -0, -0 )
24/navigation_offset = Vector2( -0, -0 )
24/shape_offset = Vector2( 0, 0 )
24/shapes = [ ]
25/name = "Tile 26"
25/texture = ExtResource( 19 )
25/tex_offset = Vector2( -24, -17 )
25/region = Rect2( 0, 0, 0, 0 )
25/occluder_offset = Vector2( -0, -0 )
25/navigation_offset = Vector2( -0, -0 )
25/shape_offset = Vector2( 0, 0 )
25/shapes = [ ]

View File

@ -0,0 +1,214 @@
[gd_scene load_steps=27 format=1]
[ext_resource path="res://WWT-01.png" type="Texture" id=1]
[ext_resource path="res://WWT-02.png" type="Texture" id=2]
[ext_resource path="res://WWT-03.png" type="Texture" id=3]
[ext_resource path="res://WWT-04.png" type="Texture" id=4]
[ext_resource path="res://WWT-05.png" type="Texture" id=5]
[ext_resource path="res://WWT-06.png" type="Texture" id=6]
[ext_resource path="res://WWT-07.png" type="Texture" id=7]
[ext_resource path="res://WWT-08.png" type="Texture" id=8]
[ext_resource path="res://WWT-09.png" type="Texture" id=9]
[ext_resource path="res://WWT-10.png" type="Texture" id=10]
[ext_resource path="res://WWT-11.png" type="Texture" id=11]
[ext_resource path="res://WWT-12.png" type="Texture" id=12]
[ext_resource path="res://WWT-13.png" type="Texture" id=13]
[ext_resource path="res://WWT-14.png" type="Texture" id=14]
[ext_resource path="res://WWT-15.png" type="Texture" id=15]
[ext_resource path="res://WWT-16.png" type="Texture" id=16]
[ext_resource path="res://WWT-17.png" type="Texture" id=17]
[ext_resource path="res://WWT-18.png" type="Texture" id=18]
[ext_resource path="res://WWT-19.png" type="Texture" id=19]
[ext_resource path="res://WWT-20.png" type="Texture" id=20]
[ext_resource path="res://WWT-21.png" type="Texture" id=21]
[ext_resource path="res://WWT-22.png" type="Texture" id=22]
[ext_resource path="res://WWT-23.png" type="Texture" id=23]
[ext_resource path="res://WWT-24.png" type="Texture" id=24]
[ext_resource path="res://WWT-25.png" type="Texture" id=25]
[ext_resource path="res://WWT-26.png" type="Texture" id=26]
[node name="Node2D" type="Node2D"]
[node name="Tile 1" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 1 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 2" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 2 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 3" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 3 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 4" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 4 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 5" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 5 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 6" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 6 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 7" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 7 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 8" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 8 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 9" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 9 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 10" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 10 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 11" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 11 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 12" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 12 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 13" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 13 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 14" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 14 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 15" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 15 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 16" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 16 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 17" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 17 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 18" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 18 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 19" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 19 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 20" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 20 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 21" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 21 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 22" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 22 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 23" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 23 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 24" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 24 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 25" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 25 )
centered = false
offset = Vector2( -24, -17 )
[node name="Tile 26" type="Sprite" parent="."]
transform/pos = Vector2( 96.6174, 42.2665 )
texture = ExtResource( 26 )
centered = false
offset = Vector2( -24, -17 )

Binary file not shown.

View File

@ -0,0 +1,52 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://troll.gd" type="Script" id=1]
[ext_resource path="res://troll.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 16.0
[node name="troll" type="KinematicBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 3.24216, 19.453 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.001
script/script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
transform/pos = Vector2( 3.24216, 19.453 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="Camera2D" type="Camera2D" parent="."]
anchor_mode = 1
rotating = false
current = true
zoom = Vector2( 1, 1 )
limit/left = -10000000
limit/top = -10000000
limit/right = 10000000
limit/bottom = 10000000
drag_margin/h_enabled = true
drag_margin/v_enabled = true
smoothing/enable = false
smoothing/speed = 5.0
drag_margin/left = 0.2
drag_margin/top = 0.2
drag_margin/right = 0.2
drag_margin/bottom = 0.2

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,49 @@
[gd_scene load_steps=3 format=1]
[ext_resource path="res://tileset.tres" type="TileSet" id=1]
[ext_resource path="res://troll.tscn" type="PackedScene" id=2]
[node name="dungeon" type="Node2D"]
[node name="floor" type="TileMap" parent="."]
mode = 1
tile_set = ExtResource( 1 )
cell/size = Vector2( 128, 64 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 1
cell/y_sort = false
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( -851956, 0, -851955, 0, -851954, 0, -786420, 1, -786419, 0, -786418, 0, -720884, 0, -720883, 0, -720882, 0, -655348, 1, -655347, 0, -655346, 0, -589812, 1, -589811, 0, -589810, 0, -524276, 0, -524275, 1, -524274, 0, -458740, 0, -458739, 0, -458738, 0, -393210, 0, -393209, 0, -393208, 0, -393207, 0, -393206, 0, -393205, 0, -393204, 0, -393203, 0, -393202, 0, -327674, 0, -327673, 0, -327672, 1, -327671, 1, -327670, 1, -327669, 1, -327668, 1, -327667, 0, -327666, 0, -262138, 0, -262137, 0, -262136, 0, -262135, 0, -262134, 0, -262133, 0, -262132, 0, -262131, 0, -262130, 0, -196602, 0, -196601, 0, -196600, 0, -196599, 0, -196598, 0, -196597, 0, -196596, 0, -196595, 0, -196594, 0, -131066, 0, -131065, 0, -131064, 0, -131063, 0, -65530, 0, -65529, 0, -65528, 0, -65527, 0, 6, 0, 7, 1, 8, 0, 9, 0, 65542, 0, 65543, 0, 65544, 0, 65545, 0, 131078, 0, 131079, 0, 131080, 0, 131081, 0, 196614, 0, 196615, 0, 196616, 0 )
[node name="walls" type="TileMap" parent="."]
mode = 1
tile_set = ExtResource( 1 )
cell/size = Vector2( 128, 64 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 1
cell/y_sort = true
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( -917493, 2, -917492, 2, -917491, 2, -917490, 2, -917489, 2, -851957, 2, -851956, 3, -851954, 3, -851953, 2, -786421, 2, -786420, 3, -786418, 3, -786417, 2, -720885, 2, -720881, 2, -655349, 2, -655348, 2, -655346, 3, -655345, 2, -589813, 2, -589809, 2, -524277, 2, -524273, 2, -458747, 2, -458746, 2, -458745, 2, -458744, 536870916, -458743, 536870916, -458742, 2, -458741, 2, -458740, 2, -458738, 2, -458737, 2, -393211, 2, -393209, 3, -393205, 3, -393201, 2, -327675, 4, -327665, 2, -262139, 4, -262134, 3, -262133, 3, -262129, 2, -196603, 2, -196601, 3, -196593, 2, -131067, 2, -131066, 3, -131062, 2, -131061, 2, -131060, 2, -131059, 2, -131058, 2, -131057, 2, -65531, 2, -65530, 2, -65527, 2, -65526, 2, 5, 2, 10, 2, 65541, 2, 65543, 3, 65546, 2, 131077, 2, 131082, 2, 196613, 2, 196618, 2, 262149, 2, 262150, 2, 262151, 2, 262152, 2, 262153, 2, 262154, 2 )
[node name="troll" parent="walls" instance=ExtResource( 2 )]
transform/pos = Vector2( 299.38, 326.037 )
collision/margin = 0.001

View File

@ -1,7 +1,7 @@
[application]
name="Isometric Game"
main_scene="res://dungeon.scn"
main_scene="res://dungeon.tscn"
icon="res://icon.png"
[image_loader]

Binary file not shown.

View File

@ -0,0 +1,67 @@
[gd_resource type="TileSet" load_steps=6 format=1]
[ext_resource path="res://isotiles.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=1]
custom_solver_bias = 0.0
points = Vector2Array( -68, 2, -4, -30, 60, 2, -4, 34 )
[sub_resource type="ConvexPolygonShape2D" id=2]
custom_solver_bias = 0.0
points = Vector2Array( -20, -6, -4, -22, 12, -22, 4, 10, -4, 10 )
[sub_resource type="ConvexPolygonShape2D" id=3]
custom_solver_bias = 0.0
points = Vector2Array( 28, -6, 4, 10, 12, -22 )
[sub_resource type="ConvexPolygonShape2D" id=4]
custom_solver_bias = 0.0
points = Vector2Array( 66.095, -0.62516, -5.90501, 31.3748, -21.905, 23.3748, 50.095, -8.62516 )
[resource]
0/name = "base"
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( -4, 6 )
0/region = Rect2( 28, 92, 132, 84 )
0/occluder_offset = Vector2( 66, 42 )
0/navigation_offset = Vector2( 66, 42 )
0/shape_offset = Vector2( 0, 0 )
0/shapes = [ ]
1/name = "base2"
1/texture = ExtResource( 1 )
1/tex_offset = Vector2( -4, 6 )
1/region = Rect2( 220, 92, 132, 84 )
1/occluder_offset = Vector2( 66, 42 )
1/navigation_offset = Vector2( 66, 42 )
1/shape_offset = Vector2( 0, 0 )
1/shapes = [ ]
2/name = "wall"
2/texture = ExtResource( 1 )
2/tex_offset = Vector2( -4, -32 )
2/region = Rect2( 28, 220, 132, 136 )
2/occluder_offset = Vector2( 66, 68 )
2/navigation_offset = Vector2( 66, 68 )
2/shape_offset = Vector2( 66, 68 )
2/shapes = [ SubResource( 1 ) ]
3/name = "column"
3/texture = ExtResource( 1 )
3/tex_offset = Vector2( -2, -32 )
3/region = Rect2( 220, 220, 132, 136 )
3/occluder_offset = Vector2( 66, 68 )
3/navigation_offset = Vector2( 66, 68 )
3/shape_offset = Vector2( 66, 68 )
3/shapes = [ SubResource( 2 ), SubResource( 3 ) ]
4/name = "door1"
4/texture = ExtResource( 1 )
4/tex_offset = Vector2( 16, -22 )
4/region = Rect2( 24, 408, 132, 136 )
4/occluder_offset = Vector2( 66, 68 )
4/navigation_offset = Vector2( 66, 68 )
4/shape_offset = Vector2( 66, 68 )
4/shapes = [ SubResource( 4 ) ]

View File

@ -0,0 +1,130 @@
[gd_scene load_steps=6 format=1]
[ext_resource path="res://isotiles.png" type="Texture" id=1]
[sub_resource type="ConvexPolygonShape2D" id=1]
custom_solver_bias = 0.0
points = Vector2Array( -68, 2, -4, -30, 60, 2, -4, 34 )
[sub_resource type="ConvexPolygonShape2D" id=2]
custom_solver_bias = 0.0
points = Vector2Array( -20, -6, -4, -22, 12, -22, 4, 10, -4, 10 )
[sub_resource type="ConvexPolygonShape2D" id=3]
custom_solver_bias = 0.0
points = Vector2Array( 28, -6, 4, 10, 12, -22 )
[sub_resource type="ConvexPolygonShape2D" id=4]
custom_solver_bias = 0.0
points = Vector2Array( 66.095, -0.62516, -5.90501, 31.3748, -21.905, 23.3748, 50.095, -8.62516 )
[node name="Node2D" type="Node2D"]
[node name="base" type="Sprite" parent="."]
transform/pos = Vector2( 87.5658, 0.113792 )
texture = ExtResource( 1 )
offset = Vector2( -4, 6 )
region = true
region_rect = Rect2( 28, 92, 132, 84 )
[node name="base2" type="Sprite" parent="."]
transform/pos = Vector2( 196, 44 )
texture = ExtResource( 1 )
offset = Vector2( -4, 6 )
region = true
region_rect = Rect2( 220, 92, 132, 84 )
[node name="wall" type="Sprite" parent="."]
transform/pos = Vector2( 356, 70 )
texture = ExtResource( 1 )
offset = Vector2( -4, -32 )
region = true
region_rect = Rect2( 28, 220, 132, 136 )
[node name="StaticBody2D" type="StaticBody2D" parent="wall"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="collision" type="CollisionPolygon2D" parent="wall/StaticBody2D"]
build_mode = 0
polygon = Vector2Array( -68, 2, -4, 34, 60, 2, -4, -30 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="column" type="Sprite" parent="."]
transform/pos = Vector2( 292, 198 )
texture = ExtResource( 1 )
offset = Vector2( -2, -32 )
region = true
region_rect = Rect2( 220, 220, 132, 136 )
[node name="StaticBody" type="StaticBody2D" parent="column"]
input/pickable = false
shapes/0/shape = SubResource( 2 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
shapes/1/shape = SubResource( 3 )
shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/1/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="column/StaticBody"]
build_mode = 0
polygon = Vector2Array( -20, -6, -4, 10, 4, 10, 28, -6, 12, -22, -4, -22 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="door1" type="Sprite" parent="."]
transform/pos = Vector2( 85.905, 0.62516 )
texture = ExtResource( 1 )
offset = Vector2( 16, -22 )
region = true
region_rect = Rect2( 24, 408, 132, 136 )
[node name="StaticBody2D" type="StaticBody2D" parent="door1"]
input/pickable = false
shapes/0/shape = SubResource( 4 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="door1/StaticBody2D"]
build_mode = 0
polygon = Vector2Array( -5.90501, 31.3748, 66.095, -0.62516, 50.095, -8.62516, -21.905, 23.3748 )
shape_range = Vector2( -1, -1 )
trigger = false

Binary file not shown.

View File

@ -0,0 +1,53 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://troll.gd" type="Script" id=1]
[ext_resource path="res://troll.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 16.0
[node name="troll" type="KinematicBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, -0.342697, -0.980721 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.001
script/script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
transform/pos = Vector2( -3.94334, -36.924 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
transform/pos = Vector2( -0.342697, -0.980721 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="Camera2D" type="Camera2D" parent="."]
anchor_mode = 1
rotating = false
current = true
zoom = Vector2( 1, 1 )
limit/left = -10000000
limit/top = -10000000
limit/right = 10000000
limit/bottom = 10000000
drag_margin/h_enabled = true
drag_margin/v_enabled = true
smoothing/enable = false
smoothing/speed = 5.0
drag_margin/left = 0.2
drag_margin/top = 0.2
drag_margin/right = 0.2
drag_margin/bottom = 0.2

View File

@ -0,0 +1,12 @@
[gd_resource type="CanvasItemMaterial" load_steps=2 format=1]
[sub_resource type="CanvasItemShader" id=1]
_code = { "fragment":"//there is no albedo (all shading is normal)\nuniform color col;\nCOLOR=col;\n//sample normal texture\nvec4 ntex = tex(TEXTURE,UV);\n//take the alpha from the normal texture\nCOLOR.a=ntex.a;\n//adjust normalmap from [0..1] to [-1..1]\nntex.rgb = ntex.rgb * vec3(-2,-2,1) - vec3(-1,-1,0);\n//half size of the tile \nvec2 tile_vec=vec2(47,22);\n//rotation to convert the normal to pseudo 3d coordinates\n//this could be optimized\nfloat r = asin(tile_vec.y / tile_vec.x);\nmat3 rot_mat = mat3( vec3(1,0,0), vec3(0,cos(r),-sin(r)), vec3(0,sin(r),cos(r)));\n\n//pass the normal\nNORMAL = rot_mat * ntex.rgb;\n\n\n\n\n", "fragment_ofs":0, "light":"//apply the normal as simple diffuse (same as default code)\nvec3 light_normal = normalize(vec3(LIGHT_VEC,-LIGHT_HEIGHT));\nLIGHT=LIGHT_COLOR*COLOR*max(dot(-light_normal,NORMAL),0.0);\n//substract light position to be always aligned to the bottom of the sprite\n//this makes lighting on it look like a billboard\nLIGHT_VEC.y-=VAR1.y;\n", "light_ofs":0, "vertex":"// pass the local sprite coordinates through a varying\n// the red cross in the sprite is the 0,0\nVAR1.xy=SRC_VERTEX;", "vertex_ofs":0 }
[resource]
shader/shader = SubResource( 1 )
shader/shading_mode = 0
shader_param/col = Color( 1, 0.836638, 0.693806, 1 )

Binary file not shown.

View File

@ -0,0 +1,52 @@
[gd_scene load_steps=5 format=1]
[ext_resource path="res://wall_shader.tres" type="CanvasItemMaterial" id=1]
[ext_resource path="res://faceColor.png" type="Texture" id=2]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 20.0
[sub_resource type="OccluderPolygon2D" id=2]
closed = false
cull_mode = 0
polygon = Vector2Array( -16.1183, 62.9508, 4.32091, 74.9223, 23.3002, 65.2867 )
[node name="column" type="StaticBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 1.36365, 7.83751 )
shapes/0/trigger = false
collision/layers = 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="."]
material/material = ExtResource( 1 )
transform/pos = Vector2( 0.487671, 0.487679 )
texture = ExtResource( 2 )
offset = Vector2( -4.37984, -50.8523 )
region = true
region_rect = Rect2( 569, 179, 48, 154 )
[node name="occluder" type="LightOccluder2D" parent="."]
transform/pos = Vector2( -3.90138, -50.97 )
occluder = SubResource( 2 )
light_mask = 1
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
transform/pos = Vector2( 1.36365, 7.83751 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1

View File

@ -19,7 +19,7 @@ func _input(event):
if (event.type == InputEvent.MOUSE_BUTTON and event.button_index == 1 and event.pressed and shoot_countdown <= 0):
var pos = get_canvas_transform().affine_inverse()*event.pos
var dir = (pos - get_global_pos()).normalized()
var bullet = preload("res://shoot.scn").instance()
var bullet = preload("res://shoot.tscn").instance()
bullet.advance_dir = dir
bullet.set_pos(get_global_pos() + dir*60)
get_parent().add_child(bullet)

Binary file not shown.

View File

@ -0,0 +1,327 @@
[gd_scene load_steps=173 format=1]
[ext_resource path="res://cubio.gd" type="Script" id=1]
[ext_resource path="res://character_shader.tres" type="CanvasItemMaterial" id=2]
[ext_resource path="res://cubio/idle0001.png" type="Texture" id=3]
[ext_resource path="res://cubio/idle0002.png" type="Texture" id=4]
[ext_resource path="res://cubio/idle0003.png" type="Texture" id=5]
[ext_resource path="res://cubio/idle0004.png" type="Texture" id=6]
[ext_resource path="res://cubio/idle0005.png" type="Texture" id=7]
[ext_resource path="res://cubio/idle0006.png" type="Texture" id=8]
[ext_resource path="res://cubio/idle0007.png" type="Texture" id=9]
[ext_resource path="res://cubio/idle0008.png" type="Texture" id=10]
[ext_resource path="res://cubio/idle0009.png" type="Texture" id=11]
[ext_resource path="res://cubio/idle0010.png" type="Texture" id=12]
[ext_resource path="res://cubio/idle0011.png" type="Texture" id=13]
[ext_resource path="res://cubio/idle0012.png" type="Texture" id=14]
[ext_resource path="res://cubio/idle0013.png" type="Texture" id=15]
[ext_resource path="res://cubio/idle0014.png" type="Texture" id=16]
[ext_resource path="res://cubio/idle0015.png" type="Texture" id=17]
[ext_resource path="res://cubio/idle0016.png" type="Texture" id=18]
[ext_resource path="res://cubio/idle0017.png" type="Texture" id=19]
[ext_resource path="res://cubio/idle0018.png" type="Texture" id=20]
[ext_resource path="res://cubio/idle0019.png" type="Texture" id=21]
[ext_resource path="res://cubio/idle0020.png" type="Texture" id=22]
[ext_resource path="res://cubio/idle0021.png" type="Texture" id=23]
[ext_resource path="res://cubio/idle0022.png" type="Texture" id=24]
[ext_resource path="res://cubio/idle0023.png" type="Texture" id=25]
[ext_resource path="res://cubio/idle0024.png" type="Texture" id=26]
[ext_resource path="res://cubio/idle0025.png" type="Texture" id=27]
[ext_resource path="res://cubio/idle0026.png" type="Texture" id=28]
[ext_resource path="res://cubio/idle0027.png" type="Texture" id=29]
[ext_resource path="res://cubio/idle0028.png" type="Texture" id=30]
[ext_resource path="res://cubio/idle0029.png" type="Texture" id=31]
[ext_resource path="res://cubio/idle0030.png" type="Texture" id=32]
[ext_resource path="res://cubio/idle0031.png" type="Texture" id=33]
[ext_resource path="res://cubio/idle0032.png" type="Texture" id=34]
[ext_resource path="res://cubio/idle0033.png" type="Texture" id=35]
[ext_resource path="res://cubio/idle0034.png" type="Texture" id=36]
[ext_resource path="res://cubio/idle0035.png" type="Texture" id=37]
[ext_resource path="res://cubio/idle0036.png" type="Texture" id=38]
[ext_resource path="res://cubio/idle0037.png" type="Texture" id=39]
[ext_resource path="res://cubio/idle0038.png" type="Texture" id=40]
[ext_resource path="res://cubio/idle0039.png" type="Texture" id=41]
[ext_resource path="res://cubio/idle0040.png" type="Texture" id=42]
[ext_resource path="res://cubio/idle0041.png" type="Texture" id=43]
[ext_resource path="res://cubio/idle0042.png" type="Texture" id=44]
[ext_resource path="res://cubio/idle0043.png" type="Texture" id=45]
[ext_resource path="res://cubio/idle0044.png" type="Texture" id=46]
[ext_resource path="res://cubio/idle0045.png" type="Texture" id=47]
[ext_resource path="res://cubio/idle0046.png" type="Texture" id=48]
[ext_resource path="res://cubio/idle0047.png" type="Texture" id=49]
[ext_resource path="res://cubio/idle0048.png" type="Texture" id=50]
[ext_resource path="res://cubio/idle0049.png" type="Texture" id=51]
[ext_resource path="res://cubio/idle0050.png" type="Texture" id=52]
[ext_resource path="res://cubio/idle0051.png" type="Texture" id=53]
[ext_resource path="res://cubio/idle0052.png" type="Texture" id=54]
[ext_resource path="res://cubio/idle0053.png" type="Texture" id=55]
[ext_resource path="res://cubio/idle0054.png" type="Texture" id=56]
[ext_resource path="res://cubio/idle0055.png" type="Texture" id=57]
[ext_resource path="res://cubio/idle0056.png" type="Texture" id=58]
[ext_resource path="res://cubio/idle0057.png" type="Texture" id=59]
[ext_resource path="res://cubio/idle0058.png" type="Texture" id=60]
[ext_resource path="res://cubio/idle0059.png" type="Texture" id=61]
[ext_resource path="res://cubio/idle0060.png" type="Texture" id=62]
[ext_resource path="res://cubio/norm-b-0001.png" type="Texture" id=63]
[ext_resource path="res://cubio/norm-b-0002.png" type="Texture" id=64]
[ext_resource path="res://cubio/norm-b-0003.png" type="Texture" id=65]
[ext_resource path="res://cubio/norm-b-0004.png" type="Texture" id=66]
[ext_resource path="res://cubio/norm-b-0005.png" type="Texture" id=67]
[ext_resource path="res://cubio/norm-b-0006.png" type="Texture" id=68]
[ext_resource path="res://cubio/norm-b-0007.png" type="Texture" id=69]
[ext_resource path="res://cubio/norm-b-0008.png" type="Texture" id=70]
[ext_resource path="res://cubio/norm-b-0009.png" type="Texture" id=71]
[ext_resource path="res://cubio/norm-b-0010.png" type="Texture" id=72]
[ext_resource path="res://cubio/norm-b-0011.png" type="Texture" id=73]
[ext_resource path="res://cubio/norm-b-0012.png" type="Texture" id=74]
[ext_resource path="res://cubio/norm-b-0013.png" type="Texture" id=75]
[ext_resource path="res://cubio/norm-b-0014.png" type="Texture" id=76]
[ext_resource path="res://cubio/norm-b-0015.png" type="Texture" id=77]
[ext_resource path="res://cubio/norm-b-0016.png" type="Texture" id=78]
[ext_resource path="res://cubio/norm-b-0017.png" type="Texture" id=79]
[ext_resource path="res://cubio/norm-b-0018.png" type="Texture" id=80]
[ext_resource path="res://cubio/norm-b-0019.png" type="Texture" id=81]
[ext_resource path="res://cubio/norm-b-0020.png" type="Texture" id=82]
[ext_resource path="res://cubio/norm-bl-0001.png" type="Texture" id=83]
[ext_resource path="res://cubio/norm-bl-0002.png" type="Texture" id=84]
[ext_resource path="res://cubio/norm-bl-0003.png" type="Texture" id=85]
[ext_resource path="res://cubio/norm-bl-0004.png" type="Texture" id=86]
[ext_resource path="res://cubio/norm-bl-0005.png" type="Texture" id=87]
[ext_resource path="res://cubio/norm-bl-0006.png" type="Texture" id=88]
[ext_resource path="res://cubio/norm-bl-0007.png" type="Texture" id=89]
[ext_resource path="res://cubio/norm-bl-0008.png" type="Texture" id=90]
[ext_resource path="res://cubio/norm-bl-0009.png" type="Texture" id=91]
[ext_resource path="res://cubio/norm-bl-0010.png" type="Texture" id=92]
[ext_resource path="res://cubio/norm-bl-0011.png" type="Texture" id=93]
[ext_resource path="res://cubio/norm-bl-0012.png" type="Texture" id=94]
[ext_resource path="res://cubio/norm-bl-0013.png" type="Texture" id=95]
[ext_resource path="res://cubio/norm-bl-0014.png" type="Texture" id=96]
[ext_resource path="res://cubio/norm-bl-0015.png" type="Texture" id=97]
[ext_resource path="res://cubio/norm-bl-0016.png" type="Texture" id=98]
[ext_resource path="res://cubio/norm-bl-0017.png" type="Texture" id=99]
[ext_resource path="res://cubio/norm-bl-0018.png" type="Texture" id=100]
[ext_resource path="res://cubio/norm-bl-0019.png" type="Texture" id=101]
[ext_resource path="res://cubio/norm-bl-0020.png" type="Texture" id=102]
[ext_resource path="res://cubio/norm-l-0001.png" type="Texture" id=103]
[ext_resource path="res://cubio/norm-l-0002.png" type="Texture" id=104]
[ext_resource path="res://cubio/norm-l-0003.png" type="Texture" id=105]
[ext_resource path="res://cubio/norm-l-0004.png" type="Texture" id=106]
[ext_resource path="res://cubio/norm-l-0005.png" type="Texture" id=107]
[ext_resource path="res://cubio/norm-l-0006.png" type="Texture" id=108]
[ext_resource path="res://cubio/norm-l-0007.png" type="Texture" id=109]
[ext_resource path="res://cubio/norm-l-0008.png" type="Texture" id=110]
[ext_resource path="res://cubio/norm-l-0009.png" type="Texture" id=111]
[ext_resource path="res://cubio/norm-l-0010.png" type="Texture" id=112]
[ext_resource path="res://cubio/norm-l-0011.png" type="Texture" id=113]
[ext_resource path="res://cubio/norm-l-0012.png" type="Texture" id=114]
[ext_resource path="res://cubio/norm-l-0013.png" type="Texture" id=115]
[ext_resource path="res://cubio/norm-l-0014.png" type="Texture" id=116]
[ext_resource path="res://cubio/norm-l-0015.png" type="Texture" id=117]
[ext_resource path="res://cubio/norm-l-0016.png" type="Texture" id=118]
[ext_resource path="res://cubio/norm-l-0017.png" type="Texture" id=119]
[ext_resource path="res://cubio/norm-l-0018.png" type="Texture" id=120]
[ext_resource path="res://cubio/norm-l-0019.png" type="Texture" id=121]
[ext_resource path="res://cubio/norm-l-0020.png" type="Texture" id=122]
[ext_resource path="res://cubio/norm-u-0001.png" type="Texture" id=123]
[ext_resource path="res://cubio/norm-u-0002.png" type="Texture" id=124]
[ext_resource path="res://cubio/norm-u-0003.png" type="Texture" id=125]
[ext_resource path="res://cubio/norm-u-0004.png" type="Texture" id=126]
[ext_resource path="res://cubio/norm-u-0005.png" type="Texture" id=127]
[ext_resource path="res://cubio/norm-u-0006.png" type="Texture" id=128]
[ext_resource path="res://cubio/norm-u-0007.png" type="Texture" id=129]
[ext_resource path="res://cubio/norm-u-0008.png" type="Texture" id=130]
[ext_resource path="res://cubio/norm-u-0009.png" type="Texture" id=131]
[ext_resource path="res://cubio/norm-u-0010.png" type="Texture" id=132]
[ext_resource path="res://cubio/norm-u-0011.png" type="Texture" id=133]
[ext_resource path="res://cubio/norm-u-0012.png" type="Texture" id=134]
[ext_resource path="res://cubio/norm-u-0013.png" type="Texture" id=135]
[ext_resource path="res://cubio/norm-u-0014.png" type="Texture" id=136]
[ext_resource path="res://cubio/norm-u-0015.png" type="Texture" id=137]
[ext_resource path="res://cubio/norm-u-0016.png" type="Texture" id=138]
[ext_resource path="res://cubio/norm-u-0017.png" type="Texture" id=139]
[ext_resource path="res://cubio/norm-u-0018.png" type="Texture" id=140]
[ext_resource path="res://cubio/norm-u-0019.png" type="Texture" id=141]
[ext_resource path="res://cubio/norm-u-0020.png" type="Texture" id=142]
[ext_resource path="res://cubio/norm-ul-0001.png" type="Texture" id=143]
[ext_resource path="res://cubio/norm-ul-0002.png" type="Texture" id=144]
[ext_resource path="res://cubio/norm-ul-0003.png" type="Texture" id=145]
[ext_resource path="res://cubio/norm-ul-0004.png" type="Texture" id=146]
[ext_resource path="res://cubio/norm-ul-0005.png" type="Texture" id=147]
[ext_resource path="res://cubio/norm-ul-0006.png" type="Texture" id=148]
[ext_resource path="res://cubio/norm-ul-0007.png" type="Texture" id=149]
[ext_resource path="res://cubio/norm-ul-0008.png" type="Texture" id=150]
[ext_resource path="res://cubio/norm-ul-0009.png" type="Texture" id=151]
[ext_resource path="res://cubio/norm-ul-0010.png" type="Texture" id=152]
[ext_resource path="res://cubio/norm-ul-0011.png" type="Texture" id=153]
[ext_resource path="res://cubio/norm-ul-0012.png" type="Texture" id=154]
[ext_resource path="res://cubio/norm-ul-0013.png" type="Texture" id=155]
[ext_resource path="res://cubio/norm-ul-0014.png" type="Texture" id=156]
[ext_resource path="res://cubio/norm-ul-0015.png" type="Texture" id=157]
[ext_resource path="res://cubio/norm-ul-0016.png" type="Texture" id=158]
[ext_resource path="res://cubio/norm-ul-0017.png" type="Texture" id=159]
[ext_resource path="res://cubio/norm-ul-0018.png" type="Texture" id=160]
[ext_resource path="res://cubio/norm-ul-0019.png" type="Texture" id=161]
[ext_resource path="res://cubio/norm-ul-0020.png" type="Texture" id=162]
[ext_resource path="res://light2.png" type="Texture" id=163]
[ext_resource path="res://shadow_blob.png" type="Texture" id=164]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 20.0
[sub_resource type="SpriteFrames" id=2]
frames = [ ExtResource( 3 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 19 ), ExtResource( 20 ), ExtResource( 21 ), ExtResource( 22 ), ExtResource( 23 ), ExtResource( 24 ), ExtResource( 25 ), ExtResource( 26 ), ExtResource( 27 ), ExtResource( 28 ), ExtResource( 29 ), ExtResource( 30 ), ExtResource( 31 ), ExtResource( 32 ), ExtResource( 33 ), ExtResource( 34 ), ExtResource( 35 ), ExtResource( 36 ), ExtResource( 37 ), ExtResource( 38 ), ExtResource( 39 ), ExtResource( 40 ), ExtResource( 41 ), ExtResource( 42 ), ExtResource( 43 ), ExtResource( 44 ), ExtResource( 45 ), ExtResource( 46 ), ExtResource( 47 ), ExtResource( 48 ), ExtResource( 49 ), ExtResource( 50 ), ExtResource( 51 ), ExtResource( 52 ), ExtResource( 53 ), ExtResource( 54 ), ExtResource( 55 ), ExtResource( 56 ), ExtResource( 57 ), ExtResource( 58 ), ExtResource( 59 ), ExtResource( 60 ), ExtResource( 61 ), ExtResource( 62 ), ExtResource( 63 ), ExtResource( 64 ), ExtResource( 65 ), ExtResource( 66 ), ExtResource( 67 ), ExtResource( 68 ), ExtResource( 69 ), ExtResource( 70 ), ExtResource( 71 ), ExtResource( 72 ), ExtResource( 73 ), ExtResource( 74 ), ExtResource( 75 ), ExtResource( 76 ), ExtResource( 77 ), ExtResource( 78 ), ExtResource( 79 ), ExtResource( 80 ), ExtResource( 81 ), ExtResource( 82 ), ExtResource( 83 ), ExtResource( 84 ), ExtResource( 85 ), ExtResource( 86 ), ExtResource( 87 ), ExtResource( 88 ), ExtResource( 89 ), ExtResource( 90 ), ExtResource( 91 ), ExtResource( 92 ), ExtResource( 93 ), ExtResource( 94 ), ExtResource( 95 ), ExtResource( 96 ), ExtResource( 97 ), ExtResource( 98 ), ExtResource( 99 ), ExtResource( 100 ), ExtResource( 101 ), ExtResource( 102 ), ExtResource( 103 ), ExtResource( 104 ), ExtResource( 105 ), ExtResource( 106 ), ExtResource( 107 ), ExtResource( 108 ), ExtResource( 109 ), ExtResource( 110 ), ExtResource( 111 ), ExtResource( 112 ), ExtResource( 113 ), ExtResource( 114 ), ExtResource( 115 ), ExtResource( 116 ), ExtResource( 117 ), ExtResource( 118 ), ExtResource( 119 ), ExtResource( 120 ), ExtResource( 121 ), ExtResource( 122 ), ExtResource( 123 ), ExtResource( 124 ), ExtResource( 125 ), ExtResource( 126 ), ExtResource( 127 ), ExtResource( 128 ), ExtResource( 129 ), ExtResource( 130 ), ExtResource( 131 ), ExtResource( 132 ), ExtResource( 133 ), ExtResource( 134 ), ExtResource( 135 ), ExtResource( 136 ), ExtResource( 137 ), ExtResource( 138 ), ExtResource( 139 ), ExtResource( 140 ), ExtResource( 141 ), ExtResource( 142 ), ExtResource( 143 ), ExtResource( 144 ), ExtResource( 145 ), ExtResource( 146 ), ExtResource( 147 ), ExtResource( 148 ), ExtResource( 149 ), ExtResource( 150 ), ExtResource( 151 ), ExtResource( 152 ), ExtResource( 153 ), ExtResource( 154 ), ExtResource( 155 ), ExtResource( 156 ), ExtResource( 157 ), ExtResource( 158 ), ExtResource( 159 ), ExtResource( 160 ), ExtResource( 161 ), ExtResource( 162 ) ]
[sub_resource type="Animation" id=3]
resource/name = "bottom"
length = 0.95
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("frames:frame")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 ] }
[sub_resource type="Animation" id=4]
length = 0.95
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("frames:frame")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ] }
[sub_resource type="Animation" id=5]
length = 3.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("frames:frame")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45, 1.5, 1.55, 1.6, 1.65, 1.7, 1.75, 1.8, 1.85, 1.9, 1.95, 2, 2.05, 2.1, 2.15, 2.2, 2.25, 2.3, 2.35, 2.4, 2.45, 2.5, 2.55, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59 ] }
[sub_resource type="Animation" id=6]
length = 0.95
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("frames:frame")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119 ] }
[sub_resource type="Animation" id=7]
length = 0.95
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("frames:frame")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139 ] }
[sub_resource type="Animation" id=8]
length = 0.95
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("frames:frame")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159 ] }
[node name="cubio" type="KinematicBody2D"]
visibility/light_mask = 2
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, -0.397217, -9.30363 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.08
script/script = ExtResource( 1 )
[node name="frames" type="AnimatedSprite" parent="."]
material/material = ExtResource( 2 )
frames = SubResource( 2 )
frame = 140
offset = Vector2( 0.397217, -52.4323 )
[node name="shape" type="CollisionShape2D" parent="."]
transform/pos = Vector2( -0.397217, -9.30363 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="camera" type="Camera2D" parent="."]
anchor_mode = 1
rotating = false
current = true
zoom = Vector2( 1, 1 )
limit/left = -10000000
limit/top = -10000000
limit/right = 10000000
limit/bottom = 10000000
drag_margin/h_enabled = true
drag_margin/v_enabled = true
smoothing/enable = false
smoothing/speed = 5.0
drag_margin/left = 0.2
drag_margin/top = 0.2
drag_margin/right = 0.2
drag_margin/bottom = 0.2
[node name="anim" type="AnimationPlayer" parent="."]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/bottom = SubResource( 3 )
anims/bottom_left = SubResource( 4 )
anims/idle = SubResource( 5 )
anims/left = SubResource( 6 )
anims/top = SubResource( 7 )
anims/top_left = SubResource( 8 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "idle"
[node name="Light2D" type="Light2D" parent="."]
transform/pos = Vector2( -0.140442, 2.64355 )
enabled = true
texture = ExtResource( 163 )
offset = Vector2( 0, 0 )
scale = 8.0
color = Color( 1, 1, 1, 1 )
energy = 1.0
mode = 0
range/height = 100.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 3
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="Sprite" type="Sprite" parent="."]
visibility/opacity = 0.3
texture = ExtResource( 164 )
offset = Vector2( 0, -5.72164 )

View File

@ -1,7 +1,7 @@
[application]
name="Isometric 2D + Lighting"
main_scene="res://map.scn"
main_scene="res://map.tscn"
icon="res://icon.png"
[input]

View File

@ -0,0 +1,14 @@
[gd_resource type="CanvasItemMaterial" load_steps=3 format=1]
[ext_resource path="res://faceNormal.png" type="Texture" id=1]
[sub_resource type="CanvasItemShader" id=1]
_code = { "fragment":"// just pass the normal\n\nuniform texture normal;\nvec2 ywnormal=tex( normal,UV).wy * vec2(2.0,2.0) - vec2(1.0,1.0);\nNORMAL=vec3(ywnormal,sqrt(1 - (ywnormal.x * ywnormal.x) - (ywnormal.y * ywnormal.y) ));\n\n", "fragment_ofs":0, "light":"//the tile half size in pixels\nvec2 tile_vec=vec2(140,70);\nfloat z_scale = 1.0;\n//compute a 3D postion fot thelight\nvec3 light_3d = vec3(-LIGHT_VEC.x,LIGHT_HEIGHT,LIGHT_VEC.y);\n\n//rotate the normal map to the same coordinates as the pseudo 3d ponit\n//this could be optimized\nfloat r = asin(tile_vec.y/tile_vec.x);\nmat3 rot_mat = mat3( vec3(1,0,0), vec3(0,cos(r),-sin(r)), vec3(0,sin(r),cos(r)));\nvec3 n = rot_mat * NORMAL;\nn.y=-n.y;\n\n//compute diffuse light\nfloat dp = max(dot(normalize(n),-normalize(light_3d)),0);\nLIGHT=vec4(vec3(dp),1.0)*COLOR*LIGHT_COLOR;\n", "light_ofs":0, "vertex":"//pass the x1 in local sprite coordinates.\n//the sprite center (small red cross) is 0,0\nVAR1.xy=SRC_VERTEX;", "vertex_ofs":0 }
[resource]
shader/shader = SubResource( 1 )
shader/shading_mode = 0
shader_param/normal = ExtResource( 1 )

Binary file not shown.

View File

@ -0,0 +1,261 @@
[gd_scene load_steps=10 format=1]
[ext_resource path="res://map.gd" type="Script" id=1]
[ext_resource path="res://tileset.tres" type="TileSet" id=2]
[ext_resource path="res://cubio.tscn" type="PackedScene" id=3]
[ext_resource path="res://torch.tscn" type="PackedScene" id=4]
[ext_resource path="res://column.tscn" type="PackedScene" id=5]
[ext_resource path="res://cubio/idle0001.png" type="Texture" id=6]
[ext_resource path="res://light2.png" type="Texture" id=7]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 100.0
[sub_resource type="CanvasItemMaterial" id=2]
shader/shading_mode = 1
[node name="node" type="Node2D"]
transform/pos = Vector2( -0.735077, -20.5826 )
script/script = ExtResource( 1 )
[node name="floor_map" type="TileMap" parent="."]
mode = 1
tile_set = ExtResource( 2 )
cell/size = Vector2( 192, 88 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 1
cell/y_sort = true
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( -1900531, 0, -1900530, 1, -1900529, 0, -1900528, 0, -1900527, 0, -1834995, 0, -1834994, 0, -1834993, 0, -1834992, 1, -1834991, 0, -1769459, 0, -1769458, 0, -1769457, 0, -1769456, 1, -1769455, 0, -1703923, 0, -1703922, 0, -1703921, 0, -1703920, 0, -1703919, 1, -1638387, 0, -1638386, 0, -1638385, 0, -1638384, 0, -1638383, 0, -1572855, 0, -1572854, 0, -1572853, 0, -1572852, 0, -1572851, 0, -1572850, 0, -1572849, 1, -1572848, 0, -1572847, 0, -1507319, 0, -1507318, 0, -1507317, 0, -1507316, 0, -1507315, 1, -1507314, 1, -1507313, 1, -1507312, 0, -1507311, 0, -1441783, 0, -1441782, 0, -1441781, 0, -1441780, 0, -1441779, 0, -1441778, 0, -1441777, 0, -1441776, 0, -1441775, 0, -1376247, 0, -1376246, 0, -1376245, 0, -1376244, 0, -1310711, 1, -1310710, 0, -1310709, 0, -1310708, 0, -1245175, 0, -1245174, 0, -1245173, 0, -1245172, 0, -1179639, 0, -1179638, 0, -1179637, 1, -1179636, 0, -1114103, 0, -1114102, 0, -1114101, 0, -1114100, 0, -1048567, 0, -1048566, 0, -1048565, 0, -1048564, 0, -983031, 0, -983030, 0, -983029, 0, -983028, 0, -917495, 0, -917494, 1, -917493, 1, -917492, 0, -851959, 0, -851958, 0, -851957, 0, -851956, 0, -786423, 0, -786422, 0, -786421, 0, -786420, 0, -720894, 0, -720893, 0, -720892, 0, -720891, 0, -720890, 0, -720889, 0, -720888, 0, -720887, 0, -720886, 0, -720885, 0, -720884, 0, -720883, 0, -720882, 0, -720881, 0, -655358, 0, -655357, 0, -655356, 0, -655355, 0, -655354, 0, -655353, 0, -655352, 0, -655351, 0, -655350, 0, -655349, 0, -655348, 0, -655347, 0, -655346, 0, -655345, 0, -589822, 0, -589821, 0, -589820, 0, -589819, 0, -589818, 0, -589817, 0, -589816, 0, -589815, 0, -589814, 0, -589813, 0, -589812, 0, -589811, 0, -589810, 0, -589809, 0, -524286, 0, -524285, 0, -524284, 1, -524283, 0, -524282, 0, -524281, 0, -524280, 0, -524279, 1, -524278, 1, -524277, 1, -524276, 1, -524275, 0, -524274, 0, -524273, 0, -458750, 0, -458749, 0, -458748, 1, -458747, 0, -458746, 0, -458745, 0, -458744, 0, -458743, 0, -458742, 0, -458741, 0, -458740, 0, -458739, 0, -458738, 1, -458737, 0, -393214, 0, -393213, 0, -393212, 0, -393211, 0, -393210, 0, -393209, 0, -393208, 0, -393207, 0, -393206, 0, -393205, 0, -393204, 0, -393203, 0, -393202, 0, -393201, 0, -262149, 0, -262148, 0, -262147, 0, -262146, 0, -262145, 0, -327680, 0, -327679, 0, -327678, 0, -327677, 0, -327676, 0, -327675, 0, -196613, 0, -196612, 0, -196611, 0, -196610, 0, -196609, 0, -262144, 0, -262143, 0, -262142, 0, -262141, 0, -262140, 0, -262139, 0, -131077, 0, -131076, 0, -131075, 0, -131074, 0, -131073, 0, -196608, 0, -196607, 0, -196606, 0, -196605, 0, -196604, 0, -196603, 0, -65541, 0, -65540, 0, -65539, 0, -65538, 0, -65537, 0, -131072, 0, -131071, 0, -131070, 0, -131069, 1, -131068, 0, -131067, 0, -5, 0, -4, 0, -3, 0, -2, 0, -1, 0, -65536, 0, -65535, 0, -65534, 0, -65533, 0, -65532, 1, -65531, 0, 65531, 0, 65532, 1, 65533, 0, 65534, 0, 65535, 1, 0, 0, 1, 0, 2, 0, 3, 0, 4, 1, 5, 0, 131067, 0, 131068, 1, 131069, 0, 131070, 0, 131071, 0, 65536, 0, 65537, 0, 65538, 0, 65539, 0, 65540, 0, 65541, 0, 196603, 0, 196604, 0, 196605, 0, 196606, 1, 196607, 0, 131072, 0, 131073, 0, 131074, 0, 131075, 0, 131076, 1, 131077, 0, 262139, 0, 262140, 0, 262141, 0, 262142, 0, 262143, 0, 196608, 0, 196609, 0, 196610, 0, 196611, 0, 196612, 0, 196613, 0, 327676, 0, 327677, 0, 327678, 0, 327679, 0, 262144, 0, 262145, 0, 262146, 0, 262147, 0, 262148, 0, 262149, 0 )
[node name="wall_map" type="TileMap" parent="."]
mode = 1
tile_set = ExtResource( 2 )
cell/size = Vector2( 94, 43 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 1
cell/y_sort = true
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( -3801060, 5, -3801059, 10, -3801058, 10, -3801057, 10, -3801056, 10, -3801055, 10, -3801054, 10, -3801053, 10, -3801052, 536870916, -3735524, 9, -3735516, 7, -3669988, 9, -3669980, 7, -3604452, 9, -3604444, 7, -3538916, 9, -3538908, 7, -3473380, 9, -3473372, 7, -3407844, 9, -3407836, 7, -3342308, 9, -3342300, 7, -3276772, 9, -3276764, 7, -3211236, 9, -3211228, 7, -3145709, 5, -3145708, 10, -3145707, 10, -3145706, 10, -3145705, 10, -3145704, 10, -3145703, 10, -3145702, 10, -3145701, 10, -3145692, 7, -3080173, 9, -3080156, 7, -3014637, 9, -3014634, 2, -3014620, 7, -2949101, 2, -2949084, 7, -2883565, 9, -2883558, 8, -2883557, 8, -2883556, 8, -2883555, 8, -2883554, 8, -2883553, 8, -2883552, 8, -2883551, 8, -2883550, 8, -2883549, 8, -2883548, 6, -2818029, 9, -2818023, 7, -2752493, 9, -2752487, 7, -2686957, 9, -2686955, 2, -2686951, 7, -2621421, 9, -2621415, 7, -2555885, 9, -2555879, 2, -2490349, 2, -2490343, 7, -2424813, 9, -2424807, 7, -2359277, 9, -2359274, 2, -2359271, 7, -2293741, 9, -2293735, 7, -2228205, 4, -2228199, 7, -2162669, 9, -2162668, 10, -2162667, 536870916, -2162663, 7, -2097133, 8, -2097132, 8, -2097131, 6, -2097127, 7, -2031597, 9, -2031591, 7, -1966061, 9, -1966055, 7, -1900525, 9, -1900519, 7, -1834989, 9, -1834986, 8, -1834985, 8, -1834984, 8, -1834983, 7, -1769453, 9, -1769450, 7, -1769447, 7, -1703917, 9, -1703916, 8, -1703915, 8, -1703914, 8, -1703911, 7, -1638381, 9, -1638375, 7, -1572845, 9, -1572839, 7, -1507309, 9, -1507303, 7, -1441787, 5, -1441786, 10, -1441785, 10, -1441784, 10, -1441783, 10, -1441782, 10, -1441781, 10, -1441780, 10, -1441779, 10, -1441778, 10, -1441777, 10, -1441776, 10, -1441775, 10, -1441774, 10, -1441766, 10, -1441765, 10, -1441764, 10, -1441763, 10, -1441762, 10, -1441761, 536870916, -1376251, 9, -1376225, 7, -1310715, 9, -1310689, 7, -1245179, 9, -1245153, 7, -1179643, 9, -1179617, 7, -1114107, 9, -1114081, 7, -1048571, 9, -1048545, 7, -983035, 9, -983009, 7, -917499, 9, -917473, 7, -851963, 9, -851937, 7, -786427, 9, -786401, 7, -720891, 9, -720884, 8, -720883, 8, -720882, 8, -720881, 8, -720880, 8, -720879, 8, -720878, 8, -720877, 8, -720876, 8, -720875, 8, -720874, 8, -720873, 8, -720872, 8, -720871, 8, -720870, 8, -720869, 8, -720868, 8, -720867, 8, -720866, 8, -720865, 6, -589834, 5, -589833, 10, -589832, 10, -589831, 10, -589830, 10, -589829, 10, -589828, 10, -589827, 10, -589826, 10, -589825, 10, -655360, 10, -655359, 10, -655358, 10, -655357, 10, -655356, 10, -655349, 7, -524298, 9, -589813, 7, -458762, 9, -524277, 7, -393226, 9, -458741, 7, -327690, 9, -393205, 7, -262154, 9, -262150, 5, -262149, 10, -262148, 10, -262147, 10, -262146, 10, -262145, 10, -327680, 10, -327679, 10, -327678, 10, -327677, 10, -327676, 3, -327669, 7, -196618, 9, -196614, 9, -262140, 7, -262133, 7, -131082, 9, -131078, 9, -196604, 7, -196597, 7, -65546, 9, -65542, 9, -131068, 7, -131061, 7, -10, 9, -6, 4, -5, 8, -4, 8, -3, 8, -2, 8, -65535, 8, -65534, 8, -65533, 8, -65532, 6, -65525, 7, 65526, 9, 11, 7, 131062, 9, 65547, 7, 196598, 9, 131083, 7, 262134, 9, 196619, 7, 327670, 9, 262155, 7, 393206, 9, 327691, 7, 458742, 9, 393227, 7, 524278, 4, 524279, 8, 458763, 7, 589816, 9, 524299, 7, 655352, 4, 655353, 8, 655354, 8, 655355, 8, 655356, 8, 655357, 8, 655358, 8, 655359, 8, 589824, 8, 589825, 8, 589826, 8, 589827, 8, 589828, 8, 589829, 8, 589830, 8, 589831, 8, 589832, 8, 589833, 8, 589834, 8, 589835, 6 )
__meta__ = { "_editor_collapsed":true }
[node name="cubio" parent="wall_map" instance=ExtResource( 3 )]
transform/pos = Vector2( -184.284, 6.7328 )
collision/margin = 0.08
[node name="toch" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( -42.0531, -74.8855 )
[node name="toch1" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 96.0294, -19.8329 )
[node name="toch2" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 954.802, -147.456 )
[node name="toch3" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 1247.08, 42.9454 )
[node name="toch4" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 1257.11, -167.498 )
[node name="toch5" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 1632.9, -73.9674 )
[node name="toch6" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 1566.09, 113.093 )
[node name="toch7" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 1935.2, 64.6577 )
[node name="toch8" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 2000.34, 258.399 )
[node name="toch9" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 3738.07, -328.247 )
[node name="toch10" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 4034.17, -585.483 )
[node name="toch11" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 4261.79, -472.595 )
[node name="toch12" parent="wall_map" instance=ExtResource( 4 )]
transform/pos = Vector2( 4006.41, -479.998 )
[node name="column" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( -122.203, 119.689 )
[node name="column1" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 95.2993, 99.8337 )
[node name="column2" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 138.619, 246.039 )
[node name="column3" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 324.534, 82.6862 )
[node name="column4" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1046.53, -175.429 )
[node name="column5" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1347.07, -179.039 )
[node name="column6" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1184.62, -261.166 )
[node name="column7" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1520.35, -139.329 )
[node name="column8" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1409.34, 25.8286 )
[node name="column9" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1804.63, -13.8814 )
[node name="column10" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 1782.97, 170.229 )
[node name="column11" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 2223.9, 158.537 )
[node name="column12" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 3744.95, -480.43 )
[node name="column13" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 3838.62, -526.042 )
[node name="column14" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 3937.17, -573.283 )
[node name="column15" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 4123.69, -474.728 )
[node name="column16" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 4027.58, -427.487 )
[node name="column17" parent="wall_map" instance=ExtResource( 5 )]
transform/pos = Vector2( 3935.54, -377.802 )
[node name="prince_area" type="Area2D" parent="wall_map"]
transform/pos = Vector2( 4133.07, -561.046 )
input/pickable = true
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, -37.4897 )
shapes/0/trigger = false
gravity_vec = Vector2( 0, 1 )
gravity = 98.0
linear_damp = 0.1
angular_damp = 1.0
[node name="prince" type="Sprite" parent="wall_map/prince_area"]
material/material = SubResource( 2 )
texture = ExtResource( 6 )
offset = Vector2( -1.10803, -49.8615 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="wall_map/prince_area"]
transform/pos = Vector2( 0, -37.4897 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="Light2D" type="Light2D" parent="."]
transform/pos = Vector2( -191.788, 32.4743 )
enabled = true
texture = ExtResource( 7 )
offset = Vector2( 0, 0 )
scale = 8.0
color = Color( 1, 1, 1, 1 )
energy = 1.0
mode = 0
range/height = 60.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="CanvasModulate" type="CanvasModulate" parent="."]
color = Color( 0.361304, 0.36638, 0.384393, 1 )
[node name="message" type="Label" parent="."]
visibility/visible = false
material/material = SubResource( 2 )
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 4067.0
margin/top = -597.0
margin/right = 4200.0
margin/bottom = -571.0
text = "Thank You Cubio!\nYou saved The Prince!"
align = 1
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[connection signal="body_enter" from="wall_map/prince_area" to="." method="_on_prince_area_body_enter"]

Binary file not shown.

View File

@ -0,0 +1,172 @@
[gd_scene load_steps=10 format=1]
[ext_resource path="res://shoot.gd" type="Script" id=1]
[ext_resource path="res://energy.png" type="Texture" id=2]
[ext_resource path="res://shoot_halo.png" type="Texture" id=3]
[sub_resource type="CircleShape2D" id=1]
custom_solver_bias = 0.0
radius = 10.0
[sub_resource type="CanvasItemMaterial" id=2]
shader/shading_mode = 0
[sub_resource type="Animation" id=3]
length = 1.0
loop = false
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("explosion:config/emitting")
tracks/0/interp = 1
tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.3 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] }
tracks/1/type = "value"
tracks/1/path = NodePath("Sprite:visibility/opacity")
tracks/1/interp = 1
tracks/1/keys = { "cont":true, "times":FloatArray( 0, 0.2 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] }
tracks/2/type = "value"
tracks/2/path = NodePath("energy1:config/emitting")
tracks/2/interp = 1
tracks/2/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] }
tracks/3/type = "value"
tracks/3/path = NodePath("light:color")
tracks/3/interp = 1
tracks/3/keys = { "cont":true, "times":FloatArray( 0, 0.5 ), "transitions":FloatArray( 1, 1 ), "values":[ Color( 1, 3, 2, 1 ), Color( 0, 0, 0, 0 ) ] }
tracks/4/type = "method"
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/keys = { "times":FloatArray( 0.9 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] }
[sub_resource type="Animation" id=4]
length = 1.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:transform/rot")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 1 ), "transitions":FloatArray( 1, 1 ), "values":[ 0.0, 360.0 ] }
[sub_resource type="ColorRamp" id=5]
offsets = FloatArray( 0, 1 )
colors = ColorArray( 1, 1, 1, 1, 1, 0.617074, 0.704795, 0.0653235 )
[sub_resource type="ColorRamp" id=6]
offsets = FloatArray( 0, 1 )
colors = ColorArray( 1, 1, 1, 1, 1, 0.617074, 0.704795, 0.0653235 )
[node name="shoot" type="KinematicBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.08
script/script = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
material/material = SubResource( 2 )
transform/pos = Vector2( -1.46303, -58.521 )
texture = ExtResource( 2 )
[node name="anim" type="AnimationPlayer" parent="."]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/explode = SubResource( 3 )
anims/spin = SubResource( 4 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = ""
[node name="light" type="Light2D" parent="."]
enabled = true
texture = ExtResource( 3 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 1, 3, 2, 1 )
energy = 1.0
mode = 0
range/height = 80.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="shape" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1
[node name="energy1" type="Particles2D" parent="."]
visibility/blend_mode = 1
transform/pos = Vector2( -1.06581, -61.3015 )
config/amount = 32
config/lifetime = 0.6
config/local_space = false
config/texture = ExtResource( 2 )
params/direction = 0.0
params/spread = 180.0
params/linear_velocity = 60.0
params/spin_velocity = 0.0
params/orbit_velocity = 0.0
params/gravity_direction = 0.0
params/gravity_strength = 9.8
params/radial_accel = 0.0
params/tangential_accel = 0.0
params/damping = 0.0
params/initial_angle = 0.0
params/initial_size = 0.8
params/final_size = 0.1
params/hue_variation = 0.0
params/anim_speed_scale = 1.0
params/anim_initial_pos = 0.0
color/color_ramp = SubResource( 5 )
[node name="explosion" type="Particles2D" parent="."]
visibility/blend_mode = 1
transform/pos = Vector2( -1.06581, -61.3015 )
config/amount = 32
config/lifetime = 0.6
config/emitting = false
config/local_space = false
config/explosiveness = 0.1
config/texture = ExtResource( 2 )
params/direction = 0.0
params/spread = 180.0
params/linear_velocity = 200.0
params/spin_velocity = 0.0
params/orbit_velocity = 0.0
params/gravity_direction = 0.0
params/gravity_strength = 200.0
params/radial_accel = 0.0
params/tangential_accel = 0.0
params/damping = 0.0
params/initial_angle = 0.0
params/initial_size = 0.8
params/final_size = 0.1
params/hue_variation = 0.0
params/anim_speed_scale = 1.0
params/anim_initial_pos = 0.0
color/color_ramp = SubResource( 6 )

Binary file not shown.

View File

@ -0,0 +1,216 @@
[gd_resource type="TileSet" load_steps=22 format=1]
[ext_resource path="res://floor_shader.tres" type="CanvasItemMaterial" id=1]
[ext_resource path="res://faceColor.png" type="Texture" id=2]
[ext_resource path="res://wall_shader.tres" type="CanvasItemMaterial" id=3]
[sub_resource type="OccluderPolygon2D" id=1]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, -22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=2]
custom_solver_bias = 0.0
points = Vector2Array( 48, 0, 0, -22, 0, -44, 48, -22 )
[sub_resource type="OccluderPolygon2D" id=3]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, 22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=4]
custom_solver_bias = 0.0
points = Vector2Array( -48, 0, 0, -22, 48, 0, 0, 22 )
[sub_resource type="OccluderPolygon2D" id=5]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, -22, 48, 0, 0, 22 )
[sub_resource type="ConvexPolygonShape2D" id=6]
custom_solver_bias = 0.0
points = Vector2Array( 48, 0, 0, 22, 0, -22 )
[sub_resource type="OccluderPolygon2D" id=7]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, -22, -48, 0, 0, 22 )
[sub_resource type="ConvexPolygonShape2D" id=8]
custom_solver_bias = 0.0
points = Vector2Array( -48, 0, 0, -22, 0, 22 )
[sub_resource type="OccluderPolygon2D" id=9]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, -22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=10]
custom_solver_bias = 0.0
points = Vector2Array( 0, -22, 48, 0, -48, 0 )
[sub_resource type="OccluderPolygon2D" id=11]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, 22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=12]
custom_solver_bias = 0.0
points = Vector2Array( 48, 0, 0, 22, -48, 0 )
[sub_resource type="OccluderPolygon2D" id=13]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, 22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=14]
custom_solver_bias = 0.0
points = Vector2Array( 0, 22, 0, 0, 48, -22, 48, 0 )
[sub_resource type="OccluderPolygon2D" id=15]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, 22 )
[sub_resource type="ConvexPolygonShape2D" id=16]
custom_solver_bias = 0.0
points = Vector2Array( -48, -22, 0, 0, 0, 22, -48, 0 )
[sub_resource type="OccluderPolygon2D" id=17]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, -22 )
[sub_resource type="ConvexPolygonShape2D" id=18]
custom_solver_bias = 0.0
points = Vector2Array( 0, -44, 0, -22, -48, 0, -48, -22 )
[resource]
0/name = "floor1"
0/texture = ExtResource( 2 )
0/tex_offset = Vector2( 0, 28 )
0/material = ExtResource( 1 )
0/region = Rect2( 311, 760, 197, 151 )
0/occluder_offset = Vector2( 98.5, 75.5 )
0/navigation_offset = Vector2( 98.5, 75.5 )
0/shape_offset = Vector2( 0, 0 )
0/shapes = [ ]
1/name = "floor2"
1/texture = ExtResource( 2 )
1/tex_offset = Vector2( 0, 28 )
1/material = ExtResource( 1 )
1/region = Rect2( 591, 772, 197, 151 )
1/occluder_offset = Vector2( 98.5, 75.5 )
1/navigation_offset = Vector2( 98.5, 75.5 )
1/shape_offset = Vector2( 0, 0 )
1/shapes = [ ]
2/name = "block"
2/texture = ExtResource( 2 )
2/tex_offset = Vector2( 0, -60 )
2/material = ExtResource( 3 )
2/region = Rect2( 844, 527, 138, 180 )
2/occluder_offset = Vector2( 69, 90 )
2/occluder = SubResource( 3 )
2/navigation_offset = Vector2( 69, 90 )
2/shape_offset = Vector2( 69, 90 )
2/shapes = [ SubResource( 4 ) ]
3/name = "q_right"
3/texture = ExtResource( 2 )
3/tex_offset = Vector2( 0, -60 )
3/material = ExtResource( 3 )
3/region = Rect2( 665, 528, 139, 178 )
3/occluder_offset = Vector2( 69.5, 89 )
3/occluder = SubResource( 5 )
3/navigation_offset = Vector2( 69.5, 89 )
3/shape_offset = Vector2( 69.5, 89 )
3/shapes = [ SubResource( 6 ) ]
4/name = "q_left"
4/texture = ExtResource( 2 )
4/tex_offset = Vector2( 0, -60 )
4/material = ExtResource( 3 )
4/region = Rect2( 292, 528, 139, 178 )
4/occluder_offset = Vector2( 69.5, 89 )
4/occluder = SubResource( 7 )
4/navigation_offset = Vector2( 69.5, 89 )
4/shape_offset = Vector2( 69.5, 89 )
4/shapes = [ SubResource( 8 ) ]
5/name = "q_top"
5/texture = ExtResource( 2 )
5/tex_offset = Vector2( 0, -60 )
5/material = ExtResource( 3 )
5/region = Rect2( 479, 528, 139, 178 )
5/occluder_offset = Vector2( 69.5, 89 )
5/occluder = SubResource( 9 )
5/navigation_offset = Vector2( 69.5, 89 )
5/shape_offset = Vector2( 69.5, 89 )
5/shapes = [ SubResource( 10 ) ]
6/name = "q_bottom"
6/texture = ExtResource( 2 )
6/tex_offset = Vector2( 0, -60 )
6/material = ExtResource( 3 )
6/region = Rect2( 103, 528, 139, 178 )
6/occluder_offset = Vector2( 69.5, 89 )
6/occluder = SubResource( 11 )
6/navigation_offset = Vector2( 69.5, 89 )
6/shape_offset = Vector2( 69.5, 89 )
6/shapes = [ SubResource( 12 ) ]
7/name = "s_right_bottom"
7/texture = ExtResource( 2 )
7/tex_offset = Vector2( 0, -62 )
7/material = ExtResource( 3 )
7/region = Rect2( 480, 350, 139, 178 )
7/occluder_offset = Vector2( 69.5, 89 )
7/occluder = SubResource( 13 )
7/navigation_offset = Vector2( 69.5, 89 )
7/shape_offset = Vector2( 69.5, 89 )
7/shapes = [ SubResource( 14 ) ]
8/name = "s_left_bottom"
8/texture = ExtResource( 2 )
8/tex_offset = Vector2( 0, -62 )
8/material = ExtResource( 3 )
8/region = Rect2( 665, 350, 139, 178 )
8/occluder_offset = Vector2( 69.5, 89 )
8/occluder = SubResource( 15 )
8/navigation_offset = Vector2( 69.5, 89 )
8/shape_offset = Vector2( 69.5, 89 )
8/shapes = [ SubResource( 16 ) ]
9/name = "s_left_top"
9/texture = ExtResource( 2 )
9/tex_offset = Vector2( 0, -62 )
9/material = ExtResource( 3 )
9/region = Rect2( 292, 350, 139, 178 )
9/occluder_offset = Vector2( 69.5, 89 )
9/occluder = SubResource( 17 )
9/navigation_offset = Vector2( 69.5, 89 )
9/shape_offset = Vector2( 69.5, 89 )
9/shapes = [ SubResource( 18 ) ]
10/name = "s_right_top"
10/texture = ExtResource( 2 )
10/tex_offset = Vector2( -12, -62 )
10/material = ExtResource( 3 )
10/region = Rect2( 842, 350, 139, 178 )
10/occluder_offset = Vector2( 69.5, 89 )
10/occluder = SubResource( 1 )
10/navigation_offset = Vector2( 69.5, 89 )
10/shape_offset = Vector2( 69.5, 89 )
10/shapes = [ SubResource( 2 ) ]

View File

@ -0,0 +1,446 @@
[gd_scene load_steps=22 format=1]
[ext_resource path="res://floor_shader.tres" type="CanvasItemMaterial" id=1]
[ext_resource path="res://faceColor.png" type="Texture" id=2]
[ext_resource path="res://wall_shader.tres" type="CanvasItemMaterial" id=3]
[sub_resource type="ConvexPolygonShape2D" id=1]
custom_solver_bias = 0.0
points = Vector2Array( -48, 0, 0, -22, 48, 0, 0, 22 )
[sub_resource type="OccluderPolygon2D" id=2]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, 22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=3]
custom_solver_bias = 0.0
points = Vector2Array( 48, 0, 0, 22, 0, -22 )
[sub_resource type="OccluderPolygon2D" id=4]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, -22, 48, 0, 0, 22 )
[sub_resource type="ConvexPolygonShape2D" id=5]
custom_solver_bias = 0.0
points = Vector2Array( -48, 0, 0, -22, 0, 22 )
[sub_resource type="OccluderPolygon2D" id=6]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, -22, -48, 0, 0, 22 )
[sub_resource type="ConvexPolygonShape2D" id=7]
custom_solver_bias = 0.0
points = Vector2Array( 0, -22, 48, 0, -48, 0 )
[sub_resource type="OccluderPolygon2D" id=8]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, -22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=9]
custom_solver_bias = 0.0
points = Vector2Array( 48, 0, 0, 22, -48, 0 )
[sub_resource type="OccluderPolygon2D" id=10]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, 22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=11]
custom_solver_bias = 0.0
points = Vector2Array( 0, 22, 0, 0, 48, -22, 48, 0 )
[sub_resource type="OccluderPolygon2D" id=12]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, 22, 48, 0 )
[sub_resource type="ConvexPolygonShape2D" id=13]
custom_solver_bias = 0.0
points = Vector2Array( -48, -22, 0, 0, 0, 22, -48, 0 )
[sub_resource type="OccluderPolygon2D" id=14]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, 22 )
[sub_resource type="ConvexPolygonShape2D" id=15]
custom_solver_bias = 0.0
points = Vector2Array( 0, -44, 0, -22, -48, 0, -48, -22 )
[sub_resource type="OccluderPolygon2D" id=16]
closed = false
cull_mode = 0
polygon = Vector2Array( -48, 0, 0, -22 )
[sub_resource type="ConvexPolygonShape2D" id=17]
custom_solver_bias = 0.0
points = Vector2Array( 48, 0, 0, -22, 0, -44, 48, -22 )
[sub_resource type="OccluderPolygon2D" id=18]
closed = false
cull_mode = 0
polygon = Vector2Array( 0, -22, 48, 0 )
[node name="base" type="Node2D"]
[node name="floor1" type="Sprite" parent="."]
material/material = ExtResource( 1 )
transform/pos = Vector2( 140.869, 111.332 )
texture = ExtResource( 2 )
offset = Vector2( 0, 28 )
region = true
region_rect = Rect2( 311, 760, 197, 151 )
[node name="floor2" type="Sprite" parent="."]
material/material = ExtResource( 1 )
transform/pos = Vector2( 372.62, 109.06 )
texture = ExtResource( 2 )
offset = Vector2( 0, 28 )
region = true
region_rect = Rect2( 591, 772, 197, 151 )
[node name="block" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 528, -132 )
texture = ExtResource( 2 )
offset = Vector2( 0, -60 )
region = true
region_rect = Rect2( 844, 527, 138, 180 )
[node name="collision" type="StaticBody2D" parent="block"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="block/collision"]
build_mode = 0
polygon = Vector2Array( 0, -22, 48, 0, 0, 22, -48, 0 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="block"]
occluder = SubResource( 2 )
light_mask = 1
[node name="q_right" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 336, -154 )
texture = ExtResource( 2 )
offset = Vector2( 0, -60 )
region = true
region_rect = Rect2( 665, 528, 139, 178 )
[node name="collision1" type="StaticBody2D" parent="q_right"]
input/pickable = false
shapes/0/shape = SubResource( 3 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="q_right/collision1"]
build_mode = 0
polygon = Vector2Array( 0, -22, 48, 0, 0, 22 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="q_right"]
occluder = SubResource( 4 )
light_mask = 1
[node name="q_left" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 96, -110 )
texture = ExtResource( 2 )
offset = Vector2( 0, -60 )
region = true
region_rect = Rect2( 292, 528, 139, 178 )
[node name="collision1" type="StaticBody2D" parent="q_left"]
input/pickable = false
shapes/0/shape = SubResource( 5 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="q_left/collision1"]
build_mode = 0
polygon = Vector2Array( 0, 22, -48, 0, 0, -22 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="q_left"]
occluder = SubResource( 6 )
light_mask = 1
[node name="q_top" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 288, 0 )
texture = ExtResource( 2 )
offset = Vector2( 0, -60 )
region = true
region_rect = Rect2( 479, 528, 139, 178 )
[node name="collision2" type="StaticBody2D" parent="q_top"]
input/pickable = false
shapes/0/shape = SubResource( 7 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="q_top/collision2"]
build_mode = 0
polygon = Vector2Array( -48, 0, 0, -22, 48, 0 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="q_top"]
occluder = SubResource( 8 )
light_mask = 1
[node name="q_bottom" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 192, -242 )
texture = ExtResource( 2 )
offset = Vector2( 0, -60 )
region = true
region_rect = Rect2( 103, 528, 139, 178 )
[node name="collision3" type="StaticBody2D" parent="q_bottom"]
input/pickable = false
shapes/0/shape = SubResource( 9 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="q_bottom/collision3"]
build_mode = 0
polygon = Vector2Array( -48, 0, 48, 0, 0, 22 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D1" type="LightOccluder2D" parent="q_bottom"]
occluder = SubResource( 10 )
light_mask = 1
[node name="s_right_bottom" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 288, -330 )
texture = ExtResource( 2 )
offset = Vector2( 0, -62 )
region = true
region_rect = Rect2( 480, 350, 139, 178 )
[node name="collision1" type="StaticBody2D" parent="s_right_bottom"]
input/pickable = false
shapes/0/shape = SubResource( 11 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="s_right_bottom/collision1"]
build_mode = 0
polygon = Vector2Array( 0, 22, 48, 0, 48, -22, 0, 0 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="s_right_bottom"]
occluder = SubResource( 12 )
light_mask = 1
[node name="s_left_bottom" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 432, -330 )
texture = ExtResource( 2 )
offset = Vector2( 0, -62 )
region = true
region_rect = Rect2( 665, 350, 139, 178 )
[node name="collision1" type="StaticBody2D" parent="s_left_bottom"]
input/pickable = false
shapes/0/shape = SubResource( 13 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="s_left_bottom/collision1"]
build_mode = 0
polygon = Vector2Array( 0, 22, -48, 0, -48, -22, 0, 0 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="s_left_bottom"]
occluder = SubResource( 14 )
light_mask = 1
[node name="s_left_top" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 528, -330 )
texture = ExtResource( 2 )
offset = Vector2( 0, -62 )
region = true
region_rect = Rect2( 292, 350, 139, 178 )
[node name="collision1" type="StaticBody2D" parent="s_left_top"]
input/pickable = false
shapes/0/shape = SubResource( 15 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="s_left_top/collision1"]
build_mode = 0
polygon = Vector2Array( 0, -22, -48, 0, -48, -22, 0, -44 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="s_left_top"]
occluder = SubResource( 16 )
light_mask = 1
[node name="s_right_top" type="Sprite" parent="."]
material/material = ExtResource( 3 )
transform/pos = Vector2( 576, -330 )
texture = ExtResource( 2 )
offset = Vector2( -12, -62 )
region = true
region_rect = Rect2( 842, 350, 139, 178 )
[node name="collision1" type="StaticBody2D" parent="s_right_top"]
input/pickable = false
shapes/0/shape = SubResource( 17 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="s_right_top/collision1"]
build_mode = 0
polygon = Vector2Array( 0, -22, 0, -44, 48, -22, 48, 0 )
shape_range = Vector2( -1, -1 )
trigger = false
[node name="LightOccluder2D" type="LightOccluder2D" parent="s_right_top"]
occluder = SubResource( 18 )
light_mask = 1
[node name="instructions" type="Label" parent="."]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 0.0
margin/top = 0.0
margin/right = 40.0
margin/bottom = 13.0
text = "This scene is used to edit the tileset.\nSave to the tileset with Scene -> Convert to -> TileSet\nThen, overwrite \"tileset.tres\""
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1

Binary file not shown.

View File

@ -0,0 +1,138 @@
[gd_scene load_steps=9 format=1]
[ext_resource path="res://shadow_blob.png" type="Texture" id=1]
[ext_resource path="res://torch_shader.tres" type="CanvasItemMaterial" id=2]
[ext_resource path="res://faceColor.png" type="Texture" id=3]
[ext_resource path="res://torch_light.png" type="Texture" id=4]
[ext_resource path="res://fire.png" type="Texture" id=5]
[sub_resource type="Animation" id=1]
resource/name = "firecol"
length = 5.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("light:color")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 0.4, 0.6, 1, 1.6, 1.9, 2.3, 2.8, 3, 3.5, 3.9, 4.2, 4.5, 4.8 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ Color( 1, 0.664806, 0.432623, 1 ), Color( 0.648063, 0.341868, 0.308913, 1 ), Color( 0.796534, 0.145722, 0.198635, 1 ), Color( 0.648063, 0.341868, 0.308913, 1 ), Color( 1, 0.664806, 0.432623, 1 ), Color( 0.796534, 0.145722, 0.198635, 1 ), Color( 0.648063, 0.341868, 0.308913, 1 ), Color( 0.796534, 0.145722, 0.198635, 1 ), Color( 1, 0.664806, 0.432623, 1 ), Color( 0.796534, 0.145722, 0.198635, 1 ), Color( 1, 0.664806, 0.432623, 1 ), Color( 0.796534, 0.145722, 0.198635, 1 ), Color( 0.648063, 0.341868, 0.308913, 1 ), Color( 1, 0.664806, 0.432623, 1 ) ] }
[sub_resource type="ColorRamp" id=2]
offsets = FloatArray( 0, 0.2, 0.6, 1 )
colors = ColorArray( 1, 0.658047, 0, 0.175658, 0.741369, 0.262782, 0, 1, 0.210534, 0, 0, 0.608392, 0, 0, 0, 0 )
[sub_resource type="CircleShape2D" id=3]
custom_solver_bias = 0.0
radius = 10.0
[node name="Node2D" type="Node2D"]
[node name="Sprite" type="Sprite" parent="."]
transform/pos = Vector2( 0.880249, 3.08089 )
texture = ExtResource( 1 )
[node name="sprite" type="Sprite" parent="."]
material/material = ExtResource( 2 )
transform/pos = Vector2( 1.95071, 0.487679 )
texture = ExtResource( 3 )
offset = Vector2( 0.0395508, -22.1477 )
region = true
region_rect = Rect2( 817, 271, 42, 54 )
[node name="light" type="Light2D" parent="sprite"]
transform/pos = Vector2( -0.975342, 0.975357 )
enabled = true
texture = ExtResource( 4 )
offset = Vector2( 0, 0 )
scale = 8.0
color = Color( 1, 0.664806, 0.432623, 1 )
energy = 1.0
mode = 0
range/height = 50.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="anim" type="AnimationPlayer" parent="sprite"]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/firecol = SubResource( 1 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "firecol"
[node name="fire" type="Particles2D" parent="."]
visibility/blend_mode = 1
transform/pos = Vector2( 1.08072, -42.4183 )
transform/scale = Vector2( 0.59473, 0.5694 )
config/amount = 12
config/lifetime = 1.0
config/texture = ExtResource( 5 )
params/direction = 180.0
params/spread = 20.0
params/linear_velocity = 100.0
params/spin_velocity = 1.0
params/orbit_velocity = 0.0
params/gravity_direction = 180.0
params/gravity_strength = 9.8
params/radial_accel = 0.0
params/tangential_accel = 0.0
params/damping = 0.0
params/initial_angle = 180.0
params/initial_size = 0.7
params/final_size = 1.0
params/hue_variation = 0.0
params/anim_speed_scale = 1.0
params/anim_initial_pos = 0.0
randomness/spin_velocity = 1.0
randomness/initial_angle = 1.0
color/color_ramp = SubResource( 2 )
[node name="VisibilityEnabler2D" type="VisibilityEnabler2D" parent="."]
transform/pos = Vector2( 1.08071, -50.2535 )
transform/scale = Vector2( 4.29619, 6.51167 )
rect = Rect2( -10, -10, 20, 20 )
enabler/pause_animations = true
enabler/freeze_bodies = true
enabler/pause_particles = true
enabler/process_parent = false
enabler/fixed_process_parent = false
[node name="col" type="StaticBody2D" parent="."]
input/pickable = false
shapes/0/shape = SubResource( 3 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0.880249, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
constant_linear_velocity = Vector2( 0, 0 )
constant_angular_velocity = 0.0
friction = 1.0
bounce = 0.0
[node name="shape" type="CollisionShape2D" parent="col"]
transform/pos = Vector2( 0.880249, 0 )
shape = SubResource( 3 )
trigger = false
_update_shape_index = -1

View File

@ -0,0 +1,14 @@
[gd_resource type="CanvasItemMaterial" load_steps=3 format=1]
[ext_resource path="res://faceNormal.png" type="Texture" id=1]
[sub_resource type="CanvasItemShader" id=1]
_code = { "fragment":"uniform texture normaltex;\nvec4 ntex = tex(normaltex,UV);\nntex.rgb = ntex.rgb * vec3(-2,-2,1) - vec3(-1,-1,0);\nvec2 tile_vec=vec2(47,22);\nfloat r = asin(tile_vec.y / tile_vec.x);\nmat3 rot_mat = mat3( vec3(1,0,0), vec3(0,cos(r),-sin(r)), vec3(0,sin(r),cos(r)));\nNORMAL = rot_mat * ntex.rgb;\n\n\n\n\n", "fragment_ofs":0, "light":"LIGHT_VEC.y=40; //from light towards up, where is the torch\?\nvec3 light_normal = normalize(vec3(LIGHT_VEC,-LIGHT_HEIGHT));\nLIGHT=LIGHT_COLOR*COLOR*max(dot(-light_normal,NORMAL),0.0);\n\n", "light_ofs":0, "vertex":"", "vertex_ofs":0 }
[resource]
shader/shader = SubResource( 1 )
shader/shading_mode = 0
shader_param/normaltex = ExtResource( 1 )

View File

@ -0,0 +1,16 @@
[gd_resource type="CanvasItemMaterial" load_steps=4 format=1]
[ext_resource path="res://faceMask.png" type="Texture" id=1]
[ext_resource path="res://faceNormal.png" type="Texture" id=2]
[sub_resource type="CanvasItemShader" id=1]
_code = { "fragment":"uniform texture normal;\n\nvec2 ywnormal=tex( normal,UV).wy * vec2(2.0,2.0) - vec2(1.0,1.0);\nNORMAL=vec3(ywnormal,sqrt(1 - (ywnormal.x * ywnormal.x) - (ywnormal.y * ywnormal.y) ));\n", "fragment_ofs":0, "light":"// this is the half size of the tile in pixels\n\nvec2 tile_vec=vec2(47,22);\n\n// this mask is used to see which part of the tile is the background (^)\n// or the foregronud (v)\n\nuniform texture bg_mask;\n\nbool behind = tex(bg_mask,UV).a>0.5;\nfloat y_ofs;\n\nif (behind) {\n\t// ^ part\n\t\n\ty_ofs = tile_vec.y*2 - abs(VAR1.x * tile_vec.y / tile_vec.x);\n} else {\n\t// v part\n\t\n\ty_ofs = abs(VAR1.x * tile_vec.y / tile_vec.x);\n}\n\nvec2 point_2d = vec2(VAR1.x,(tile_vec.y - VAR1.y));\n\n// compute a pseudo 3D point for both the light and the texel\n// this makes the normalmap calculation work properly\n\nvec3 point_3d = vec3( point_2d.x, point_2d.y - y_ofs, y_ofs );\nvec3 light_3d = vec3(point_2d.x-LIGHT_VEC.x,LIGHT_HEIGHT,(-(VAR1.y - (LIGHT_VEC.y))+tile_vec.y));\n\n//this could be optimized\n//a rotation matrix is created to convert the normalmap vector\n//to the same coordinate space as our pseudo 3d point and light\n\nfloat r = asin(tile_vec.y / tile_vec.x);\nmat3 rot_mat = mat3( vec3(1,0,0), vec3(0,cos(r),-sin(r)), vec3(0,sin(r),cos(r)));\nvec3 n = rot_mat * NORMAL;\nn.y=-n.y;\n\n//finally compute the dot product. Simple diffuse is computed here,\n//but specular could be added and it will look prettier\n\nfloat dp = max(dot(normalize(n),-normalize(light_3d-point_3d)),0);\nLIGHT=vec4(vec3(dp),1.0)*COLOR*LIGHT_COLOR*3.0;\n\n//finally, after light was cmoputed, make the light \"flat\"\n//this makes the shadows work properly\n//the +2 is added to avoid z-fighting between caster and pseudo 3d coords.\n\nLIGHT_VEC.y+=point_3d.y+2;\n\n", "light_ofs":0, "vertex":"//assign the local vertex coordinates to a varying\n//the center coordinates (0,0) matches the sprite center \n// (shows as a cross when the sprite is selected)\n\nVAR1.xy=SRC_VERTEX;\n", "vertex_ofs":0 }
[resource]
shader/shader = SubResource( 1 )
shader/shading_mode = 0
shader_param/normal = ExtResource( 2 )
shader_param/bg_mask = ExtResource( 1 )

Binary file not shown.

View File

@ -0,0 +1,422 @@
[gd_scene load_steps=19 format=1]
[ext_resource path="res://colworld.gd" type="Script" id=1]
[ext_resource path="res://obstacle.png" type="Texture" id=2]
[ext_resource path="res://player.tscn" type="PackedScene" id=3]
[ext_resource path="res://princess.png" type="Texture" id=4]
[ext_resource path="res://circle.png" type="Texture" id=5]
[ext_resource path="res://long_obstacle.png" type="Texture" id=6]
[sub_resource type="RectangleShape2D" id=1]
custom_solver_bias = 0.0
extents = Vector2( 8, 8 )
[sub_resource type="TileSet" id=2]
0/name = ""
0/texture = ExtResource( 2 )
0/tex_offset = Vector2( 0, 0 )
0/region = Rect2( 0, 0, 0, 0 )
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 8, 8 )
0/shapes = [ SubResource( 1 ) ]
[sub_resource type="RectangleShape2D" id=3]
custom_solver_bias = 0.0
extents = Vector2( 8, 8 )
[sub_resource type="Animation" id=4]
length = 10.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 1, 5, 6 ), "transitions":FloatArray( 1, 1, 1, 1 ), "values":[ Vector2( 184, 152 ), Vector2( 184, 152 ), Vector2( 328.086, 152 ), Vector2( 328.086, 152 ) ] }
[sub_resource type="Animation" id=5]
resource/name = "leftright"
length = 10.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 1, 5, 6 ), "transitions":FloatArray( 1, 1, 1, 1 ), "values":[ Vector2( 184, 152 ), Vector2( 184, 152 ), Vector2( 328.086, 152 ), Vector2( 328.086, 152 ) ] }
[sub_resource type="Animation" id=6]
length = 10.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 1, 5, 6 ), "transitions":FloatArray( 1, 1, 1, 1 ), "values":[ Vector2( 88.3493, 296 ), Vector2( 88.3493, 296 ), Vector2( 88.3493, 152 ), Vector2( 88.3493, 152 ) ] }
[sub_resource type="RectangleShape2D" id=7]
custom_solver_bias = 0.0
extents = Vector2( 8, 8 )
[sub_resource type="RectangleShape2D" id=8]
custom_solver_bias = 0.0
extents = Vector2( 10, 4 )
[sub_resource type="CircleShape2D" id=9]
custom_solver_bias = 0.0
radius = 32.0
[sub_resource type="RectangleShape2D" id=10]
custom_solver_bias = 0.0
extents = Vector2( 8, 8 )
[sub_resource type="Animation" id=11]
length = 20.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/rot")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 5, 10, 15 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ 0.0, 90.0, 0.0, -90.0 ] }
[sub_resource type="RectangleShape2D" id=12]
custom_solver_bias = 0.0
extents = Vector2( 32, 8 )
[node name="colworld" type="Node2D"]
script/script = ExtResource( 1 )
[node name="TileMap" type="TileMap" parent="."]
mode = 0
tile_set = SubResource( 2 )
cell/size = Vector2( 16, 16 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 0
cell/y_sort = false
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 65536, 0, 65537, 0, 65538, 0, 65539, 0, 65540, 0, 65541, 0, 65542, 0, 65543, 0, 65544, 0, 65545, 0, 65546, 0, 65547, 0, 65548, 0, 65549, 0, 65550, 0, 65551, 0, 65552, 0, 65553, 0, 65554, 0, 65555, 0, 65556, 0, 65557, 0, 65558, 0, 65559, 0, 65560, 0, 65561, 0, 65562, 0, 65563, 0, 65564, 0, 65565, 0, 65566, 0, 65567, 0, 65568, 0, 131072, 0, 131073, 0, 131103, 0, 131104, 0, 196608, 0, 196609, 0, 196639, 0, 196640, 0, 262144, 0, 262145, 0, 262175, 0, 262176, 0, 327680, 0, 327681, 0, 327685, 0, 327686, 0, 327687, 0, 327688, 0, 327689, 0, 327690, 0, 327691, 0, 327692, 0, 327693, 0, 327697, 0, 327711, 0, 327712, 0, 393216, 0, 393217, 0, 393237, 0, 393238, 0, 393247, 0, 393248, 0, 458752, 0, 458753, 0, 458783, 0, 458784, 0, 524288, 0, 524289, 0, 524313, 0, 524314, 0, 524319, 0, 524320, 0, 589824, 0, 589825, 0, 589830, 0, 589831, 0, 589832, 0, 589833, 0, 589834, 0, 589845, 0, 589846, 0, 589847, 0, 589855, 0, 589856, 0, 655360, 0, 655361, 0, 655391, 0, 655392, 0, 720896, 0, 720897, 0, 720927, 0, 720928, 0, 786432, 0, 786433, 0, 786463, 0, 786464, 0, 851968, 0, 851969, 0, 851999, 0, 852000, 0, 917504, 0, 917505, 0, 917535, 0, 917536, 0, 983040, 0, 983041, 0, 983071, 0, 983072, 0, 1048576, 0, 1048577, 0, 1048607, 0, 1048608, 0, 1114112, 0, 1114113, 0, 1114143, 0, 1114144, 0, 1179648, 0, 1179649, 0, 1179654, 0, 1179655, 0, 1179656, 0, 1179679, 0, 1179680, 0, 1245184, 0, 1245185, 0, 1245204, 0, 1245205, 0, 1245206, 0, 1245207, 0, 1245215, 0, 1245216, 0, 1310720, 0, 1310721, 0, 1310751, 0, 1310752, 0, 1376256, 0, 1376257, 0, 1376285, 0, 1376286, 0, 1376287, 0, 1376288, 0, 1441792, 0, 1441793, 0, 1441823, 0, 1441824, 0, 1507328, 0, 1507329, 0, 1507355, 0, 1507356, 0, 1507359, 0, 1507360, 0, 1572864, 0, 1572865, 0, 1572895, 0, 1572896, 0, 1638400, 0, 1638401, 0, 1638413, 0, 1638425, 0, 1638426, 0, 1638431, 0, 1638432, 0, 1703936, 0, 1703937, 0, 1703948, 0, 1703965, 0, 1703966, 0, 1703967, 0, 1703968, 0, 1769472, 0, 1769473, 0, 1769482, 0, 1769483, 0, 1769500, 0, 1769501, 0, 1769503, 0, 1769504, 0, 1835008, 0, 1835009, 0, 1835012, 0, 1835018, 0, 1835019, 0, 1835034, 0, 1835035, 0, 1835039, 0, 1835040, 0, 1900544, 0, 1900545, 0, 1900546, 0, 1900547, 0, 1900548, 0, 1900549, 0, 1900550, 0, 1900551, 0, 1900552, 0, 1900553, 0, 1900554, 0, 1900555, 0, 1900556, 0, 1900557, 0, 1900558, 0, 1900559, 0, 1900560, 0, 1900561, 0, 1900562, 0, 1900563, 0, 1900564, 0, 1900565, 0, 1900566, 0, 1900567, 0, 1900568, 0, 1900569, 0, 1900570, 0, 1900571, 0, 1900572, 0, 1900573, 0, 1900574, 0, 1900575, 0, 1900576, 0, 1966080, 0, 1966081, 0, 1966082, 0, 1966083, 0, 1966084, 0, 1966085, 0, 1966086, 0, 1966087, 0, 1966088, 0, 1966089, 0, 1966090, 0, 1966091, 0, 1966092, 0, 1966093, 0, 1966094, 0, 1966095, 0, 1966096, 0, 1966097, 0, 1966098, 0, 1966099, 0, 1966100, 0, 1966101, 0, 1966102, 0, 1966103, 0, 1966104, 0, 1966105, 0, 1966106, 0, 1966107, 0, 1966108, 0, 1966109, 0, 1966110, 0, 1966111, 0, 1966112, 0, 2031616, 0, 2031617, 0, 2031618, 0, 2031619, 0, 2031620, 0, 2031621, 0, 2031622, 0, 2031623, 0, 2031624, 0, 2031625, 0, 2031626, 0, 2031627, 0, 2031628, 0, 2031629, 0, 2031630, 0, 2031631, 0, 2031632, 0, 2031633, 0, 2031634, 0, 2031635, 0, 2031636, 0, 2031637, 0, 2031638, 0, 2031639, 0, 2031640, 0, 2031641, 0, 2031642, 0, 2031643, 0, 2031644, 0, 2031645, 0, 2031646, 0, 2031647, 0, 2031648, 0 )
[node name="player" parent="." instance=ExtResource( 3 )]
transform/pos = Vector2( 72, 430 )
collision/margin = 0.05
[node name="moving_platform1" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 274.142, 152 )
input/pickable = false
shapes/0/shape = SubResource( 3 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.01
[node name="collision" type="CollisionShape2D" parent="moving_platform1"]
shape = SubResource( 3 )
trigger = false
_update_shape_index = -1
[node name="sprite" type="Sprite" parent="moving_platform1"]
texture = ExtResource( 2 )
[node name="anim" type="AnimationPlayer" parent="moving_platform1"]
playback/process_mode = 0
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/leftright = SubResource( 4 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "leftright"
[node name="moving_platform2" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 88.3493, 284.689 )
input/pickable = false
shapes/0/shape = SubResource( 3 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.01
[node name="collision" type="CollisionShape2D" parent="moving_platform2"]
shape = SubResource( 3 )
trigger = false
_update_shape_index = -1
[node name="sprite" type="Sprite" parent="moving_platform2"]
texture = ExtResource( 2 )
[node name="anim" type="AnimationPlayer" parent="moving_platform2"]
playback/process_mode = 0
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/leftright = SubResource( 5 )
anims/updown = SubResource( 6 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "updown"
[node name="princess" type="Area2D" parent="."]
transform/pos = Vector2( 97, 72 )
input/pickable = true
shapes/0/shape = SubResource( 7 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
gravity_vec = Vector2( 0, 1 )
gravity = 98.0
linear_damp = 0.1
angular_damp = 1.0
[node name="collision" type="CollisionShape2D" parent="princess"]
shape = SubResource( 7 )
trigger = false
_update_shape_index = -1
[node name="Sprite" type="Sprite" parent="princess"]
texture = ExtResource( 4 )
[node name="youwin" type="Label" parent="."]
visibility/visible = false
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 196.0
margin/top = 41.0
margin/right = 344.0
margin/bottom = 67.0
text = "Thank You Cubio\nYou Saved The Princess!"
align = 1
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="oneway1" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 439, 301 )
input/pickable = false
shapes/0/shape = SubResource( 8 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
one_way_collision/direction = Vector2( 0, 1 )
one_way_collision/max_depth = 6.0
collision/margin = 0.01
[node name="sprite" type="Sprite" parent="oneway1"]
transform/scale = Vector2( 1, 0.3 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway1"]
shape = SubResource( 8 )
trigger = false
_update_shape_index = -1
[node name="oneway2" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 456, 301 )
input/pickable = false
shapes/0/shape = SubResource( 8 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
one_way_collision/direction = Vector2( 0, 1 )
one_way_collision/max_depth = 6.0
collision/margin = 0.01
[node name="sprite" type="Sprite" parent="oneway2"]
transform/scale = Vector2( 1, 0.3 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway2"]
shape = SubResource( 8 )
trigger = false
_update_shape_index = -1
[node name="oneway3" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 472, 301 )
input/pickable = false
shapes/0/shape = SubResource( 8 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
one_way_collision/direction = Vector2( 0, 1 )
one_way_collision/max_depth = 6.0
collision/margin = 0.01
[node name="sprite" type="Sprite" parent="oneway3"]
transform/scale = Vector2( 1, 0.3 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway3"]
shape = SubResource( 8 )
trigger = false
_update_shape_index = -1
[node name="oneway4" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 487, 301 )
input/pickable = false
shapes/0/shape = SubResource( 8 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
one_way_collision/direction = Vector2( 0, 1 )
one_way_collision/max_depth = 6.0
collision/margin = 0.01
[node name="sprite" type="Sprite" parent="oneway4"]
transform/scale = Vector2( 1, 0.3 )
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="oneway4"]
shape = SubResource( 8 )
trigger = false
_update_shape_index = -1
[node name="circle" type="KinematicBody2D" parent="."]
transform/pos = Vector2( 241.169, 304.126 )
input/pickable = false
shapes/0/shape = SubResource( 9 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
shapes/1/shape = SubResource( 10 )
shapes/1/transform = Matrix32( 1, 0, 0, 1, -0.440125, -37.0904 )
shapes/1/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.08
[node name="sprite" type="Sprite" parent="circle"]
texture = ExtResource( 5 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="circle"]
shape = SubResource( 9 )
trigger = false
_update_shape_index = -1
[node name="anim" type="AnimationPlayer" parent="circle"]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/turn = SubResource( 11 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "turn"
[node name="box" type="CollisionShape2D" parent="circle"]
transform/pos = Vector2( -0.440125, -37.0904 )
shape = SubResource( 10 )
trigger = false
_update_shape_index = -1
[node name="boxsprite" type="Sprite" parent="circle"]
transform/pos = Vector2( 0, -37.4108 )
texture = ExtResource( 2 )
[node name="platform" type="StaticBody2D" parent="."]
transform/pos = Vector2( 251.44, 396.557 )
transform/rot = 24.5257
input/pickable = false
shapes/0/shape = SubResource( 12 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 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"]
texture = ExtResource( 6 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="platform"]
shape = SubResource( 12 )
trigger = false
_update_shape_index = -1
[node name="platform1" type="StaticBody2D" parent="."]
transform/pos = Vector2( 369.116, 394.016 )
transform/rot = -26.6959
input/pickable = false
shapes/0/shape = SubResource( 12 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 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"]
texture = ExtResource( 6 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="platform1"]
shape = SubResource( 12 )
trigger = false
_update_shape_index = -1
[connection signal="body_enter" from="princess" to="." method="_on_princess_body_enter"]

View File

@ -1,7 +1,7 @@
[application]
name="Kinematic Character"
main_scene="res://colworld.scn"
main_scene="res://colworld.tscn"
icon="res://icon.png"
[display]

Binary file not shown.

View File

@ -0,0 +1,33 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://player.gd" type="Script" id=1]
[ext_resource path="res://player.png" type="Texture" id=2]
[sub_resource type="RectangleShape2D" id=1]
custom_solver_bias = 0.0
extents = Vector2( 7, 7 )
[node name="player" type="KinematicBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, -0.315559, 0.157784 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.01
script/script = ExtResource( 1 )
[node name="sprite" type="Sprite" parent="."]
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
transform/pos = Vector2( -0.315559, 0.157784 )
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1

Binary file not shown.

View File

@ -0,0 +1,47 @@
[gd_scene load_steps=5 format=1]
[ext_resource path="res://obstacle.png" type="Texture" id=1]
[ext_resource path="res://player.tscn" type="PackedScene" id=2]
[sub_resource type="RectangleShape2D" id=1]
custom_solver_bias = 0.0
extents = Vector2( 8, 8 )
[sub_resource type="TileSet" id=2]
0/name = ""
0/texture = ExtResource( 1 )
0/tex_offset = Vector2( 0, 0 )
0/region = Rect2( 0, 0, 0, 0 )
0/occluder_offset = Vector2( 0, 0 )
0/navigation_offset = Vector2( 0, 0 )
0/shape_offset = Vector2( 8, 8 )
0/shapes = [ SubResource( 1 ) ]
[node name="colworld" type="Node2D"]
[node name="TileMap" type="TileMap" parent="."]
mode = 0
tile_set = SubResource( 2 )
cell/size = Vector2( 16, 16 )
cell/quadrant_size = 16
cell/custom_transform = Matrix32( 1, 0, 0, 1, 0, 0 )
cell/half_offset = 2
cell/tile_origin = 0
cell/y_sort = false
collision/use_kinematic = false
collision/friction = 1.0
collision/bounce = 0.0
collision/layers = 1
collision/mask = 1
occluder/light_mask = 1
tile_data = IntArray( 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 65536, 0, 65537, 0, 65538, 0, 65539, 0, 65540, 0, 65541, 0, 65542, 0, 65543, 0, 65544, 0, 65545, 0, 65546, 0, 65547, 0, 65548, 0, 65549, 0, 65550, 0, 65551, 0, 65552, 0, 65553, 0, 65554, 0, 65555, 0, 65556, 0, 65557, 0, 65558, 0, 65559, 0, 65560, 0, 65561, 0, 65562, 0, 65563, 0, 65564, 0, 65565, 0, 65566, 0, 65567, 0, 65568, 0, 131072, 0, 131073, 0, 131103, 0, 131104, 0, 196608, 0, 196609, 0, 196639, 0, 196640, 0, 262144, 0, 262145, 0, 262175, 0, 262176, 0, 327680, 0, 327681, 0, 327685, 0, 327686, 0, 327687, 0, 327688, 0, 327689, 0, 327690, 0, 327691, 0, 327692, 0, 327693, 0, 327711, 0, 327712, 0, 393216, 0, 393217, 0, 393247, 0, 393248, 0, 458752, 0, 458753, 0, 458783, 0, 458784, 0, 524288, 0, 524289, 0, 524319, 0, 524320, 0, 589824, 0, 589825, 0, 589855, 0, 589856, 0, 655360, 0, 655361, 0, 655373, 0, 655374, 0, 655375, 0, 655376, 0, 655377, 0, 655378, 0, 655379, 0, 655380, 0, 655381, 0, 655391, 0, 655392, 0, 720896, 0, 720897, 0, 720909, 0, 720910, 0, 720911, 0, 720912, 0, 720913, 0, 720914, 0, 720915, 0, 720916, 0, 720917, 0, 720927, 0, 720928, 0, 786432, 0, 786433, 0, 786445, 0, 786446, 0, 786447, 0, 786448, 0, 786449, 0, 786450, 0, 786451, 0, 786452, 0, 786453, 0, 786463, 0, 786464, 0, 851968, 0, 851969, 0, 851981, 0, 851982, 0, 851988, 0, 851989, 0, 851999, 0, 852000, 0, 917504, 0, 917505, 0, 917517, 0, 917518, 0, 917524, 0, 917525, 0, 917535, 0, 917536, 0, 983040, 0, 983041, 0, 983053, 0, 983054, 0, 983060, 0, 983061, 0, 983071, 0, 983072, 0, 1048576, 0, 1048577, 0, 1048596, 0, 1048597, 0, 1048607, 0, 1048608, 0, 1114112, 0, 1114113, 0, 1114132, 0, 1114133, 0, 1114143, 0, 1114144, 0, 1179648, 0, 1179649, 0, 1179668, 0, 1179669, 0, 1179679, 0, 1179680, 0, 1245184, 0, 1245185, 0, 1245204, 0, 1245205, 0, 1245215, 0, 1245216, 0, 1310720, 0, 1310721, 0, 1310730, 0, 1310731, 0, 1310748, 0, 1310751, 0, 1310752, 0, 1376256, 0, 1376257, 0, 1376266, 0, 1376267, 0, 1376284, 0, 1376287, 0, 1376288, 0, 1441792, 0, 1441793, 0, 1441802, 0, 1441803, 0, 1441804, 0, 1441805, 0, 1441820, 0, 1441823, 0, 1441824, 0, 1507328, 0, 1507329, 0, 1507338, 0, 1507339, 0, 1507340, 0, 1507341, 0, 1507359, 0, 1507360, 0, 1572864, 0, 1572865, 0, 1572874, 0, 1572875, 0, 1572876, 0, 1572877, 0, 1572878, 0, 1572879, 0, 1572880, 0, 1572881, 0, 1572882, 0, 1572895, 0, 1572896, 0, 1638400, 0, 1638401, 0, 1638410, 0, 1638411, 0, 1638412, 0, 1638413, 0, 1638414, 0, 1638415, 0, 1638416, 0, 1638417, 0, 1638418, 0, 1638431, 0, 1638432, 0, 1703936, 0, 1703937, 0, 1703946, 0, 1703947, 0, 1703967, 0, 1703968, 0, 1769472, 0, 1769473, 0, 1769482, 0, 1769483, 0, 1769503, 0, 1769504, 0, 1835008, 0, 1835009, 0, 1835018, 0, 1835019, 0, 1835039, 0, 1835040, 0, 1900544, 0, 1900545, 0, 1900546, 0, 1900547, 0, 1900548, 0, 1900549, 0, 1900550, 0, 1900551, 0, 1900552, 0, 1900553, 0, 1900554, 0, 1900555, 0, 1900556, 0, 1900557, 0, 1900558, 0, 1900559, 0, 1900560, 0, 1900561, 0, 1900562, 0, 1900563, 0, 1900564, 0, 1900565, 0, 1900566, 0, 1900567, 0, 1900568, 0, 1900569, 0, 1900570, 0, 1900571, 0, 1900572, 0, 1900573, 0, 1900574, 0, 1900575, 0, 1900576, 0, 1966080, 0, 1966081, 0, 1966082, 0, 1966083, 0, 1966084, 0, 1966085, 0, 1966086, 0, 1966087, 0, 1966088, 0, 1966089, 0, 1966090, 0, 1966091, 0, 1966092, 0, 1966093, 0, 1966094, 0, 1966095, 0, 1966096, 0, 1966097, 0, 1966098, 0, 1966099, 0, 1966100, 0, 1966101, 0, 1966102, 0, 1966103, 0, 1966104, 0, 1966105, 0, 1966106, 0, 1966107, 0, 1966108, 0, 1966109, 0, 1966110, 0, 1966111, 0, 1966112, 0, 2031616, 0, 2031617, 0, 2031618, 0, 2031619, 0, 2031620, 0, 2031621, 0, 2031622, 0, 2031623, 0, 2031624, 0, 2031625, 0, 2031626, 0, 2031627, 0, 2031628, 0, 2031629, 0, 2031630, 0, 2031631, 0, 2031632, 0, 2031633, 0, 2031634, 0, 2031635, 0, 2031636, 0, 2031637, 0, 2031638, 0, 2031639, 0, 2031640, 0, 2031641, 0, 2031642, 0, 2031643, 0, 2031644, 0, 2031645, 0, 2031646, 0, 2031647, 0, 2031648, 0 )
[node name="player" parent="." instance=ExtResource( 2 )]
transform/pos = Vector2( 115.243, 222.134 )
collision/margin = 0.01

View File

@ -1,7 +1,7 @@
[application]
name="Kinematic Collision"
main_scene="res://colworld.scn"
main_scene="res://colworld.tscn"
icon="res://icon.png"
[input]

Binary file not shown.

View File

@ -0,0 +1,32 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://player.gd" type="Script" id=1]
[ext_resource path="res://player.png" type="Texture" id=2]
[sub_resource type="RectangleShape2D" id=1]
custom_solver_bias = 0.0
extents = Vector2( 8, 8 )
[node name="player" type="KinematicBody2D"]
input/pickable = false
shapes/0/shape = SubResource( 1 )
shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 )
shapes/0/trigger = false
collision/layers = 1
collision/mask = 1
collision/margin = 0.01
script/script = ExtResource( 1 )
[node name="sprite" type="Sprite" parent="."]
texture = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
trigger = false
_update_shape_index = -1

View File

@ -1,7 +1,7 @@
[application]
name="Using Lights As Mask"
main_scene="res://lightmask.scn"
main_scene="res://lightmask.tscn"
icon="res://icon.png"
[rasterizer]

Binary file not shown.

View File

@ -0,0 +1,134 @@
[gd_scene load_steps=5 format=1]
[ext_resource path="res://burano.png" type="Texture" id=1]
[ext_resource path="res://splat.png" type="Texture" id=2]
[sub_resource type="CanvasItemMaterial" id=1]
shader/shading_mode = 2
[sub_resource type="Animation" id=2]
length = 4.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("light1:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 1, 2, 3 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 601.028, 242.639 ), Vector2( 318.649, 327.353 ), Vector2( 381.263, 130.915 ), Vector2( 462.294, 389.968 ) ] }
tracks/1/type = "value"
tracks/1/path = NodePath("light2:transform/pos")
tracks/1/interp = 1
tracks/1/keys = { "cont":true, "times":FloatArray( 0, 1, 2, 3 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 196.528, 185.139 ), Vector2( 135.142, 454.013 ), Vector2( 638.105, 334.923 ), Vector2( 331.375, 101.653 ) ] }
tracks/2/type = "value"
tracks/2/path = NodePath("light3:transform/pos")
tracks/2/interp = 1
tracks/2/keys = { "cont":true, "times":FloatArray( 0, 1, 2, 3 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 442.528, 411.139 ), Vector2( 635.283, 236.8 ), Vector2( 216.215, 396.815 ), Vector2( 682.96, 294.708 ) ] }
[node name="lightmask_demo" type="Control"]
anchor/right = 1
anchor/bottom = 1
focus/ignore_mouse = false
focus/stop_mouse = true
size_flags/horizontal = 2
size_flags/vertical = 2
margin/left = 0.0
margin/top = 0.0
margin/right = 0.0
margin/bottom = 0.0
[node name="burano" type="TextureFrame" parent="."]
material/material = SubResource( 1 )
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
size_flags/vertical = 2
margin/left = 0.0
margin/top = 0.0
margin/right = 800.0
margin/bottom = 600.0
texture = ExtResource( 1 )
[node name="light1" type="Light2D" parent="."]
transform/pos = Vector2( 601.028, 242.639 )
transform/scale = Vector2( 1.62522, 1.62999 )
enabled = true
texture = ExtResource( 2 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 1, 1, 1, 1 )
energy = 1.0
mode = 2
range/height = 0.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = false
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="light2" type="Light2D" parent="."]
transform/pos = Vector2( 196.528, 185.139 )
transform/scale = Vector2( 1.76194, 1.71984 )
enabled = true
texture = ExtResource( 2 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 1, 1, 1, 1 )
energy = 1.0
mode = 2
range/height = 0.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = false
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="light3" type="Light2D" parent="."]
transform/pos = Vector2( 442.528, 411.139 )
transform/scale = Vector2( 1.76194, 1.71984 )
enabled = true
texture = ExtResource( 2 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 1, 1, 1, 1 )
energy = 1.0
mode = 2
range/height = 0.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = false
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="anim" type="AnimationPlayer" parent="."]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/maskmotion = SubResource( 2 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "maskmotion"

View File

@ -1,7 +1,7 @@
[application]
name="2D Lighting"
main_scene="res://light_shadows.scn"
main_scene="res://light_shadows.tscn"
icon="res://icon.png"
[display]

View File

@ -0,0 +1,326 @@
[gd_scene load_steps=9 format=1]
[ext_resource path="res://bg.png" type="Texture" id=1]
[ext_resource path="res://caster.png" type="Texture" id=2]
[ext_resource path="res://light.png" type="Texture" id=3]
[ext_resource path="res://spot.png" type="Texture" id=4]
[sub_resource type="OccluderPolygon2D" id=1]
closed = true
cull_mode = 0
polygon = Vector2Array( -15.913, -15.9738, 15.9079, -16.0785, 15.6986, 15.847, -16.1223, 15.9517 )
[sub_resource type="Animation" id=2]
length = 16.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 4, 8, 12 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 159.289, 452.441 ), Vector2( 132.279, 80.4366 ), Vector2( 700.722, 241.27 ), Vector2( 429.392, 571.532 ) ] }
[sub_resource type="Animation" id=3]
length = 16.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 4.1, 8.1, 11.8 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 753.756, 314.336 ), Vector2( 69.7562, 234.336 ), Vector2( 256.756, 575.336 ), Vector2( 516.756, 530.336 ) ] }
[sub_resource type="Animation" id=4]
length = 16.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 4.1, 7.9, 12.1 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 692.078, 29.8849 ), Vector2( 309.606, 31.5551 ), Vector2( 40.7064, 238.658 ), Vector2( 685.397, 282.082 ) ] }
[node name="base" type="Node2D"]
[node name="ambient" type="CanvasModulate" parent="."]
color = Color( 0.479177, 0.464761, 0.498946, 1 )
[node name="bg" type="Sprite" parent="."]
transform/pos = Vector2( 401.251, 301.906 )
transform/scale = Vector2( 6.39454, 4.82665 )
texture = ExtResource( 1 )
[node name="casters" type="Node2D" parent="."]
[node name="shadow_caster" type="Sprite" parent="casters"]
transform/pos = Vector2( 95.2909, 85.3186 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster1" type="Sprite" parent="casters"]
transform/pos = Vector2( 200.291, 313.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster1"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster2" type="Sprite" parent="casters"]
transform/pos = Vector2( 76.2909, 405.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster2"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster3" type="Sprite" parent="casters"]
transform/pos = Vector2( 348.291, 206.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster3"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster4" type="Sprite" parent="casters"]
transform/pos = Vector2( 239.291, 48.3186 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster4"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster5" type="Sprite" parent="casters"]
transform/pos = Vector2( 140.291, 561.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster5"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster6" type="Sprite" parent="casters"]
transform/pos = Vector2( 392.291, 499.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster6"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster7" type="Sprite" parent="casters"]
transform/pos = Vector2( 735.291, 552.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster7"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster8" type="Sprite" parent="casters"]
transform/pos = Vector2( 661.291, 371.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster8"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster9" type="Sprite" parent="casters"]
transform/pos = Vector2( 567.291, 574.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster9"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster10" type="Sprite" parent="casters"]
transform/pos = Vector2( 420.291, 350.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster10"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster11" type="Sprite" parent="casters"]
transform/pos = Vector2( 463.291, 106.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster11"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster12" type="Sprite" parent="casters"]
transform/pos = Vector2( 621.291, 78.3186 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster12"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster13" type="Sprite" parent="casters"]
transform/pos = Vector2( 761.291, 240.319 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster13"]
occluder = SubResource( 1 )
light_mask = 1
[node name="shadow_caster14" type="Sprite" parent="casters"]
transform/pos = Vector2( 771.291, 29.3186 )
texture = ExtResource( 2 )
[node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster14"]
occluder = SubResource( 1 )
light_mask = 1
[node name="red_light" type="Light2D" parent="."]
transform/pos = Vector2( 159.289, 452.441 )
enabled = true
texture = ExtResource( 3 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 1, 0.446392, 0.0576646, 1 )
energy = 1.0
mode = 0
range/height = 0.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="blob" type="Sprite" parent="red_light"]
visibility/blend_mode = 1
texture = ExtResource( 4 )
[node name="anim" type="AnimationPlayer" parent="red_light"]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/motion = SubResource( 2 )
anims/motion2 = SubResource( 3 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "motion"
[node name="green_light" type="Light2D" parent="."]
transform/pos = Vector2( 753.756, 314.336 )
enabled = true
texture = ExtResource( 3 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 0.49247, 0.878537, 0.409146, 1 )
energy = 1.0
mode = 0
range/height = 0.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="blob" type="Sprite" parent="green_light"]
visibility/blend_mode = 1
texture = ExtResource( 4 )
[node name="anim" type="AnimationPlayer" parent="green_light"]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/m2 = SubResource( 3 )
anims/motion = SubResource( 2 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "m2"
[node name="blue_light" type="Light2D" parent="."]
transform/pos = Vector2( 692.078, 29.8849 )
enabled = true
texture = ExtResource( 3 )
offset = Vector2( 0, 0 )
scale = 1.0
color = Color( 0.396752, 0.446392, 0.929792, 1 )
energy = 1.0
mode = 0
range/height = 0.0
range/z_min = -1024
range/z_max = 1024
range/layer_min = 0
range/layer_max = 0
range/item_mask = 1
shadow/enabled = true
shadow/color = Color( 0, 0, 0, 0 )
shadow/buffer_size = 2048
shadow/esm_multiplier = 80.0
shadow/item_mask = 1
[node name="blob" type="Sprite" parent="blue_light"]
visibility/blend_mode = 1
texture = ExtResource( 4 )
[node name="anim" type="AnimationPlayer" parent="blue_light"]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/motion = SubResource( 2 )
anims/motion2 = SubResource( 3 )
anims/motion3 = SubResource( 4 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "motion3"

View File

@ -1,5 +1,5 @@
[application]
name="Look At Pointer"
main_scene="res://lookat.scn"
main_scene="res://lookat.tscn"
icon="res://icon.png"

Binary file not shown.

View File

@ -0,0 +1,32 @@
[gd_scene load_steps=3 format=1]
[ext_resource path="res://arrow.png" type="Texture" id=1]
[ext_resource path="res://lookat.gd" type="Script" id=2]
[node name="lookatscene" type="Node2D"]
[node name="direct" type="Sprite" parent="."]
transform/pos = Vector2( 132, 105 )
texture = ExtResource( 1 )
modulate = Color( 1, 0.799619, 0.734765, 1 )
script/script = ExtResource( 2 )
mode = 0
[node name="constant" type="Sprite" parent="."]
transform/pos = Vector2( 611, 216 )
texture = ExtResource( 1 )
modulate = Color( 0.751241, 0.662843, 1, 1 )
script/script = ExtResource( 2 )
mode = 1
[node name="smooth" type="Sprite" parent="."]
transform/pos = Vector2( 314, 457 )
texture = ExtResource( 1 )
modulate = Color( 0.749446, 1, 0.782884, 1 )
script/script = ExtResource( 2 )
mode = 2

View File

@ -1,7 +1,7 @@
[application]
name="Motion Test"
main_scene="res://motion.scn"
main_scene="res://motion.tscn"
icon="res://icon.png"
[display]

Binary file not shown.

135
demos/2d/motion/motion.tscn Normal file
View File

@ -0,0 +1,135 @@
[gd_scene load_steps=4 format=1]
[ext_resource path="res://car.png" type="Texture" id=1]
[ext_resource path="res://motion.gd" type="Script" id=2]
[sub_resource type="Animation" id=1]
resource/name = "motion"
length = 5.0
loop = true
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath(".:transform/pos")
tracks/0/interp = 1
tracks/0/keys = { "cont":true, "times":FloatArray( 0, 5 ), "transitions":FloatArray( 1, 1 ), "values":[ Vector2( -113, 154 ), Vector2( 907, 154 ) ] }
[node name="Node2D" type="Node2D"]
[node name="idle" type="Node2D" parent="."]
[node name="car" type="Sprite" parent="idle"]
transform/pos = Vector2( -113, 154 )
texture = ExtResource( 1 )
[node name="anim" type="AnimationPlayer" parent="idle/car"]
playback/process_mode = 1
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/motion = SubResource( 1 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "motion"
[node name="Label" type="Label" parent="idle"]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 27.0
margin/top = 80.0
margin/right = 104.0
margin/bottom = 93.0
text = "Idle Process Animation"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="fixed" type="Node2D" parent="."]
transform/pos = Vector2( 0, 106 )
[node name="car" type="Sprite" parent="fixed"]
transform/pos = Vector2( -113, 154 )
texture = ExtResource( 1 )
[node name="anim" type="AnimationPlayer" parent="fixed/car"]
playback/process_mode = 0
playback/default_blend_time = 0.0
root/root = NodePath("..")
anims/motion = SubResource( 1 )
playback/active = true
playback/speed = 1.0
blend_times = [ ]
autoplay = "motion"
[node name="Label1" type="Label" parent="fixed"]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 27.0
margin/top = 80.0
margin/right = 104.0
margin/bottom = 93.0
text = "Fixed Process Animation"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="code_idle" type="Node2D" parent="."]
transform/pos = Vector2( 0, 215 )
[node name="car" type="Sprite" parent="code_idle"]
transform/pos = Vector2( -113, 154 )
texture = ExtResource( 1 )
script/script = ExtResource( 2 )
use_idle = true
[node name="Label1" type="Label" parent="code_idle"]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 27.0
margin/top = 80.0
margin/right = 104.0
margin/bottom = 93.0
text = "Idle Process Code"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="code_fixed" type="Node2D" parent="."]
transform/pos = Vector2( 0, 324 )
[node name="car" type="Sprite" parent="code_fixed"]
transform/pos = Vector2( -113, 154 )
texture = ExtResource( 1 )
script/script = ExtResource( 2 )
use_idle = false
[node name="Label1" type="Label" parent="code_fixed"]
focus/ignore_mouse = true
focus/stop_mouse = true
size_flags/horizontal = 2
margin/left = 27.0
margin/top = 80.0
margin/right = 104.0
margin/bottom = 93.0
text = "Fixed Process Code"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1

View File

@ -1,7 +1,7 @@
[application]
name="Navigation Polygon (2D)"
main_scene="res://navigation.scn"
main_scene="res://navigation.tscn"
icon="res://icon.png"
[display]

Binary file not shown.

View File

@ -0,0 +1,34 @@
[gd_scene load_steps=5 format=1]
[ext_resource path="res://navigation.gd" type="Script" id=1]
[ext_resource path="res://path.png" type="Texture" id=2]
[ext_resource path="res://agent.png" type="Texture" id=3]
[sub_resource type="NavigationPolygon" id=1]
vertices = Vector2Array( 587.833, 271.924, 530.464, 284.878, 508.256, 281.177, 497.153, 255.269, 669.26, 297.833, 648.903, 321.891, 650.754, 251.567, 619.293, 510.654, 676.663, 493.998, 706.272, 501.401, 669.26, 529.16, 602.638, 523.608, 587.833, 179.393, 573.028, 140.53, 645.202, 159.036, 710.106, 179.216, 630.397, 212.704, 597.086, 192.348, 648.903, 394.065, 621.144, 486.596, 618.011, 402.479, 624.926, 359.595, 605.437, 456.366, 598.937, 492.148, 471.244, 251.567, 421.277, 270.074, 428.68, 246.015, 502.704, 97.9661, 517.509, 55.4019, 537.866, 99.8167, 536.016, 175.692, 495.302, 164.588, 487.899, 85.0117, 310.24, 75.7586, 308.39, 92.4142, 345.402, 210.854, 360.207, 223.808, 297.286, 258.97, 288.033, 231.211, 319.493, 190.497, 193.651, 423.675, 245.469, 477.343, 221.41, 488.446, 147.386, 408.87, 182.548, 382.961, 145.584, 224.311, 175.145, 332.995, 202.904, 99.8167, 310.24, 62.8043, 695.169, 303.385, 682.214, 284.878, 524.608, 359.37, 526.762, 342.248, 538.077, 499.891, 571.177, 501.401, 395.879, 501.87, 536.407, 524.944, 371.311, 518.056, 573.028, 94.2648, 582.281, 47.9994, 667.409, 75.7586, 350.954, 447.733, 363.908, 351.501, 384.265, 351.501, 376.862, 418.123, 373.441, 436.494, 424.978, 334.845, 421.277, 360.754, 352.804, 320.04, 321.344, 338.546, 299.136, 283.028, 241.767, 327.443, 234.365, 244.165, 325.228, 486.302, 300.441, 497.494, 317.643, 447.733, 332.441, 457.494, 366.441, 467.494, 480.497, 434.779, 518.035, 461.477, 476.441, 468.494, 265.825, 407.019, 184.398, 349.65, 310.24, 112.771, 267.676, 153.485, 221.41, 171.991, 700.721, 268.223, 397.219, 188.646, 415.725, 177.543, 465.692, 179.393, 476.796, 207.152, 443.485, 192.348, 437.933, 170.14, 452.738, 166.439, 460.14, 123.875, 476.796, 149.783, 189.95, 231.211 )
polygons = [ IntArray( 0, 1, 2, 3 ), IntArray( 4, 5, 6 ), IntArray( 7, 8, 9, 10, 11 ), IntArray( 12, 13, 14, 15, 16, 17 ), IntArray( 18, 19, 20, 21 ), IntArray( 22, 20, 19, 23 ), IntArray( 24, 3, 2, 25, 26 ), IntArray( 27, 28, 29, 30, 31 ), IntArray( 28, 27, 32 ), IntArray( 33, 28, 32, 34 ), IntArray( 35, 36, 37, 38, 39 ), IntArray( 40, 41, 42, 43 ), IntArray( 44, 40, 43 ), IntArray( 44, 43, 45, 46 ), IntArray( 47, 48, 33, 34 ), IntArray( 49, 9, 8, 4, 50 ), IntArray( 50, 4, 6 ), IntArray( 21, 20, 51, 52 ), IntArray( 53, 22, 23, 54 ), IntArray( 23, 7, 11, 54 ), IntArray( 55, 53, 54, 56, 57 ), IntArray( 14, 58, 59, 60, 15 ), IntArray( 61, 62, 63, 64, 65 ), IntArray( 66, 67, 63, 68 ), IntArray( 68, 63, 62, 69, 70 ), IntArray( 70, 69, 71, 72 ), IntArray( 70, 72, 38, 37 ), IntArray( 73, 55, 57, 74 ), IntArray( 73, 74, 75, 76 ), IntArray( 65, 77, 76, 61 ), IntArray( 78, 2, 1, 52, 51 ), IntArray( 78, 51, 79, 80 ), IntArray( 78, 80, 65, 64 ), IntArray( 81, 61, 76, 75 ), IntArray( 81, 75, 44, 82 ), IntArray( 47, 34, 83, 84, 85 ), IntArray( 15, 86, 50, 6, 16 ), IntArray( 12, 17, 3, 24 ), IntArray( 26, 25, 87, 88 ), IntArray( 89, 31, 30, 90, 91 ), IntArray( 89, 91, 92, 93 ), IntArray( 39, 94, 95, 93, 92 ), IntArray( 39, 92, 88 ), IntArray( 39, 88, 87, 35 ), IntArray( 39, 38, 85, 84 ), IntArray( 45, 47, 85, 96 ), IntArray( 45, 96, 46 ), IntArray( 44, 46, 82 ) ]
outlines = [ Vector2Array( 221.41, 488.446, 147.386, 408.87, 145.584, 224.311, 202.904, 99.8167, 310.24, 62.8043, 310.24, 75.7586, 517.509, 55.4019, 537.866, 99.8167, 536.016, 175.692, 476.796, 207.152, 443.485, 192.348, 437.933, 170.14, 415.725, 177.543, 428.68, 246.015, 471.244, 251.567, 587.833, 179.393, 573.028, 140.53, 645.202, 159.036, 573.028, 94.2648, 582.281, 47.9994, 667.409, 75.7586, 710.106, 179.216, 700.721, 268.223, 682.214, 284.878, 695.169, 303.385, 706.272, 501.401, 669.26, 529.16, 602.638, 523.608, 571.177, 501.401, 536.407, 524.944, 371.311, 518.056, 300.441, 497.494, 317.643, 447.733, 182.548, 382.961, 193.651, 423.675, 245.469, 477.343 ), Vector2Array( 350.954, 447.733, 363.908, 351.501, 321.344, 338.546, 241.767, 327.443, 234.365, 244.165, 288.033, 231.211, 221.41, 171.991, 189.95, 231.211, 175.145, 332.995, 184.398, 349.65, 265.825, 407.019 ), Vector2Array( 267.676, 153.485, 310.24, 112.771, 308.39, 92.4142, 487.899, 85.0117, 502.704, 97.9661, 495.302, 164.588, 465.692, 179.393, 452.738, 166.439, 476.796, 149.783, 460.14, 123.875, 319.493, 190.497 ), Vector2Array( 397.219, 188.646, 345.402, 210.854, 360.207, 223.808, 297.286, 258.97, 299.136, 283.028, 352.804, 320.04, 424.978, 334.845, 421.277, 360.754, 384.265, 351.501, 376.862, 418.123, 480.497, 434.779, 508.256, 281.177, 421.277, 270.074 ), Vector2Array( 497.153, 255.269, 597.086, 192.348, 630.397, 212.704, 650.754, 251.567, 648.903, 321.891, 669.26, 297.833, 676.663, 493.998, 619.293, 510.654, 598.937, 492.148, 621.144, 486.596, 648.903, 394.065, 624.926, 359.595, 526.762, 342.248, 530.464, 284.878, 587.833, 271.924 ), Vector2Array( 325.228, 486.302, 332.441, 457.494, 366.441, 467.494, 373.441, 436.494, 476.441, 468.494, 518.035, 461.477, 524.608, 359.37, 618.011, 402.479, 605.437, 456.366, 538.077, 499.891, 395.879, 501.87 ) ]
[node name="navigation" type="Navigation2D"]
script/script = ExtResource( 1 )
[node name="path" type="Sprite" parent="."]
transform/pos = Vector2( 429.585, 287.32 )
texture = ExtResource( 2 )
[node name="navpoly" type="NavigationPolygonInstance" parent="."]
navpoly = SubResource( 1 )
enabled = true
[node name="agent" type="Sprite" parent="."]
transform/pos = Vector2( 228.464, 132.594 )
transform/scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 3 )
offset = Vector2( 0, -26 )

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 KiB

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

View File

@ -1,7 +1,7 @@
[application]
name="2D Normal Mapping"
main_scene="res://normalmap.scn"
main_scene="res://normalmap.tscn"
icon="res://icon.png"
[display]

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 KiB

Some files were not shown because too many files have changed in this diff Show More