diff options
254 files changed, 11021 insertions, 7542 deletions
diff --git a/SConstruct b/SConstruct index bbc8c7d587..6d6fe2859c 100644 --- a/SConstruct +++ b/SConstruct @@ -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 @@ -324,7 +329,7 @@ if selected_platform in platform_list: if (env['theora']=='yes'): env['theoralib']='yes' - env.Append(CPPFLAGS=['-DTHEORA_ENABLED']); + env.Append(CPPFLAGS=['-DTHEORA_ENABLED']); if (env['theoralib']=='yes'): env.Append(CPPFLAGS=['-DTHEORALIB_ENABLED']); diff --git a/core/make_binders.py b/core/make_binders.py index ebd48777b6..93371dc0a3 100644 --- a/core/make_binders.py +++ b/core/make_binders.py @@ -6,7 +6,7 @@ template_typed=""" template<class T $ifret ,class R$ $ifargs ,$ $arg, class P@$> class MethodBind$argc$$ifret R$$ifconst C$ : public MethodBind { public: - + $ifret R$ $ifnoret void$ (T::*method)($arg, P@$) $ifconst const$; #ifdef DEBUG_METHODS_ENABLED virtual Variant::Type _gen_argument_type(int p_arg) const { return _get_argument_type(p_arg); } @@ -16,13 +16,13 @@ public: $ return Variant::NIL; } -#endif +#endif virtual String get_instance_type() const { return T::get_type_static(); } virtual Variant call(Object* p_object,const Variant** p_args,int p_arg_count, Variant::CallError& r_error) { - + T *instance=p_object->cast_to<T>(); r_error.error=Variant::CallError::CALL_OK; #ifdef DEBUG_METHODS_ENABLED @@ -47,7 +47,7 @@ public: $ifret return Variant(ret);$ $ifnoret return Variant();$ } - + MethodBind$argc$$ifret R$$ifconst C$ () { #ifdef DEBUG_METHODS_ENABLED @@ -55,14 +55,14 @@ public: _generate_argument_types($argc$); #else set_argument_count($argc$); -#endif +#endif }; }; template<class T $ifret ,class R$ $ifargs ,$ $arg, class P@$> MethodBind* create_method_bind($ifret R$ $ifnoret void$ (T::*p_method)($arg, P@$) $ifconst const$ ) { - MethodBind$argc$$ifret R$$ifconst C$<T $ifret ,R$ $ifargs ,$ $arg, P@$> * a = memnew( (MethodBind$argc$$ifret R$$ifconst C$<T $ifret ,R$ $ifargs ,$ $arg, P@$>) ); + MethodBind$argc$$ifret R$$ifconst C$<T $ifret ,R$ $ifargs ,$ $arg, P@$> * a = memnew( (MethodBind$argc$$ifret R$$ifconst C$<T $ifret ,R$ $ifargs ,$ $arg, P@$>) ); a->method=p_method; return a; } @@ -88,7 +88,7 @@ public: $ return Variant::NIL; } -#endif +#endif virtual String get_instance_type() const { return type_name; } @@ -105,15 +105,15 @@ public: r_error.error=Variant::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS; r_error.argument=get_argument_count(); return Variant(); - } - + } + if (p_arg_count<(get_argument_count()-get_default_argument_count())) { r_error.error=Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; r_error.argument=get_argument_count()-get_default_argument_count(); return Variant(); } - + $arg CHECK_ARG(@); $ #endif @@ -128,7 +128,7 @@ public: _generate_argument_types($argc$); #else set_argument_count($argc$); -#endif +#endif }; }; @@ -151,12 +151,12 @@ MethodBind* create_method_bind($ifret R$ $ifnoret void$ (T::*p_method)($arg, P@$ def make_version(template,nargs,argmax,const,ret): - + intext=template from_pos=0 outtext="" - - while(True): + + while(True): to_pos=intext.find("$",from_pos) if (to_pos==-1): outtext+=intext[from_pos:] @@ -169,13 +169,13 @@ def make_version(template,nargs,argmax,const,ret): macro=intext[to_pos+1:end] cmd="" data="" - + if (macro.find(" ")!=-1): cmd=macro[0:macro.find(" ")] data=macro[macro.find(" ")+1:] else: cmd=macro - + if (cmd=="argc"): outtext+=str(nargs) if (cmd=="ifret" and ret): @@ -206,11 +206,11 @@ def make_version(template,nargs,argmax,const,ret): elif (cmd=="noarg"): for i in range(nargs+1,argmax+1): outtext+=data.replace("@",str(i)) - + from_pos=end+1 - + return outtext - + def run(target, source, env): @@ -244,9 +244,9 @@ def run(target, source, env): f.write(text_ext) f.close() - - - - - + + + + + diff --git a/demos/2d/area_input/engine.cfg b/demos/2d/area_input/engine.cfg index 8fa2e15beb..ce87f39547 100644 --- a/demos/2d/area_input/engine.cfg +++ b/demos/2d/area_input/engine.cfg @@ -1,5 +1,5 @@ [application] name="Area 2D Input Events" -main_scene="res://input.scn" +main_scene="res://input.tscn" icon="res://icon.png" diff --git a/demos/2d/area_input/input.scn b/demos/2d/area_input/input.scn Binary files differdeleted file mode 100644 index f3a19f64da..0000000000 --- a/demos/2d/area_input/input.scn +++ /dev/null diff --git a/demos/2d/area_input/input.tscn b/demos/2d/area_input/input.tscn new file mode 100644 index 0000000000..81c0ed918d --- /dev/null +++ b/demos/2d/area_input/input.tscn @@ -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 + + diff --git a/demos/2d/dynamic_collision_shapes/ball.scn b/demos/2d/dynamic_collision_shapes/ball.scn Binary files differdeleted file mode 100644 index 51a91d5bc0..0000000000 --- a/demos/2d/dynamic_collision_shapes/ball.scn +++ /dev/null diff --git a/demos/2d/dynamic_collision_shapes/ball.tscn b/demos/2d/dynamic_collision_shapes/ball.tscn new file mode 100644 index 0000000000..31560e251b --- /dev/null +++ b/demos/2d/dynamic_collision_shapes/ball.tscn @@ -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 + + diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd index 25db51642b..c43b82a722 100644 --- a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd +++ b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.gd @@ -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) diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn Binary files differdeleted file mode 100644 index 6d17e2209f..0000000000 --- a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.scn +++ /dev/null diff --git a/demos/2d/dynamic_collision_shapes/dynamic_colobjs.tscn b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.tscn new file mode 100644 index 0000000000..61af0b8e7d --- /dev/null +++ b/demos/2d/dynamic_collision_shapes/dynamic_colobjs.tscn @@ -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 + + diff --git a/demos/2d/dynamic_collision_shapes/engine.cfg b/demos/2d/dynamic_collision_shapes/engine.cfg index 76a074f346..b1feb20408 100644 --- a/demos/2d/dynamic_collision_shapes/engine.cfg +++ b/demos/2d/dynamic_collision_shapes/engine.cfg @@ -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" diff --git a/demos/2d/fog_of_war/engine.cfg b/demos/2d/fog_of_war/engine.cfg index 1f56851c58..98e20c1e41 100644 --- a/demos/2d/fog_of_war/engine.cfg +++ b/demos/2d/fog_of_war/engine.cfg @@ -1,7 +1,7 @@ [application] name="Fog of War" -main_scene="res://fog.scn" +main_scene="res://fog.tscn" icon="res://icon.png" [input] diff --git a/demos/2d/fog_of_war/fog.scn b/demos/2d/fog_of_war/fog.scn Binary files differdeleted file mode 100644 index cf19601567..0000000000 --- a/demos/2d/fog_of_war/fog.scn +++ /dev/null diff --git a/demos/2d/fog_of_war/fog.tscn b/demos/2d/fog_of_war/fog.tscn new file mode 100644 index 0000000000..e86a23125c --- /dev/null +++ b/demos/2d/fog_of_war/fog.tscn @@ -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 ) + + diff --git a/demos/2d/fog_of_war/fog.xml b/demos/2d/fog_of_war/fog.xml deleted file mode 100644 index ed08d84a1f..0000000000 --- a/demos/2d/fog_of_war/fog.xml +++ /dev/null @@ -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>
\ No newline at end of file diff --git a/demos/2d/fog_of_war/tile_edit.scn b/demos/2d/fog_of_war/tile_edit.scn Binary files differdeleted file mode 100644 index 3eddf38e48..0000000000 --- a/demos/2d/fog_of_war/tile_edit.scn +++ /dev/null diff --git a/demos/2d/fog_of_war/tileset.tres b/demos/2d/fog_of_war/tileset.tres new file mode 100644 index 0000000000..c75ba8d5f2 --- /dev/null +++ b/demos/2d/fog_of_war/tileset.tres @@ -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 = [ ] + diff --git a/demos/2d/fog_of_war/tileset_edit.tscn b/demos/2d/fog_of_war/tileset_edit.tscn new file mode 100644 index 0000000000..1573e9d05e --- /dev/null +++ b/demos/2d/fog_of_war/tileset_edit.tscn @@ -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 ) + + diff --git a/demos/2d/fog_of_war/troll.scn b/demos/2d/fog_of_war/troll.scn Binary files differdeleted file mode 100644 index ab9af17221..0000000000 --- a/demos/2d/fog_of_war/troll.scn +++ /dev/null diff --git a/demos/2d/fog_of_war/troll.tscn b/demos/2d/fog_of_war/troll.tscn new file mode 100644 index 0000000000..2dc8bdbf67 --- /dev/null +++ b/demos/2d/fog_of_war/troll.tscn @@ -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 + + diff --git a/demos/2d/hdr/beach_cave.scn b/demos/2d/hdr/beach_cave.scn Binary files differdeleted file mode 100644 index 6a4108e7a5..0000000000 --- a/demos/2d/hdr/beach_cave.scn +++ /dev/null diff --git a/demos/2d/hdr/beach_cave.tscn b/demos/2d/hdr/beach_cave.tscn new file mode 100644 index 0000000000..f246ff1f42 --- /dev/null +++ b/demos/2d/hdr/beach_cave.tscn @@ -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 + + diff --git a/demos/2d/hdr/engine.cfg b/demos/2d/hdr/engine.cfg index ab53a022f0..4bc2923574 100644 --- a/demos/2d/hdr/engine.cfg +++ b/demos/2d/hdr/engine.cfg @@ -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] diff --git a/demos/2d/hexamap/engine.cfg b/demos/2d/hexamap/engine.cfg index 4567af7a16..28043b0860 100644 --- a/demos/2d/hexamap/engine.cfg +++ b/demos/2d/hexamap/engine.cfg @@ -1,7 +1,7 @@ [application] name="Hexagonal Game" -main_scene="res://map.scn" +main_scene="res://map.tscn" icon="res://icon.png" [input] diff --git a/demos/2d/hexamap/map.scn b/demos/2d/hexamap/map.scn Binary files differdeleted file mode 100644 index de49527003..0000000000 --- a/demos/2d/hexamap/map.scn +++ /dev/null diff --git a/demos/2d/hexamap/map.tscn b/demos/2d/hexamap/map.tscn new file mode 100644 index 0000000000..3abda31bb0 --- /dev/null +++ b/demos/2d/hexamap/map.tscn @@ -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 + + diff --git a/demos/2d/hexamap/tiles.scn b/demos/2d/hexamap/tiles.scn Binary files differdeleted file mode 100644 index a019bbb92d..0000000000 --- a/demos/2d/hexamap/tiles.scn +++ /dev/null diff --git a/demos/2d/hexamap/tileset.res b/demos/2d/hexamap/tileset.res Binary files differdeleted file mode 100644 index 05d89316a2..0000000000 --- a/demos/2d/hexamap/tileset.res +++ /dev/null diff --git a/demos/2d/hexamap/tileset.tres b/demos/2d/hexamap/tileset.tres new file mode 100644 index 0000000000..4538202335 --- /dev/null +++ b/demos/2d/hexamap/tileset.tres @@ -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 = [ ] + diff --git a/demos/2d/hexamap/tileset_edit.tscn b/demos/2d/hexamap/tileset_edit.tscn new file mode 100644 index 0000000000..d400d55fd0 --- /dev/null +++ b/demos/2d/hexamap/tileset_edit.tscn @@ -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 ) + + diff --git a/demos/2d/hexamap/troll.scn b/demos/2d/hexamap/troll.scn Binary files differdeleted file mode 100644 index 1f33dabf8e..0000000000 --- a/demos/2d/hexamap/troll.scn +++ /dev/null diff --git a/demos/2d/hexamap/troll.tscn b/demos/2d/hexamap/troll.tscn new file mode 100644 index 0000000000..2dc8bdbf67 --- /dev/null +++ b/demos/2d/hexamap/troll.tscn @@ -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 + + diff --git a/demos/2d/isometric/bastiles.res b/demos/2d/isometric/bastiles.res Binary files differdeleted file mode 100644 index 50f3c78321..0000000000 --- a/demos/2d/isometric/bastiles.res +++ /dev/null diff --git a/demos/2d/isometric/dungeon.scn b/demos/2d/isometric/dungeon.scn Binary files differdeleted file mode 100644 index 8f0f316d73..0000000000 --- a/demos/2d/isometric/dungeon.scn +++ /dev/null diff --git a/demos/2d/isometric/dungeon.tscn b/demos/2d/isometric/dungeon.tscn new file mode 100644 index 0000000000..a9f4cfa1e3 --- /dev/null +++ b/demos/2d/isometric/dungeon.tscn @@ -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 + + diff --git a/demos/2d/isometric/engine.cfg b/demos/2d/isometric/engine.cfg index 48f39826f9..4952b524a5 100644 --- a/demos/2d/isometric/engine.cfg +++ b/demos/2d/isometric/engine.cfg @@ -1,7 +1,7 @@ [application] name="Isometric Game" -main_scene="res://dungeon.scn" +main_scene="res://dungeon.tscn" icon="res://icon.png" [image_loader] diff --git a/demos/2d/isometric/tileset.scn b/demos/2d/isometric/tileset.scn Binary files differdeleted file mode 100644 index e487285f83..0000000000 --- a/demos/2d/isometric/tileset.scn +++ /dev/null diff --git a/demos/2d/isometric/tileset.tres b/demos/2d/isometric/tileset.tres new file mode 100644 index 0000000000..990ee01b65 --- /dev/null +++ b/demos/2d/isometric/tileset.tres @@ -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 ) ] + diff --git a/demos/2d/isometric/tileset_edit.tscn b/demos/2d/isometric/tileset_edit.tscn new file mode 100644 index 0000000000..2c83c4b52e --- /dev/null +++ b/demos/2d/isometric/tileset_edit.tscn @@ -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 + + diff --git a/demos/2d/isometric/troll.scn b/demos/2d/isometric/troll.scn Binary files differdeleted file mode 100644 index d53aac4fbf..0000000000 --- a/demos/2d/isometric/troll.scn +++ /dev/null diff --git a/demos/2d/isometric/troll.tscn b/demos/2d/isometric/troll.tscn new file mode 100644 index 0000000000..00080ba07b --- /dev/null +++ b/demos/2d/isometric/troll.tscn @@ -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 + + diff --git a/demos/2d/isometric_light/character_shader.tres b/demos/2d/isometric_light/character_shader.tres new file mode 100644 index 0000000000..8737e52e33 --- /dev/null +++ b/demos/2d/isometric_light/character_shader.tres @@ -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 ) + diff --git a/demos/2d/isometric_light/character_shder.res b/demos/2d/isometric_light/character_shder.res Binary files differdeleted file mode 100644 index 17cd9ad287..0000000000 --- a/demos/2d/isometric_light/character_shder.res +++ /dev/null diff --git a/demos/2d/isometric_light/column.scn b/demos/2d/isometric_light/column.scn Binary files differdeleted file mode 100644 index 03f3c2c976..0000000000 --- a/demos/2d/isometric_light/column.scn +++ /dev/null diff --git a/demos/2d/isometric_light/column.tscn b/demos/2d/isometric_light/column.tscn new file mode 100644 index 0000000000..6693e39b85 --- /dev/null +++ b/demos/2d/isometric_light/column.tscn @@ -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 + + diff --git a/demos/2d/isometric_light/cubio.gd b/demos/2d/isometric_light/cubio.gd index 508cd3728c..a26d5ae6fb 100644 --- a/demos/2d/isometric_light/cubio.gd +++ b/demos/2d/isometric_light/cubio.gd @@ -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) diff --git a/demos/2d/isometric_light/cubio.scn b/demos/2d/isometric_light/cubio.scn Binary files differdeleted file mode 100644 index 55e2185247..0000000000 --- a/demos/2d/isometric_light/cubio.scn +++ /dev/null diff --git a/demos/2d/isometric_light/cubio.tscn b/demos/2d/isometric_light/cubio.tscn new file mode 100644 index 0000000000..164f4d3549 --- /dev/null +++ b/demos/2d/isometric_light/cubio.tscn @@ -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 ) + + diff --git a/demos/2d/isometric_light/engine.cfg b/demos/2d/isometric_light/engine.cfg index a5b053aa95..e653d4750e 100644 --- a/demos/2d/isometric_light/engine.cfg +++ b/demos/2d/isometric_light/engine.cfg @@ -1,7 +1,7 @@ [application] name="Isometric 2D + Lighting" -main_scene="res://map.scn" +main_scene="res://map.tscn" icon="res://icon.png" [input] diff --git a/demos/2d/isometric_light/floor_shader.res b/demos/2d/isometric_light/floor_shader.res Binary files differdeleted file mode 100644 index c078d27b97..0000000000 --- a/demos/2d/isometric_light/floor_shader.res +++ /dev/null diff --git a/demos/2d/isometric_light/floor_shader.tres b/demos/2d/isometric_light/floor_shader.tres new file mode 100644 index 0000000000..e8f616cf1f --- /dev/null +++ b/demos/2d/isometric_light/floor_shader.tres @@ -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 ) + diff --git a/demos/2d/isometric_light/map.scn b/demos/2d/isometric_light/map.scn Binary files differdeleted file mode 100644 index da3fc5654f..0000000000 --- a/demos/2d/isometric_light/map.scn +++ /dev/null diff --git a/demos/2d/isometric_light/map.tscn b/demos/2d/isometric_light/map.tscn new file mode 100644 index 0000000000..3c65f9ecfc --- /dev/null +++ b/demos/2d/isometric_light/map.tscn @@ -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"] + + diff --git a/demos/2d/isometric_light/shoot.scn b/demos/2d/isometric_light/shoot.scn Binary files differdeleted file mode 100644 index 6909ae0c71..0000000000 --- a/demos/2d/isometric_light/shoot.scn +++ /dev/null diff --git a/demos/2d/isometric_light/shoot.tscn b/demos/2d/isometric_light/shoot.tscn new file mode 100644 index 0000000000..0a49b33d0b --- /dev/null +++ b/demos/2d/isometric_light/shoot.tscn @@ -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 ) + + diff --git a/demos/2d/isometric_light/tileset.res b/demos/2d/isometric_light/tileset.res Binary files differdeleted file mode 100644 index f64a4e32bd..0000000000 --- a/demos/2d/isometric_light/tileset.res +++ /dev/null diff --git a/demos/2d/isometric_light/tileset.tres b/demos/2d/isometric_light/tileset.tres new file mode 100644 index 0000000000..c6ccb9f956 --- /dev/null +++ b/demos/2d/isometric_light/tileset.tres @@ -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 ) ] + diff --git a/demos/2d/isometric_light/tileset_edit.tscn b/demos/2d/isometric_light/tileset_edit.tscn new file mode 100644 index 0000000000..a65d55fc35 --- /dev/null +++ b/demos/2d/isometric_light/tileset_edit.tscn @@ -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 + + diff --git a/demos/2d/isometric_light/tileset_scene.scn b/demos/2d/isometric_light/tileset_scene.scn Binary files differdeleted file mode 100644 index 4841cc18a7..0000000000 --- a/demos/2d/isometric_light/tileset_scene.scn +++ /dev/null diff --git a/demos/2d/isometric_light/torch.scn b/demos/2d/isometric_light/torch.scn Binary files differdeleted file mode 100644 index 9d6a8e2eae..0000000000 --- a/demos/2d/isometric_light/torch.scn +++ /dev/null diff --git a/demos/2d/isometric_light/torch.tscn b/demos/2d/isometric_light/torch.tscn new file mode 100644 index 0000000000..5ceeb57401 --- /dev/null +++ b/demos/2d/isometric_light/torch.tscn @@ -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 + + diff --git a/demos/2d/isometric_light/torch_shader.res b/demos/2d/isometric_light/torch_shader.res Binary files differdeleted file mode 100644 index 31a35de1da..0000000000 --- a/demos/2d/isometric_light/torch_shader.res +++ /dev/null diff --git a/demos/2d/isometric_light/torch_shader.tres b/demos/2d/isometric_light/torch_shader.tres new file mode 100644 index 0000000000..6a45b41fa2 --- /dev/null +++ b/demos/2d/isometric_light/torch_shader.tres @@ -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 ) + diff --git a/demos/2d/isometric_light/wall_shader.res b/demos/2d/isometric_light/wall_shader.res Binary files differdeleted file mode 100644 index 7e33c26201..0000000000 --- a/demos/2d/isometric_light/wall_shader.res +++ /dev/null diff --git a/demos/2d/isometric_light/wall_shader.tres b/demos/2d/isometric_light/wall_shader.tres new file mode 100644 index 0000000000..42d967cf76 --- /dev/null +++ b/demos/2d/isometric_light/wall_shader.tres @@ -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 ) + diff --git a/demos/2d/kinematic_char/colworld.scn b/demos/2d/kinematic_char/colworld.scn Binary files differdeleted file mode 100644 index ff10826563..0000000000 --- a/demos/2d/kinematic_char/colworld.scn +++ /dev/null diff --git a/demos/2d/kinematic_char/colworld.tscn b/demos/2d/kinematic_char/colworld.tscn new file mode 100644 index 0000000000..3bc4a21d6b --- /dev/null +++ b/demos/2d/kinematic_char/colworld.tscn @@ -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"] + + diff --git a/demos/2d/kinematic_char/engine.cfg b/demos/2d/kinematic_char/engine.cfg index 8bdd5e2fc5..0ab2a552ca 100644 --- a/demos/2d/kinematic_char/engine.cfg +++ b/demos/2d/kinematic_char/engine.cfg @@ -1,7 +1,7 @@ [application] name="Kinematic Character" -main_scene="res://colworld.scn" +main_scene="res://colworld.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/kinematic_char/player.scn b/demos/2d/kinematic_char/player.scn Binary files differdeleted file mode 100644 index 5ee86ce85d..0000000000 --- a/demos/2d/kinematic_char/player.scn +++ /dev/null diff --git a/demos/2d/kinematic_char/player.tscn b/demos/2d/kinematic_char/player.tscn new file mode 100644 index 0000000000..e3e5fa1d4a --- /dev/null +++ b/demos/2d/kinematic_char/player.tscn @@ -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 + + diff --git a/demos/2d/kinematic_col/colworld.scn b/demos/2d/kinematic_col/colworld.scn Binary files differdeleted file mode 100644 index 06607b7efd..0000000000 --- a/demos/2d/kinematic_col/colworld.scn +++ /dev/null diff --git a/demos/2d/kinematic_col/colworld.tscn b/demos/2d/kinematic_col/colworld.tscn new file mode 100644 index 0000000000..43eb58545e --- /dev/null +++ b/demos/2d/kinematic_col/colworld.tscn @@ -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 + + diff --git a/demos/2d/kinematic_col/engine.cfg b/demos/2d/kinematic_col/engine.cfg index 654288a9bd..7e2435a34e 100644 --- a/demos/2d/kinematic_col/engine.cfg +++ b/demos/2d/kinematic_col/engine.cfg @@ -1,7 +1,7 @@ [application] name="Kinematic Collision" -main_scene="res://colworld.scn" +main_scene="res://colworld.tscn" icon="res://icon.png" [input] diff --git a/demos/2d/kinematic_col/player.scn b/demos/2d/kinematic_col/player.scn Binary files differdeleted file mode 100644 index 28ad204472..0000000000 --- a/demos/2d/kinematic_col/player.scn +++ /dev/null diff --git a/demos/2d/kinematic_col/player.tscn b/demos/2d/kinematic_col/player.tscn new file mode 100644 index 0000000000..92ad693690 --- /dev/null +++ b/demos/2d/kinematic_col/player.tscn @@ -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 + + diff --git a/demos/2d/light_mask/engine.cfg b/demos/2d/light_mask/engine.cfg index 39608669ab..3c2f1f3a79 100644 --- a/demos/2d/light_mask/engine.cfg +++ b/demos/2d/light_mask/engine.cfg @@ -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] diff --git a/demos/2d/light_mask/lightmask.scn b/demos/2d/light_mask/lightmask.scn Binary files differdeleted file mode 100644 index fcf56b5b84..0000000000 --- a/demos/2d/light_mask/lightmask.scn +++ /dev/null diff --git a/demos/2d/light_mask/lightmask.tscn b/demos/2d/light_mask/lightmask.tscn new file mode 100644 index 0000000000..d489b735b0 --- /dev/null +++ b/demos/2d/light_mask/lightmask.tscn @@ -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" + + diff --git a/demos/2d/lights_shadows/engine.cfg b/demos/2d/lights_shadows/engine.cfg index 80142633d3..51a98eddd7 100644 --- a/demos/2d/lights_shadows/engine.cfg +++ b/demos/2d/lights_shadows/engine.cfg @@ -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] diff --git a/demos/2d/lights_shadows/light_shadows.scn b/demos/2d/lights_shadows/light_shadows.scn Binary files differdeleted file mode 100644 index 24ccd1e0be..0000000000 --- a/demos/2d/lights_shadows/light_shadows.scn +++ /dev/null diff --git a/demos/2d/lights_shadows/light_shadows.tscn b/demos/2d/lights_shadows/light_shadows.tscn new file mode 100644 index 0000000000..f31692889e --- /dev/null +++ b/demos/2d/lights_shadows/light_shadows.tscn @@ -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" + + diff --git a/demos/2d/lookat/engine.cfg b/demos/2d/lookat/engine.cfg index 81df107f0e..c37f39386e 100644 --- a/demos/2d/lookat/engine.cfg +++ b/demos/2d/lookat/engine.cfg @@ -1,5 +1,5 @@ [application] name="Look At Pointer" -main_scene="res://lookat.scn" +main_scene="res://lookat.tscn" icon="res://icon.png" diff --git a/demos/2d/lookat/lookat.scn b/demos/2d/lookat/lookat.scn Binary files differdeleted file mode 100644 index 66be060c06..0000000000 --- a/demos/2d/lookat/lookat.scn +++ /dev/null diff --git a/demos/2d/lookat/lookat.tscn b/demos/2d/lookat/lookat.tscn new file mode 100644 index 0000000000..8505dcc972 --- /dev/null +++ b/demos/2d/lookat/lookat.tscn @@ -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 + + diff --git a/demos/2d/motion/engine.cfg b/demos/2d/motion/engine.cfg index 6e660572d6..5395398e16 100644 --- a/demos/2d/motion/engine.cfg +++ b/demos/2d/motion/engine.cfg @@ -1,7 +1,7 @@ [application] name="Motion Test" -main_scene="res://motion.scn" +main_scene="res://motion.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/motion/motion.scn b/demos/2d/motion/motion.scn Binary files differdeleted file mode 100644 index 6e19356674..0000000000 --- a/demos/2d/motion/motion.scn +++ /dev/null diff --git a/demos/2d/motion/motion.tscn b/demos/2d/motion/motion.tscn new file mode 100644 index 0000000000..920ee55423 --- /dev/null +++ b/demos/2d/motion/motion.tscn @@ -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 + + diff --git a/demos/2d/navpoly/engine.cfg b/demos/2d/navpoly/engine.cfg index b750419915..e9921c4b5b 100644 --- a/demos/2d/navpoly/engine.cfg +++ b/demos/2d/navpoly/engine.cfg @@ -1,7 +1,7 @@ [application] name="Navigation Polygon (2D)" -main_scene="res://navigation.scn" +main_scene="res://navigation.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/navpoly/navigation.scn b/demos/2d/navpoly/navigation.scn Binary files differdeleted file mode 100644 index c56270bfd3..0000000000 --- a/demos/2d/navpoly/navigation.scn +++ /dev/null diff --git a/demos/2d/navpoly/navigation.tscn b/demos/2d/navpoly/navigation.tscn new file mode 100644 index 0000000000..b28c917be5 --- /dev/null +++ b/demos/2d/navpoly/navigation.tscn @@ -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 ) + + diff --git a/demos/2d/normalmaps/engine.cfg b/demos/2d/normalmaps/engine.cfg index 4f9f4f67f0..ba5fcca853 100644 --- a/demos/2d/normalmaps/engine.cfg +++ b/demos/2d/normalmaps/engine.cfg @@ -1,7 +1,7 @@ [application] name="2D Normal Mapping" -main_scene="res://normalmap.scn" +main_scene="res://normalmap.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/normalmaps/normal_material.res b/demos/2d/normalmaps/normal_material.res Binary files differdeleted file mode 100644 index 27928519f8..0000000000 --- a/demos/2d/normalmaps/normal_material.res +++ /dev/null diff --git a/demos/2d/normalmaps/normal_material.tres b/demos/2d/normalmaps/normal_material.tres new file mode 100644 index 0000000000..2741fbfe94 --- /dev/null +++ b/demos/2d/normalmaps/normal_material.tres @@ -0,0 +1,14 @@ +[gd_resource type="CanvasItemMaterial" load_steps=3 format=1] + +[ext_resource path="res://normal.jpg" type="Texture" id=1] + +[sub_resource type="CanvasItemShader" id=1] + +_code = { "fragment":"uniform texture normal;\n//normal maps expect Y-up, but 2D is Y-down, so must mirror this.\nNORMAL = tex(normal,UV).rgb * vec3(2.0,-2.0,1.0) - vec3(1.0,-1.0,0.0);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[resource] + +shader/shader = SubResource( 1 ) +shader/shading_mode = 0 +shader_param/normal = ExtResource( 1 ) + diff --git a/demos/2d/normalmaps/normalmap.scn b/demos/2d/normalmaps/normalmap.scn Binary files differdeleted file mode 100644 index 4501e7116a..0000000000 --- a/demos/2d/normalmaps/normalmap.scn +++ /dev/null diff --git a/demos/2d/normalmaps/normalmap.tscn b/demos/2d/normalmaps/normalmap.tscn new file mode 100644 index 0000000000..c7f8feb0f4 --- /dev/null +++ b/demos/2d/normalmaps/normalmap.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=5 format=1] + +[ext_resource path="res://normal_material.tres" type="CanvasItemMaterial" id=1] +[ext_resource path="res://diffuse.jpg" type="Texture" id=2] +[ext_resource path="res://light.png" type="Texture" id=3] + +[sub_resource type="Animation" id=1] + +resource/name = "motion" +length = 10.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("light:transform/pos") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 0, 2.5, 5, 7.5 ), "transitions":FloatArray( -2, -2, -2, -2 ), "values":[ Vector2( 177.912, 174.508 ), Vector2( 612.159, 161.147 ), Vector2( 667.275, 526.917 ), Vector2( 177.912, 526.917 ) ] } + +[node name="base" type="Node2D"] + +[node name="sprite" type="Sprite" parent="."] + +material/material = ExtResource( 1 ) +transform/pos = Vector2( 400, 300 ) +texture = ExtResource( 2 ) + +[node name="ambient" type="CanvasModulate" parent="."] + +color = Color( 0.0657094, 0.202485, 0.328838, 1 ) + +[node name="light" type="Light2D" parent="."] + +transform/pos = Vector2( 177.912, 174.508 ) +enabled = true +texture = ExtResource( 3 ) +offset = Vector2( 0, 0 ) +scale = 0.8 +color = Color( 1, 1, 1, 1 ) +energy = 1.0 +mode = 0 +range/height = 200.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/motion = SubResource( 1 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "motion" + + diff --git a/demos/2d/particles/engine.cfg b/demos/2d/particles/engine.cfg index b3dd540561..4b91966d8a 100644 --- a/demos/2d/particles/engine.cfg +++ b/demos/2d/particles/engine.cfg @@ -1,5 +1,5 @@ [application] name="Particle Systems" -main_scene="res://particles.xml" +main_scene="res://particles.tscn" icon="res://icon.png" diff --git a/demos/2d/particles/particles.tscn b/demos/2d/particles/particles.tscn new file mode 100644 index 0000000000..c9aca0518f --- /dev/null +++ b/demos/2d/particles/particles.tscn @@ -0,0 +1,174 @@ +[gd_scene load_steps=8 format=1] + +[ext_resource path="res://fire_particle.png" type="Texture" id=1] +[ext_resource path="res://smoke_particle.png" type="Texture" id=2] +[ext_resource path="res://spark_particle2.png" type="Texture" id=3] + +[sub_resource type="ColorRamp" id=1] + +offsets = FloatArray( 0, 0.1, 1 ) +colors = ColorArray( 1, 1, 1, 0, 0.886275, 0.371681, 0, 1, 1, 0.99115, 1, 0 ) + +[sub_resource type="ColorRamp" id=2] + +offsets = FloatArray( 0, 0.2, 1 ) +colors = ColorArray( 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 ) + +[sub_resource type="ColorRamp" id=3] + +offsets = FloatArray( 0, 0.1, 0.5, 1 ) +colors = ColorArray( 1, 1, 1, 0.870518, 1, 0.47451, 0.6, 1, 0.529412, 0.74902, 1, 1, 0, 1, 0.698039, 0 ) + +[sub_resource type="ColorRamp" id=4] + +offsets = FloatArray( 0, 0.1, 0.7, 1 ) +colors = ColorArray( 1, 1, 1, 0, 0.886275, 0.401015, 0, 1, 1, 0.679866, 0.432123, 0.12654, 0, 0, 0, 0 ) + +[node name="Node" type="Node"] + +[node name="Fire" type="Particles2D" parent="."] + +visibility/blend_mode = 1 +transform/pos = Vector2( 165.787, 527.801 ) +transform/rot = -179.791 +config/amount = 32 +config/lifetime = 1.0 +config/half_extents = Vector2( 15, 15 ) +config/local_space = false +config/texture = ExtResource( 1 ) +params/direction = 0.0 +params/spread = 0.0 +params/linear_velocity = 20.0 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 180.0 +params/gravity_strength = 80.0 +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 = 0.3 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +randomness/initial_angle = 2.0 +color/color_ramp = SubResource( 1 ) + +[node name="Smoke" type="Particles2D" parent="."] + +transform/pos = Vector2( 377.396, 543.147 ) +transform/rot = 176.576 +config/amount = 32 +config/lifetime = 4.0 +config/local_space = false +config/texture = ExtResource( 2 ) +params/direction = 0.0 +params/spread = 20.9073 +params/linear_velocity = 47.1515 +params/spin_velocity = 1.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 180.0 +params/initial_size = 1.0 +params/final_size = 3.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="Magic" type="Particles2D" parent="."] + +transform/pos = Vector2( 593.848, 531.064 ) +config/amount = 32 +config/lifetime = 2.0 +config/half_extents = Vector2( 40, 40 ) +config/local_space = false +config/texture = ExtResource( 3 ) +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 20.0 +params/spin_velocity = 0.3 +params/orbit_velocity = 0.01 +params/gravity_direction = 0.0 +params/gravity_strength = 9.8 +params/radial_accel = 0.0 +params/tangential_accel = 15.5152 +params/damping = 0.0 +params/initial_angle = 45.0 +params/initial_size = 3.0 +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/orbit_velocity = 100.0 +randomness/initial_angle = 1.0 +color/color_ramp = SubResource( 3 ) + +[node name="Explosion" type="Particles2D" parent="."] + +visibility/behind_parent = true +visibility/blend_mode = 1 +transform/pos = Vector2( 613.467, 182.62 ) +transform/rot = -179.791 +config/amount = 32 +config/lifetime = 2.0 +config/time_scale = 2.0 +config/half_extents = Vector2( 15, 15 ) +config/local_space = false +config/explosiveness = 0.05 +config/texture = ExtResource( 2 ) +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 184.547 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 180.0 +params/gravity_strength = 80.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 366.3 +params/initial_angle = 1.0 +params/initial_size = 0.7 +params/final_size = 3.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 4 ) + +[node name="Mask" type="Particles2D" parent="."] + +transform/pos = Vector2( 192.975, 141.598 ) +config/amount = 170 +config/lifetime = 0.1 +config/half_extents = Vector2( 128, 128 ) +config/local_space = false +config/texture = ExtResource( 3 ) +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 0.0 +params/spin_velocity = 2.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 1.0 +params/initial_size = 1.0 +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 +color/color = Color( 1, 0.477876, 0.60177, 1 ) +emission_points = Vector2Array( -0.125, -0.03125, 0.65625, -0.148438, 0.609375, 0.0234375, -0.757812, 0.375, 0.265625, 0.078125, 0.632812, 0.382812, 0.671875, 0.414062, 0.367188, -0.226562, 0.75, -0.125, 0.4375, 0.421875, 0.335938, -0.148438, -0.125, 0.257812, -0.171875, 0.359375, -0.601562, -0.265625, 0.375, 0.382812, -0.296875, 0.09375, -0.664062, -0.21875, -0.554688, -0.226562, -0.320312, 0.367188, -0.320312, -0.257812, 0, -0.257812, 0.578125, -0.25, -0.164062, 0.109375, -0.578125, -0.015625, -0.445312, 0, 0.273438, 0.101562, 0.320312, 0.03125, -0.125, 0.0703125, -0.570312, 0.289062, 0.257812, -0.09375, -0.585938, 0.179688, -0.664062, 0.0234375, -0.25, -0.0859375, 0.6875, -0.109375, 0.234375, 0, -0.5, -0.265625, 0.710938, 0.335938, 0.609375, -0.046875, 0.664062, -0.210938, -0.242188, -0.21875, -0.484375, -0.257812, -0.453125, 0.414062, 0.609375, -0.203125, 0.289062, 0.132812, -0.03125, -0.257812, -0.492188, -0.1875, 0.5625, -0.140625, -0.5625, 0.148438, -0.257812, -0.234375, -0.140625, 0.15625, -0.5625, 0.109375, 0.132812, 0.398438, -0.640625, -0.25, -0.585938, 0.304688, -0.328125, -0.257812, 0.226562, 0.148438, -0.546875, 0.210938, 0.625, 0.179688, 0.648438, -0.0078125, 0.367188, 0.328125, 0.265625, 0.0546875, -0.59375, -0.273438, -0.203125, 0.21875, 0.570312, -0.21875, -0.695312, 0.078125, -0.375, 0.03125, -0.164062, 0.0390625, 0.265625, 0.226562, -0.625, -0.109375, 0.203125, -0.132812, -0.671875, 0.328125, 0.625, -0.179688, -0.640625, 0.0859375, 0.65625, 0, -0.242188, 0.414062, 0.242188, 0.25, -0.148438, -0.0625, 0.390625, -0.25, 0.664062, 0.351562, 0.320312, 0.203125, -0.546875, 0.335938, 0.328125, -0.148438, 0.609375, -0.0625, -0.171875, 0.046875, -0.578125, 0.0546875, -0.304688, -0.28125, 0.734375, -0.0546875, 0.679688, 0.390625, -0.460938, 0.0859375, -0.703125, 0.101562, -0.140625, 0.234375, -0.507812, 0.078125, -0.25, 0.304688, -0.046875, 0.359375, 0.1875, 0.0703125, -0.570312, 0.242188, 0.65625, 0.0859375, -0.203125, -0.265625, -0.164062, -0.179688, 0.367188, -0.1875, -0.601562, -0.101562, -0.117188, -0.210938, -0.546875, 0.109375, -0.585938, -0.28125, -0.59375, -0.03125, 0.3125, -0.179688, 0.414062, 0.429688, -0.476562, -0.195312, -0.0703125, -0.21875, -0.5625, 0.304688, -0.609375, 0.226562, 0.429688, 0.429688, 0.203125, 0.242188, 0.078125, 0.367188, 0.242188, 0.03125, 0.601562, -0.0390625, 0.328125, 0.03125, -0.53125, -0.195312, -0.53125, -0.210938, 0.3125, -0.257812, 0.445312, -0.273438, 0.273438, -0.273438, -0.695312, -0.179688, 0.234375, -0.15625, -0.546875, -0.242188, -0.234375, -0.125, 0.734375, -0.226562, 0.367188, -0.234375, -0.15625, 0.046875, -0.445312, -0.226562, 0.625, 0.03125, -0.0859375, 0.210938, -0.648438, 0.296875, 0.335938, -0.109375, 0.625, -0.078125, 0.601562, 0.351562, 0.242188, 0.140625, 0.0234375, -0.273438, -0.679688, -0.109375, 0.640625, 0.15625, 0.171875, 0.0859375, -0.273438, -0.273438, -0.242188, 0.34375, 0.179688, 0.15625, -0.179688, -0.117188, 0.671875, 0.03125, -0.640625, 0.304688, 0.109375, -0.242188, -0.210938, 0.382812, -0.0859375, 0.0078125, -0.695312, 0.078125, 0.296875, 0.320312, 0.304688, -0.226562, 0.257812, -0.0234375, -0.203125, -0.015625, -0.648438, 0.335938, -0.703125, -0.132812, -0.273438, -0.210938, -0.15625, -0.273438, -0.0390625, 0.335938, 0.617188, 0.179688, 0.34375, 0.390625, -0.210938, -0.132812, -0.226562, -0.117188, 0.617188, -0.289062, 0.125, -0.21875, 0.71875, -0.164062, -0.570312, 0.1875, -0.1875, 0.382812, 0.640625, -0.296875, -0.125, 0.109375, 0.671875, 0.289062, -0.515625, 0.382812, 0.359375, -0.179688, 0.726562, -0.226562, 0.25, 0.320312, -0.328125, 0, -0.117188, -0.234375, -0.210938, -0.148438, -0.546875, -0.117188, 0.359375, 0.429688, -0.15625, -0.226562, 0.632812, -0.257812, -0.28125, -0.273438, 0.265625, 0.015625, -0.765625, 0.351562, 0.703125, 0.421875, -0.585938, 0.0078125, 0.28125, 0.109375, 0.304688, 0.171875, 0.65625, 0.421875, 0.078125, 0.382812, 0.179688, 0.25, -0.382812, 0.0703125, 0.585938, -0.140625, -0.109375, 0.382812, -0.59375, -0.09375, 0.4375, 0.398438, -0.132812, 0.0234375, -0.625, 0.0078125, -0.210938, -0.21875, -0.25, 0.257812, 0.257812, 0.398438, 0.625, 0.195312, 0.148438, -0.234375, -0.476562, 0.398438, -0.210938, 0.046875, 0.695312, -0.101562, 0.695312, 0.140625, -0.492188, -0.1875, 0.25, -0.09375, -0.195312, -0.195312, -0.328125, 0.0703125, -0.242188, -0.0625, 0.296875, 0.34375, -0.632812, 0.0078125, -0.265625, 0.09375, 0.421875, -0.203125, 0.171875, 0.03125, -0.09375, -0.0703125, 0.289062, 0.0859375, -0.609375, 0.390625, -0.554688, 0.257812, -0.6875, 0.0078125, 0.304688, 0.414062, 0.226562, 0.390625, -0.21875, -0.28125, 0.265625, 0.320312, -0.671875, 0.234375, -0.210938, 0.03125, 0.679688, -0.0234375, 0.359375, -0.203125, 0.3125, 0.289062, 0.671875, 0.140625, -0.78125, 0.414062, -0.546875, 0.40625, 0.625, 0.367188, 0.0859375, 0.421875, 0.1875, -0.09375, 0.617188, 0.40625, -0.078125, -0.0390625, 0.695312, 0.0859375, -0.6875, -0.265625, 0.421875, -0.265625, 0.601562, -0.0234375, -0.3125, -0.265625, -0.078125, 0.046875, 0.617188, 0.164062, 0.273438, -0.03125, -0.695312, -0.015625, -0.5625, 0.164062, -0.578125, 0.265625, -0.726562, 0.421875, -0.078125, -0.25, -0.171875, 0.171875, -0.234375, -0.0390625, 0.257812, 0.429688, -0.179688, -0.117188, 0.351562, -0.03125, -0.78125, -0.234375, -0.546875, -0.171875, -0.460938, -0.234375, -0.164062, 0.09375, -0.65625, 0.398438, -0.445312, 0.0859375, -0.71875, -0.226562, 0.671875, 0.101562, -0.46875, -0.195312, -0.71875, -0.265625, 0.617188, 0.125, -0.78125, -0.21875, -0.226562, -0.15625, 0.21875, 0.0234375, 0.289062, 0.101562, 0.648438, -0.171875, 0.390625, -0.273438, -0.257812, 0.078125, -0.21875, 0, 0.65625, -0.203125, -0.679688, 0.171875, -0.1875, 0.328125, -0.46875, -0.28125, 0.273438, 0, 0.664062, 0.296875, -0.140625, 0.335938, -0.625, 0.382812, -0.34375, -0.21875, -0.171875, -0.25, -0.546875, -0.117188, -0.117188, -0.203125, -0.1875, 0.351562, -0.585938, -0.109375, -0.203125, -0.0625, -0.570312, 0.03125, -0.5625, -0.109375, 0.601562, -0.195312, 0.3125, 0.140625, -0.101562, 0.25, 0.25, 0.3125, 0.125, -0.203125, -0.09375, -0.140625, -0.242188, 0.414062, 0.664062, -0.0625, -0.21875, -0.078125, 0.6875, -0.210938, -0.140625, 0.015625, -0.632812, -0.25, -0.109375, 0.234375, -0.695312, 0.015625, -0.3125, -0.28125, 0.296875, -0.0234375, 0.296875, 0.203125, -0.125, 0.234375, 0.570312, 0.390625, -0.554688, 0.203125, -0.5625, 0.351562, -0.15625, 0.21875, -0.375, 0.0390625, -0.226562, -0.140625, 0.695312, 0.164062, 0.632812, 0.367188, -0.328125, -0.210938, -0.59375, 0.34375, 0.304688, -0.242188, -0.34375, 0.0703125, -0.679688, -0.179688, 0.664062, 0.101562, 0.34375, 0.171875, -0.695312, -0.078125, -0.242188, -0.0546875, 0.304688, -0.234375, -0.0078125, -0.21875, -0.632812, 0.203125, 0.625, 0.03125, -0.414062, 0.015625, 0.273438, -0.078125, 0.695312, 0.28125, 0.34375, 0.101562, -0.164062, 0.289062, -0.1875, 0.273438, -0.203125, 0.0703125, 0.734375, -0.171875, -0.59375, 0.34375, -0.15625, 0.210938, 0.429688, 0.375, -0.234375, 0.34375, 0.617188, 0.101562, 0.703125, 0, -0.578125, 0.148438, 0.21875, -0.171875, -0.304688, 0.375, -0.65625, -0.09375, -0.101562, 0.25, -0.4375, 0.03125, -0.242188, 0.421875, -0.546875, 0.0625, -0.632812, -0.148438, -0.125, 0.179688, 0.179688, 0.304688, -0.265625, 0.078125, -0.289062, 0.421875, -0.585938, 0.1875, -0.289062, 0.34375, 0.273438, 0.367188, -0.109375, 0.117188, 0.34375, 0.046875, -0.0625, 0.320312, 0.6875, -0.234375, -0.523438, 0.320312, -0.09375, -0.242188, -0.65625, 0.25, -0.609375, -0.117188, -0.140625, 0.140625, 0.28125, -0.09375, -0.625, -0.28125, 0.34375, 0.328125, 0.265625, 0.109375, -0.609375, 0.0078125, -0.078125, -0.234375, -0.289062, -0.203125, 0.289062, 0.289062, -0.0859375, 0.0078125, -0.101562, -0.28125, -0.625, -0.101562, -0.546875, 0.382812, -0.539062, -0.195312, -0.210938, 0.046875, -0.492188, 0.390625, -0.664062, -0.0703125, 0.71875, -0.101562, -0.140625, -0.046875, 0.695312, 0.289062, -0.710938, 0.429688, -0.703125, 0.3125, -0.203125, 0.109375, 0.421875, -0.273438, 0.304688, 0.21875, 0.328125, 0.257812, -0.632812, -0.0703125, 0.320312, -0.140625, 0.265625, -0.203125, -0.109375, -0.179688, 0.25, -0.210938, 0.65625, 0.109375, -0.648438, -0.0625, -0.0859375, 0.375, -0.429688, 0.398438, 0.320312, 0.3125, -0.0703125, 0.265625, 0.648438, 0.0078125, 0.320312, 0.335938, 0.398438, 0.421875, -0.101562, -0.0625, -0.296875, 0.40625, 0.695312, -0.0390625, 0.335938, 0.21875, -0.546875, 0.117188, -0.476562, 0.390625, -0.648438, 0.117188, -0.078125, -0.28125, 0.328125, 0.289062, -0.226562, 0.179688, 0.226562, 0.375, -0.429688, 0.382812, -0.0546875, 0.34375, 0.59375, -0.125, 0.632812, 0.265625, 0.226562, 0.3125, -0.523438, -0.140625, -0.546875, 0.046875, 0.242188, -0.148438, -0.648438, 0.0234375, -0.289062, 0, -0.546875, 0.101562, -0.125, -0.0625, -0.492188, 0.367188, 0.328125, 0.15625, -0.351562, 0.0546875, -0.609375, 0.414062, -0.296875, 0.09375, 0.671875, -0.203125, -0.257812, -0.273438, -0.335938, 0.414062, 0.65625, -0.195312, -0.601562, -0.101562, -0.203125, -0.078125, 0.210938, 0.242188, 0.296875, 0.335938, -0.578125, 0.40625, -0.664062, -0.078125, -0.0859375, 0.390625, 0.171875, 0.304688, -0.6875, 0.390625, -0.554688, 0.0078125, -0.570312, -0.179688, -0.210938, -0.09375, 0.726562, -0.03125, -0.546875, -0.0859375, -0.265625, -0.171875, -0.65625, 0.179688, -0.171875, 0.257812, -0.164062, -0.171875, 0.203125, 0.335938, -0.640625, 0.21875, 0.390625, 0.375, 0.6875, -0.234375, 0.742188, 0.34375, -0.0546875, 0.351562, -0.632812, 0.195312, 0.671875, -0.21875, 0.195312, 0.015625, 0.226562, 0.117188, -0.507812, 0.078125, -0.140625, -0.15625, 0.703125, -0.28125, 0.226562, -0.140625, 0.328125, 0.421875, 0.3125, 0.1875, 0.703125, 0.078125, 0.351562, 0.289062, 0.21875, -0.242188, -0.328125, 0, 0.171875, 0.101562, -0.304688, -0.242188, -0.210938, 0.078125, 0.625, -0.0078125, 0.25, 0.242188, -0.664062, 0.117188, 0.203125, -0.140625, 0.226562, 0.429688, 0.328125, -0.203125, -0.679688, 0.0703125, -0.195312, -0.148438, -0.523438, 0.328125, 0.382812, -0.257812, 0.578125, -0.171875, 0.65625, 0.320312, -0.632812, -0.148438, 0.703125, 0.0703125, -0.53125, 0.398438, -0.414062, 0.03125, -0.0859375, 0.0546875, -0.53125, 0.335938, 0.304688, 0.429688, -0.234375, -0.148438, -0.375, 0.046875, -0.148438, 0.289062, -0.0390625, 0.421875, 0.226562, -0.125, -0.570312, 0.398438, -0.0703125, -0.0234375, 0.257812, -0.132812 ) + + diff --git a/demos/2d/particles/particles.xml b/demos/2d/particles/particles.xml deleted file mode 100644 index c21ccb1f55..0000000000 --- a/demos/2d/particles/particles.xml +++ /dev/null @@ -1,275 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="8" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://fire_particle.png" type="Texture" index="0"></ext_resource> - <ext_resource path="res://smoke_particle.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://spark_particle2.png" type="Texture" index="2"></ext_resource> - <resource type="ColorRamp" path="local://1"> - <real_array name="offsets" len="3"> 0, 0.1, 1 </real_array> - <color_array name="colors" len="3"> 1, 1, 1, 0, 0.886275, 0.371681, 0, 1, 1, 0.99115, 1, 0 </color_array> - - </resource> - <resource type="ColorRamp" path="local://2"> - <real_array name="offsets" len="3"> 0, 0.2, 1 </real_array> - <color_array name="colors" len="3"> 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 </color_array> - - </resource> - <resource type="ColorRamp" path="local://3"> - <real_array name="offsets" len="4"> 0, 0.1, 0.5, 1 </real_array> - <color_array name="colors" len="4"> 1, 1, 1, 0.870518, 1, 0.47451, 0.6, 1, 0.529412, 0.74902, 1, 1, 0, 1, 0.698039, 0 </color_array> - - </resource> - <resource type="ColorRamp" path="local://4"> - <real_array name="offsets" len="4"> 0, 0.1, 0.7, 1 </real_array> - <color_array name="colors" len="4"> 1, 1, 1, 0, 0.886275, 0.401015, 0, 1, 1, 0.679866, 0.432123, 0.12654, 0, 0, 0, 0 </color_array> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="41"> - <string> "Node" </string> - <string> "__meta__" </string> - <string> "Fire" </string> - <string> "visibility/blend_mode" </string> - <string> "transform/pos" </string> - <string> "transform/rot" </string> - <string> "config/amount" </string> - <string> "config/lifetime" </string> - <string> "config/half_extents" </string> - <string> "config/local_space" </string> - <string> "config/texture" </string> - <string> "params/direction" </string> - <string> "params/spread" </string> - <string> "params/linear_velocity" </string> - <string> "params/spin_velocity" </string> - <string> "params/orbit_velocity" </string> - <string> "params/gravity_direction" </string> - <string> "params/gravity_strength" </string> - <string> "params/radial_accel" </string> - <string> "params/tangential_accel" </string> - <string> "params/damping" </string> - <string> "params/initial_angle" </string> - <string> "params/initial_size" </string> - <string> "params/final_size" </string> - <string> "params/hue_variation" </string> - <string> "params/anim_speed_scale" </string> - <string> "params/anim_initial_pos" </string> - <string> "randomness/initial_angle" </string> - <string> "color/color_ramp" </string> - <string> "Particles2D" </string> - <string> "Smoke" </string> - <string> "randomness/spin_velocity" </string> - <string> "Magic" </string> - <string> "randomness/orbit_velocity" </string> - <string> "Explosion" </string> - <string> "visibility/behind_parent" </string> - <string> "config/time_scale" </string> - <string> "config/explosiveness" </string> - <string> "Mask" </string> - <string> "color/color" </string> - <string> "emission_points" </string> - </string_array> - <string> "node_count" </string> - <int> 6 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="304"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 29, 2, -1, 26, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 8, 6, 9, 7, 10, 8, 11, 9, 12, 9, 13, 10, 14, 9, 15, 9, 16, 11, 17, 12, 18, 9, 19, 9, 20, 9, 21, 11, 22, 13, 23, 14, 24, 9, 25, 5, 26, 9, 27, 15, 28, 16, 0, 0, 0, 29, 30, -1, 25, 4, 17, 5, 18, 6, 4, 7, 19, 9, 7, 10, 20, 11, 9, 12, 21, 13, 22, 14, 5, 15, 9, 16, 9, 17, 9, 18, 9, 19, 9, 20, 9, 21, 11, 22, 5, 23, 23, 24, 9, 25, 5, 26, 9, 31, 5, 27, 5, 28, 24, 0, 0, 0, 29, 32, -1, 26, 4, 25, 6, 4, 7, 15, 8, 26, 9, 7, 10, 27, 11, 9, 12, 11, 13, 10, 14, 14, 15, 28, 16, 9, 17, 29, 18, 9, 19, 30, 20, 9, 21, 31, 22, 23, 23, 5, 24, 9, 25, 5, 26, 9, 31, 5, 33, 32, 27, 5, 28, 33, 0, 0, 0, 29, 34, -1, 28, 35, 34, 3, 1, 4, 35, 5, 3, 6, 4, 7, 15, 36, 15, 8, 6, 9, 7, 37, 36, 10, 20, 11, 9, 12, 11, 13, 37, 14, 9, 15, 9, 16, 11, 17, 12, 18, 9, 19, 9, 20, 38, 21, 5, 22, 13, 23, 23, 24, 9, 25, 5, 26, 9, 28, 39, 0, 0, 0, 29, 38, -1, 25, 4, 40, 6, 41, 7, 42, 8, 43, 9, 7, 10, 27, 11, 9, 12, 11, 13, 9, 14, 15, 15, 9, 16, 9, 17, 9, 18, 9, 19, 9, 20, 9, 21, 5, 22, 5, 23, 5, 24, 9, 25, 5, 26, 9, 31, 5, 39, 44, 40, 45, 0 </int_array> - <string> "variants" </string> - <array len="46" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -193.367, -465.428 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 0.440127 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <int> 1 </int> - <vector2> 165.787, 527.801 </vector2> - <real> -179.790649 </real> - <int> 32 </int> - <real> 1 </real> - <vector2> 15, 15 </vector2> - <bool> False </bool> - <resource external="0"> </resource> - <real> 0 </real> - <real> 20 </real> - <real> 180 </real> - <real> 80 </real> - <real> 0.7 </real> - <real> 0.3 </real> - <real> 2 </real> - <resource resource_type="ColorRamp" path="local://1"> </resource> - <vector2> 377.396, 543.147 </vector2> - <real> 176.575912 </real> - <real> 4 </real> - <resource external="1"> </resource> - <real> 20.907272 </real> - <real> 47.151516 </real> - <real> 3 </real> - <resource resource_type="ColorRamp" path="local://2"> </resource> - <vector2> 593.848, 531.064 </vector2> - <vector2> 40, 40 </vector2> - <resource external="2"> </resource> - <real> 0.01 </real> - <real> 9.8 </real> - <real> 15.515152 </real> - <real> 45 </real> - <real> 100 </real> - <resource resource_type="ColorRamp" path="local://3"> </resource> - <bool> True </bool> - <vector2> 613.467, 182.62 </vector2> - <real> 0.05 </real> - <real> 184.546997 </real> - <real> 366.300415 </real> - <resource resource_type="ColorRamp" path="local://4"> </resource> - <vector2> 192.975, 141.598 </vector2> - <int> 170 </int> - <real> 0.1 </real> - <vector2> 128, 128 </vector2> - <color> 1, 0.477876, 0.60177, 1 </color> - <vector2_array len="512"> -0.125, -0.03125, 0.65625, -0.148438, 0.609375, 0.0234375, -0.757812, 0.375, 0.265625, 0.078125, 0.632812, 0.382812, 0.671875, 0.414062, 0.367188, -0.226562, 0.75, -0.125, 0.4375, 0.421875, 0.335938, -0.148438, -0.125, 0.257812, -0.171875, 0.359375, -0.601562, -0.265625, 0.375, 0.382812, -0.296875, 0.09375, -0.664062, -0.21875, -0.554688, -0.226562, -0.320312, 0.367188, -0.320312, -0.257812, 0, -0.257812, 0.578125, -0.25, -0.164062, 0.109375, -0.578125, -0.015625, -0.445312, 0, 0.273438, 0.101562, 0.320312, 0.03125, -0.125, 0.0703125, -0.570312, 0.289062, 0.257812, -0.09375, -0.585938, 0.179688, -0.664062, 0.0234375, -0.25, -0.0859375, 0.6875, -0.109375, 0.234375, 0, -0.5, -0.265625, 0.710938, 0.335938, 0.609375, -0.046875, 0.664062, -0.210938, -0.242188, -0.21875, -0.484375, -0.257812, -0.453125, 0.414062, 0.609375, -0.203125, 0.289062, 0.132812, -0.03125, -0.257812, -0.492188, -0.1875, 0.5625, -0.140625, -0.5625, 0.148438, -0.257812, -0.234375, -0.140625, 0.15625, -0.5625, 0.109375, 0.132812, 0.398438, -0.640625, -0.25, -0.585938, 0.304688, -0.328125, -0.257812, 0.226562, 0.148438, -0.546875, 0.210938, 0.625, 0.179688, 0.648438, -0.0078125, 0.367188, 0.328125, 0.265625, 0.0546875, -0.59375, -0.273438, -0.203125, 0.21875, 0.570312, -0.21875, -0.695312, 0.078125, -0.375, 0.03125, -0.164062, 0.0390625, 0.265625, 0.226562, -0.625, -0.109375, 0.203125, -0.132812, -0.671875, 0.328125, 0.625, -0.179688, -0.640625, 0.0859375, 0.65625, 0, -0.242188, 0.414062, 0.242188, 0.25, -0.148438, -0.0625, 0.390625, -0.25, 0.664062, 0.351562, 0.320312, 0.203125, -0.546875, 0.335938, 0.328125, -0.148438, 0.609375, -0.0625, -0.171875, 0.046875, -0.578125, 0.0546875, -0.304688, -0.28125, 0.734375, -0.0546875, 0.679688, 0.390625, -0.460938, 0.0859375, -0.703125, 0.101562, -0.140625, 0.234375, -0.507812, 0.078125, -0.25, 0.304688, -0.046875, 0.359375, 0.1875, 0.0703125, -0.570312, 0.242188, 0.65625, 0.0859375, -0.203125, -0.265625, -0.164062, -0.179688, 0.367188, -0.1875, -0.601562, -0.101562, -0.117188, -0.210938, -0.546875, 0.109375, -0.585938, -0.28125, -0.59375, -0.03125, 0.3125, -0.179688, 0.414062, 0.429688, -0.476562, -0.195312, -0.0703125, -0.21875, -0.5625, 0.304688, -0.609375, 0.226562, 0.429688, 0.429688, 0.203125, 0.242188, 0.078125, 0.367188, 0.242188, 0.03125, 0.601562, -0.0390625, 0.328125, 0.03125, -0.53125, -0.195312, -0.53125, -0.210938, 0.3125, -0.257812, 0.445312, -0.273438, 0.273438, -0.273438, -0.695312, -0.179688, 0.234375, -0.15625, -0.546875, -0.242188, -0.234375, -0.125, 0.734375, -0.226562, 0.367188, -0.234375, -0.15625, 0.046875, -0.445312, -0.226562, 0.625, 0.03125, -0.0859375, 0.210938, -0.648438, 0.296875, 0.335938, -0.109375, 0.625, -0.078125, 0.601562, 0.351562, 0.242188, 0.140625, 0.0234375, -0.273438, -0.679688, -0.109375, 0.640625, 0.15625, 0.171875, 0.0859375, -0.273438, -0.273438, -0.242188, 0.34375, 0.179688, 0.15625, -0.179688, -0.117188, 0.671875, 0.03125, -0.640625, 0.304688, 0.109375, -0.242188, -0.210938, 0.382812, -0.0859375, 0.0078125, -0.695312, 0.078125, 0.296875, 0.320312, 0.304688, -0.226562, 0.257812, -0.0234375, -0.203125, -0.015625, -0.648438, 0.335938, -0.703125, -0.132812, -0.273438, -0.210938, -0.15625, -0.273438, -0.0390625, 0.335938, 0.617188, 0.179688, 0.34375, 0.390625, -0.210938, -0.132812, -0.226562, -0.117188, 0.617188, -0.289062, 0.125, -0.21875, 0.71875, -0.164062, -0.570312, 0.1875, -0.1875, 0.382812, 0.640625, -0.296875, -0.125, 0.109375, 0.671875, 0.289062, -0.515625, 0.382812, 0.359375, -0.179688, 0.726562, -0.226562, 0.25, 0.320312, -0.328125, 0, -0.117188, -0.234375, -0.210938, -0.148438, -0.546875, -0.117188, 0.359375, 0.429688, -0.15625, -0.226562, 0.632812, -0.257812, -0.28125, -0.273438, 0.265625, 0.015625, -0.765625, 0.351562, 0.703125, 0.421875, -0.585938, 0.0078125, 0.28125, 0.109375, 0.304688, 0.171875, 0.65625, 0.421875, 0.078125, 0.382812, 0.179688, 0.25, -0.382812, 0.0703125, 0.585938, -0.140625, -0.109375, 0.382812, -0.59375, -0.09375, 0.4375, 0.398438, -0.132812, 0.0234375, -0.625, 0.0078125, -0.210938, -0.21875, -0.25, 0.257812, 0.257812, 0.398438, 0.625, 0.195312, 0.148438, -0.234375, -0.476562, 0.398438, -0.210938, 0.046875, 0.695312, -0.101562, 0.695312, 0.140625, -0.492188, -0.1875, 0.25, -0.09375, -0.195312, -0.195312, -0.328125, 0.0703125, -0.242188, -0.0625, 0.296875, 0.34375, -0.632812, 0.0078125, -0.265625, 0.09375, 0.421875, -0.203125, 0.171875, 0.03125, -0.09375, -0.0703125, 0.289062, 0.0859375, -0.609375, 0.390625, -0.554688, 0.257812, -0.6875, 0.0078125, 0.304688, 0.414062, 0.226562, 0.390625, -0.21875, -0.28125, 0.265625, 0.320312, -0.671875, 0.234375, -0.210938, 0.03125, 0.679688, -0.0234375, 0.359375, -0.203125, 0.3125, 0.289062, 0.671875, 0.140625, -0.78125, 0.414062, -0.546875, 0.40625, 0.625, 0.367188, 0.0859375, 0.421875, 0.1875, -0.09375, 0.617188, 0.40625, -0.078125, -0.0390625, 0.695312, 0.0859375, -0.6875, -0.265625, 0.421875, -0.265625, 0.601562, -0.0234375, -0.3125, -0.265625, -0.078125, 0.046875, 0.617188, 0.164062, 0.273438, -0.03125, -0.695312, -0.015625, -0.5625, 0.164062, -0.578125, 0.265625, -0.726562, 0.421875, -0.078125, -0.25, -0.171875, 0.171875, -0.234375, -0.0390625, 0.257812, 0.429688, -0.179688, -0.117188, 0.351562, -0.03125, -0.78125, -0.234375, -0.546875, -0.171875, -0.460938, -0.234375, -0.164062, 0.09375, -0.65625, 0.398438, -0.445312, 0.0859375, -0.71875, -0.226562, 0.671875, 0.101562, -0.46875, -0.195312, -0.71875, -0.265625, 0.617188, 0.125, -0.78125, -0.21875, -0.226562, -0.15625, 0.21875, 0.0234375, 0.289062, 0.101562, 0.648438, -0.171875, 0.390625, -0.273438, -0.257812, 0.078125, -0.21875, 0, 0.65625, -0.203125, -0.679688, 0.171875, -0.1875, 0.328125, -0.46875, -0.28125, 0.273438, 0, 0.664062, 0.296875, -0.140625, 0.335938, -0.625, 0.382812, -0.34375, -0.21875, -0.171875, -0.25, -0.546875, -0.117188, -0.117188, -0.203125, -0.1875, 0.351562, -0.585938, -0.109375, -0.203125, -0.0625, -0.570312, 0.03125, -0.5625, -0.109375, 0.601562, -0.195312, 0.3125, 0.140625, -0.101562, 0.25, 0.25, 0.3125, 0.125, -0.203125, -0.09375, -0.140625, -0.242188, 0.414062, 0.664062, -0.0625, -0.21875, -0.078125, 0.6875, -0.210938, -0.140625, 0.015625, -0.632812, -0.25, -0.109375, 0.234375, -0.695312, 0.015625, -0.3125, -0.28125, 0.296875, -0.0234375, 0.296875, 0.203125, -0.125, 0.234375, 0.570312, 0.390625, -0.554688, 0.203125, -0.5625, 0.351562, -0.15625, 0.21875, -0.375, 0.0390625, -0.226562, -0.140625, 0.695312, 0.164062, 0.632812, 0.367188, -0.328125, -0.210938, -0.59375, 0.34375, 0.304688, -0.242188, -0.34375, 0.0703125, -0.679688, -0.179688, 0.664062, 0.101562, 0.34375, 0.171875, -0.695312, -0.078125, -0.242188, -0.0546875, 0.304688, -0.234375, -0.0078125, -0.21875, -0.632812, 0.203125, 0.625, 0.03125, -0.414062, 0.015625, 0.273438, -0.078125, 0.695312, 0.28125, 0.34375, 0.101562, -0.164062, 0.289062, -0.1875, 0.273438, -0.203125, 0.0703125, 0.734375, -0.171875, -0.59375, 0.34375, -0.15625, 0.210938, 0.429688, 0.375, -0.234375, 0.34375, 0.617188, 0.101562, 0.703125, 0, -0.578125, 0.148438, 0.21875, -0.171875, -0.304688, 0.375, -0.65625, -0.09375, -0.101562, 0.25, -0.4375, 0.03125, -0.242188, 0.421875, -0.546875, 0.0625, -0.632812, -0.148438, -0.125, 0.179688, 0.179688, 0.304688, -0.265625, 0.078125, -0.289062, 0.421875, -0.585938, 0.1875, -0.289062, 0.34375, 0.273438, 0.367188, -0.109375, 0.117188, 0.34375, 0.046875, -0.0625, 0.320312, 0.6875, -0.234375, -0.523438, 0.320312, -0.09375, -0.242188, -0.65625, 0.25, -0.609375, -0.117188, -0.140625, 0.140625, 0.28125, -0.09375, -0.625, -0.28125, 0.34375, 0.328125, 0.265625, 0.109375, -0.609375, 0.0078125, -0.078125, -0.234375, -0.289062, -0.203125, 0.289062, 0.289062, -0.0859375, 0.0078125, -0.101562, -0.28125, -0.625, -0.101562, -0.546875, 0.382812, -0.539062, -0.195312, -0.210938, 0.046875, -0.492188, 0.390625, -0.664062, -0.0703125, 0.71875, -0.101562, -0.140625, -0.046875, 0.695312, 0.289062, -0.710938, 0.429688, -0.703125, 0.3125, -0.203125, 0.109375, 0.421875, -0.273438, 0.304688, 0.21875, 0.328125, 0.257812, -0.632812, -0.0703125, 0.320312, -0.140625, 0.265625, -0.203125, -0.109375, -0.179688, 0.25, -0.210938, 0.65625, 0.109375, -0.648438, -0.0625, -0.0859375, 0.375, -0.429688, 0.398438, 0.320312, 0.3125, -0.0703125, 0.265625, 0.648438, 0.0078125, 0.320312, 0.335938, 0.398438, 0.421875, -0.101562, -0.0625, -0.296875, 0.40625, 0.695312, -0.0390625, 0.335938, 0.21875, -0.546875, 0.117188, -0.476562, 0.390625, -0.648438, 0.117188, -0.078125, -0.28125, 0.328125, 0.289062, -0.226562, 0.179688, 0.226562, 0.375, -0.429688, 0.382812, -0.0546875, 0.34375, 0.59375, -0.125, 0.632812, 0.265625, 0.226562, 0.3125, -0.523438, -0.140625, -0.546875, 0.046875, 0.242188, -0.148438, -0.648438, 0.0234375, -0.289062, 0, -0.546875, 0.101562, -0.125, -0.0625, -0.492188, 0.367188, 0.328125, 0.15625, -0.351562, 0.0546875, -0.609375, 0.414062, -0.296875, 0.09375, 0.671875, -0.203125, -0.257812, -0.273438, -0.335938, 0.414062, 0.65625, -0.195312, -0.601562, -0.101562, -0.203125, -0.078125, 0.210938, 0.242188, 0.296875, 0.335938, -0.578125, 0.40625, -0.664062, -0.078125, -0.0859375, 0.390625, 0.171875, 0.304688, -0.6875, 0.390625, -0.554688, 0.0078125, -0.570312, -0.179688, -0.210938, -0.09375, 0.726562, -0.03125, -0.546875, -0.0859375, -0.265625, -0.171875, -0.65625, 0.179688, -0.171875, 0.257812, -0.164062, -0.171875, 0.203125, 0.335938, -0.640625, 0.21875, 0.390625, 0.375, 0.6875, -0.234375, 0.742188, 0.34375, -0.0546875, 0.351562, -0.632812, 0.195312, 0.671875, -0.21875, 0.195312, 0.015625, 0.226562, 0.117188, -0.507812, 0.078125, -0.140625, -0.15625, 0.703125, -0.28125, 0.226562, -0.140625, 0.328125, 0.421875, 0.3125, 0.1875, 0.703125, 0.078125, 0.351562, 0.289062, 0.21875, -0.242188, -0.328125, 0, 0.171875, 0.101562, -0.304688, -0.242188, -0.210938, 0.078125, 0.625, -0.0078125, 0.25, 0.242188, -0.664062, 0.117188, 0.203125, -0.140625, 0.226562, 0.429688, 0.328125, -0.203125, -0.679688, 0.0703125, -0.195312, -0.148438, -0.523438, 0.328125, 0.382812, -0.257812, 0.578125, -0.171875, 0.65625, 0.320312, -0.632812, -0.148438, 0.703125, 0.0703125, -0.53125, 0.398438, -0.414062, 0.03125, -0.0859375, 0.0546875, -0.53125, 0.335938, 0.304688, 0.429688, -0.234375, -0.148438, -0.375, 0.046875, -0.148438, 0.289062, -0.0390625, 0.421875, 0.226562, -0.125, -0.570312, 0.398438, -0.0703125, -0.0234375, 0.257812, -0.132812 </vector2_array> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/bullet.tscn b/demos/2d/platformer/bullet.tscn new file mode 100644 index 0000000000..78f566c3b3 --- /dev/null +++ b/demos/2d/platformer/bullet.tscn @@ -0,0 +1,115 @@ +[gd_scene load_steps=6 format=1] + +[ext_resource path="res://bullet.gd" type="Script" id=1] +[ext_resource path="res://bullet.png" type="Texture" id=2] + +[sub_resource type="CircleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 10.0 + +[sub_resource type="ColorRamp" id=2] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 1, 1, 1, 1, 1, 0, 0, 0 ) + +[sub_resource type="Animation" id=3] + +length = 1.5 +loop = false +step = 0.0 +tracks/0/type = "value" +tracks/0/path = NodePath("particles:config/emitting") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } +tracks/1/type = "value" +tracks/1/path = NodePath("sprite:visibility/self_opacity") +tracks/1/interp = 1 +tracks/1/keys = { "cont":true, "times":FloatArray( 0, 1.00394 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] } +tracks/2/type = "method" +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/keys = { "times":FloatArray( 1.31 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } + +[node name="bullet" 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 = 2 +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="particles" type="Particles2D" parent="."] + +visibility/opacity = 0.559322 +visibility/blend_mode = 1 +config/amount = 24 +config/lifetime = 0.1 +config/local_space = false +config/texture = ExtResource( 2 ) +params/direction = 0.0 +params/spread = 10.0 +params/linear_velocity = 0.0 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 0.0 +params/initial_size = 1.0 +params/final_size = 0.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 2 ) + +[node name="sprite" type="Sprite" parent="."] + +texture = ExtResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="Timer" type="Timer" parent="."] + +process_mode = 1 +wait_time = 1.0 +one_shot = true +autostart = false + +[node name="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/shutdown = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[connection signal="timeout" from="Timer" to="." method="disable"] + + diff --git a/demos/2d/platformer/bullet.xml b/demos/2d/platformer/bullet.xml deleted file mode 100644 index 63938581ad..0000000000 --- a/demos/2d/platformer/bullet.xml +++ /dev/null @@ -1,333 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="6" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://bullet.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://bullet.gd" type="Script" index="0"></ext_resource> - <resource type="CircleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <real name="radius"> 10 </real> - - </resource> - <resource type="ColorRamp" path="local://3"> - <real_array name="offsets" len="2"> 0, 1 </real_array> - <color_array name="colors" len="2"> 1, 1, 1, 1, 1, 0, 0, 0 </color_array> - - </resource> - <resource type="Animation" path="local://2"> - <string name="resource/name"> "shutdown" </string> - <real name="length"> 1.5 </real> - <bool name="loop"> False </bool> - <real name="step"> 0 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "particles:config/emitting" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <bool> False </bool> - </array> - </dictionary> - <string name="tracks/1/type"> "value" </string> - <node_path name="tracks/1/path"> "sprite:visibility/self_opacity" </node_path> - <int name="tracks/1/interp"> 1 </int> - <dictionary name="tracks/1/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 0, 1.00394 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <real> 1 </real> - <real> 0 </real> - </array> - </dictionary> - <string name="tracks/2/type"> "method" </string> - <node_path name="tracks/2/path"> "." </node_path> - <int name="tracks/2/interp"> 1 </int> - <dictionary name="tracks/2/keys" shared="false"> - <string> "times" </string> - <real_array len="1"> 1.31 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <dictionary shared="false"> - <string> "args" </string> - <array len="0" shared="false"> - </array> - <string> "method" </string> - <string> "queue_free" </string> - </dictionary> - </array> - </dictionary> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 1 </int> - <string> "conns" </string> - <int_array len="6"> 4, 0, 73, 72, 2, 0 </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="74"> - <string> "bullet" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "RigidBody2D" </string> - <string> "particles" </string> - <string> "visibility/opacity" </string> - <string> "visibility/blend_mode" </string> - <string> "config/amount" </string> - <string> "config/lifetime" </string> - <string> "config/local_space" </string> - <string> "config/texture" </string> - <string> "params/direction" </string> - <string> "params/spread" </string> - <string> "params/linear_velocity" </string> - <string> "params/spin_velocity" </string> - <string> "params/orbit_velocity" </string> - <string> "params/gravity_direction" </string> - <string> "params/gravity_strength" </string> - <string> "params/radial_accel" </string> - <string> "params/tangential_accel" </string> - <string> "params/damping" </string> - <string> "params/initial_angle" </string> - <string> "params/initial_size" </string> - <string> "params/final_size" </string> - <string> "params/hue_variation" </string> - <string> "params/anim_speed_scale" </string> - <string> "params/anim_initial_pos" </string> - <string> "color/color_ramp" </string> - <string> "Particles2D" </string> - <string> "sprite" </string> - <string> "texture" </string> - <string> "Sprite" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - <string> "Timer" </string> - <string> "process_mode" </string> - <string> "wait_time" </string> - <string> "one_shot" </string> - <string> "autostart" </string> - <string> "anim" </string> - <string> "playback/process_mode" </string> - <string> "playback/default_blend_time" </string> - <string> "root/root" </string> - <string> "anims/shutdown" </string> - <string> "playback/active" </string> - <string> "playback/speed" </string> - <string> "blend_times" </string> - <string> "autoplay" </string> - <string> "AnimationPlayer" </string> - <string> "disable" </string> - <string> "timeout" </string> - </string_array> - <string> "node_count" </string> - <int> 6 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="166"> -1, -1, 24, 0, -1, 23, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 5, 10, 6, 11, 5, 12, 0, 13, 7, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 6, 20, 10, 21, 10, 22, 11, 23, 12, 0, 0, 0, 49, 25, -1, 23, 26, 13, 27, 3, 28, 14, 29, 15, 30, 0, 31, 16, 32, 6, 33, 17, 34, 6, 35, 6, 36, 6, 37, 6, 38, 6, 39, 6, 40, 6, 41, 6, 42, 6, 43, 5, 44, 6, 45, 6, 46, 5, 47, 6, 48, 18, 0, 0, 0, 52, 50, -1, 1, 51, 16, 0, 0, 0, 53, 53, -1, 3, 54, 1, 55, 0, 56, 19, 0, 0, 0, 57, 57, -1, 4, 58, 3, 59, 5, 60, 8, 61, 0, 0, 0, 0, 71, 62, -1, 8, 63, 3, 64, 6, 65, 20, 66, 21, 67, 8, 68, 5, 69, 22, 70, 23, 0 </int_array> - <string> "variants" </string> - <array len="24" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 0 </int> - <real> 1 </real> - <real> 0 </real> - <int> 2 </int> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -74.7573, -35.9676 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 3.424785 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <real> 0.559322 </real> - <int> 24 </int> - <real> 0.1 </real> - <resource external="1"> </resource> - <real> 10 </real> - <resource resource_type="ColorRamp" path="local://3"> </resource> - <int> -1 </int> - <node_path> ".." </node_path> - <resource resource_type="Animation" path="local://2"> </resource> - <array len="0" shared="false"> - </array> - <string> "" </string> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/coin.tscn b/demos/2d/platformer/coin.tscn new file mode 100644 index 0000000000..76730c83d4 --- /dev/null +++ b/demos/2d/platformer/coin.tscn @@ -0,0 +1,146 @@ +[gd_scene load_steps=10 format=1] + +[ext_resource path="res://coin.gd" type="Script" id=1] +[ext_resource path="res://coin.png" type="Texture" id=2] +[ext_resource path="res://sound_coin.wav" type="Sample" id=3] +[ext_resource path="res://bullet.png" type="Texture" id=4] + +[sub_resource type="CircleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 10.0 + +[sub_resource type="Animation" id=2] + +resource/name = "spin" +length = 1.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 2, 1, 0 ] } + +[sub_resource type="Animation" id=3] + +length = 8.0 +loop = false +step = 0.0 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 0 ] } +tracks/1/type = "value" +tracks/1/path = NodePath("sound:play/play") +tracks/1/interp = 1 +tracks/1/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ "coin" ] } +tracks/2/type = "value" +tracks/2/path = NodePath("particles:visibility/self_opacity") +tracks/2/interp = 1 +tracks/2/keys = { "cont":true, "times":FloatArray( 0, 1.66 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] } +tracks/3/type = "value" +tracks/3/path = NodePath("sprite:visibility/self_opacity") +tracks/3/interp = 1 +tracks/3/keys = { "cont":true, "times":FloatArray( 0, 0.4 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] } +tracks/4/type = "value" +tracks/4/path = NodePath("particles:config/emitting") +tracks/4/interp = 1 +tracks/4/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ true ] } +tracks/5/type = "method" +tracks/5/path = NodePath(".") +tracks/5/interp = 1 +tracks/5/keys = { "times":FloatArray( 2.7 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } + +[sub_resource type="SampleLibrary" id=4] + +samples/coin = { "db":0.0, "pitch":1.0, "sample":ExtResource( 3 ) } + +[sub_resource type="ColorRamp" id=5] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 1, 1, 1, 1, 0, 0, 0, 1 ) + +[node name="coin" type="Area2D"] + +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="."] + +texture = ExtResource( 2 ) +hframes = 4 + +[node name="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/spin = SubResource( 2 ) +anims/taken = SubResource( 3 ) +playback/active = true +playback/speed = 3.0 +blend_times = [ ] +autoplay = "spin" + +[node name="collision" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="sound" type="SamplePlayer2D" parent="."] + +params/volume_db = 0.0 +params/pitch_scale = 1.0 +params/attenuation/min_distance = 1.0 +params/attenuation/max_distance = 2048.0 +params/attenuation/distance_exp = 1.0 +config/polyphony = 1 +config/samples = SubResource( 4 ) +config/pitch_random = 0.0 + +[node name="particles" type="Particles2D" parent="."] + +visibility/blend_mode = 1 +config/amount = 8 +config/lifetime = 0.4 +config/emitting = false +config/half_extents = Vector2( 5, 5 ) +config/texture = ExtResource( 4 ) +params/direction = 0.0 +params/spread = 10.0 +params/linear_velocity = 0.0 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 0.0 +params/initial_size = 0.2 +params/final_size = 0.2 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 5 ) + +[node name="enabler" type="VisibilityEnabler2D" parent="."] + +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 + +[connection signal="body_enter" from="." to="." method="_on_body_enter"] + + diff --git a/demos/2d/platformer/coin.xml b/demos/2d/platformer/coin.xml deleted file mode 100644 index f33a63bd57..0000000000 --- a/demos/2d/platformer/coin.xml +++ /dev/null @@ -1,430 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="10" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://bullet.png" type="Texture" index="3"></ext_resource> - <ext_resource path="res://coin.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://sound_coin.wav" type="Sample" index="2"></ext_resource> - <ext_resource path="res://coin.gd" type="Script" index="0"></ext_resource> - <resource type="CircleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <real name="radius"> 10 </real> - - </resource> - <resource type="Animation" path="local://2"> - <string name="resource/name"> "taken" </string> - <real name="length"> 8 </real> - <bool name="loop"> False </bool> - <real name="step"> 0 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 0 </int> - </array> - </dictionary> - <string name="tracks/1/type"> "value" </string> - <node_path name="tracks/1/path"> "sound:play/play" </node_path> - <int name="tracks/1/interp"> 1 </int> - <dictionary name="tracks/1/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <string> "coin" </string> - </array> - </dictionary> - <string name="tracks/2/type"> "value" </string> - <node_path name="tracks/2/path"> "particles:visibility/self_opacity" </node_path> - <int name="tracks/2/interp"> 1 </int> - <dictionary name="tracks/2/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 0, 1.66 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <real> 1 </real> - <real> 0 </real> - </array> - </dictionary> - <string name="tracks/3/type"> "value" </string> - <node_path name="tracks/3/path"> "sprite:visibility/self_opacity" </node_path> - <int name="tracks/3/interp"> 1 </int> - <dictionary name="tracks/3/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 0, 0.4 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <real> 1 </real> - <real> 0 </real> - </array> - </dictionary> - <string name="tracks/4/type"> "value" </string> - <node_path name="tracks/4/path"> "particles:config/emitting" </node_path> - <int name="tracks/4/interp"> 1 </int> - <dictionary name="tracks/4/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <bool> True </bool> - </array> - </dictionary> - <string name="tracks/5/type"> "method" </string> - <node_path name="tracks/5/path"> "." </node_path> - <int name="tracks/5/interp"> 1 </int> - <dictionary name="tracks/5/keys" shared="false"> - <string> "times" </string> - <real_array len="1"> 2.7 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <dictionary shared="false"> - <string> "args" </string> - <array len="0" shared="false"> - </array> - <string> "method" </string> - <string> "queue_free" </string> - </dictionary> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://3"> - <string name="resource/name"> "spin" </string> - <real name="length"> 1.5 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="7"> 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 </real_array> - <string> "transitions" </string> - <real_array len="7"> 1, 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="7" shared="false"> - <int> 0 </int> - <int> 1 </int> - <int> 2 </int> - <int> 3 </int> - <int> 2 </int> - <int> 1 </int> - <int> 0 </int> - </array> - </dictionary> - - </resource> - <resource type="SampleLibrary" path="local://4"> - <dictionary name="samples/coin" shared="false"> - <string> "db" </string> - <real> 0 </real> - <string> "pitch" </string> - <real> 1 </real> - <string> "sample" </string> - <resource external="2"> </resource> - </dictionary> - - </resource> - <resource type="ColorRamp" path="local://5"> - <real_array name="offsets" len="2"> 0, 1 </real_array> - <color_array name="colors" len="2"> 1, 1, 1, 1, 0, 0, 0, 1 </color_array> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 1 </int> - <string> "conns" </string> - <int_array len="6"> 0, 0, 76, 75, 2, 0 </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="77"> - <string> "coin" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "gravity_vec" </string> - <string> "gravity" </string> - <string> "linear_damp" </string> - <string> "angular_damp" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "Area2D" </string> - <string> "sprite" </string> - <string> "texture" </string> - <string> "hframes" </string> - <string> "Sprite" </string> - <string> "anim" </string> - <string> "playback/process_mode" </string> - <string> "playback/default_blend_time" </string> - <string> "root/root" </string> - <string> "anims/taken" </string> - <string> "anims/spin" </string> - <string> "playback/active" </string> - <string> "playback/speed" </string> - <string> "blend_times" </string> - <string> "autoplay" </string> - <string> "AnimationPlayer" </string> - <string> "collision" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - <string> "CollisionShape2D" </string> - <string> "sound" </string> - <string> "params/volume_db" </string> - <string> "params/pitch_scale" </string> - <string> "params/attenuation/min_distance" </string> - <string> "params/attenuation/max_distance" </string> - <string> "params/attenuation/distance_exp" </string> - <string> "config/polyphony" </string> - <string> "config/samples" </string> - <string> "config/pitch_random" </string> - <string> "SamplePlayer2D" </string> - <string> "particles" </string> - <string> "visibility/blend_mode" </string> - <string> "config/amount" </string> - <string> "config/lifetime" </string> - <string> "config/emitting" </string> - <string> "config/half_extents" </string> - <string> "config/texture" </string> - <string> "params/direction" </string> - <string> "params/spread" </string> - <string> "params/linear_velocity" </string> - <string> "params/spin_velocity" </string> - <string> "params/orbit_velocity" </string> - <string> "params/gravity_direction" </string> - <string> "params/gravity_strength" </string> - <string> "params/radial_accel" </string> - <string> "params/tangential_accel" </string> - <string> "params/damping" </string> - <string> "params/initial_angle" </string> - <string> "params/initial_size" </string> - <string> "params/final_size" </string> - <string> "params/hue_variation" </string> - <string> "params/anim_speed_scale" </string> - <string> "params/anim_initial_pos" </string> - <string> "color/color_ramp" </string> - <string> "Particles2D" </string> - <string> "enabler" </string> - <string> "rect" </string> - <string> "enabler/pause_animations" </string> - <string> "enabler/freeze_bodies" </string> - <string> "enabler/pause_particles" </string> - <string> "enabler/process_parent" </string> - <string> "enabler/fixed_process_parent" </string> - <string> "VisibilityEnabler2D" </string> - <string> "_on_body_enter" </string> - <string> "body_enter" </string> - </string_array> - <string> "node_count" </string> - <int> 7 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="171"> -1, -1, 11, 0, -1, 10, 1, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 10, 9, 0, 0, 0, 15, 12, -1, 2, 13, 10, 14, 11, 0, 0, 0, 26, 16, -1, 9, 17, 12, 18, 13, 19, 14, 20, 15, 21, 16, 22, 0, 23, 17, 24, 18, 25, 19, 0, 0, 0, 31, 27, -1, 3, 28, 1, 29, 3, 30, 20, 0, 0, 0, 41, 32, -1, 8, 33, 13, 34, 7, 35, 7, 36, 21, 37, 7, 38, 12, 39, 22, 40, 13, 0, 0, 0, 66, 42, -1, 23, 43, 12, 44, 23, 45, 24, 46, 3, 47, 25, 48, 26, 49, 13, 50, 27, 51, 13, 52, 13, 53, 13, 54, 13, 55, 13, 56, 13, 57, 13, 58, 13, 59, 13, 60, 28, 61, 28, 62, 13, 63, 7, 64, 13, 65, 29, 0, 0, 0, 74, 67, -1, 6, 68, 30, 69, 0, 70, 0, 71, 0, 72, 3, 73, 3, 0 </int_array> - <string> "variants" </string> - <array len="31" shared="false"> - <bool> True </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <bool> False </bool> - <vector2> 0, 1 </vector2> - <real> 98 </real> - <real> 0.1 </real> - <real> 1 </real> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -34.3697, -21.6562 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 3.794776 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="1"> </resource> - <int> 4 </int> - <int> 1 </int> - <real> 0 </real> - <node_path> ".." </node_path> - <resource resource_type="Animation" path="local://2"> </resource> - <resource resource_type="Animation" path="local://3"> </resource> - <real> 3 </real> - <array len="0" shared="false"> - </array> - <string> "spin" </string> - <int> -1 </int> - <real> 2048 </real> - <resource resource_type="SampleLibrary" path="local://4"> </resource> - <int> 8 </int> - <real> 0.4 </real> - <vector2> 5, 5 </vector2> - <resource external="3"> </resource> - <real> 10 </real> - <real> 0.2 </real> - <resource resource_type="ColorRamp" path="local://5"> </resource> - <rect2> -10, -10, 20, 20 </rect2> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/enemy.tscn b/demos/2d/platformer/enemy.tscn new file mode 100644 index 0000000000..b01bd9fcf6 --- /dev/null +++ b/demos/2d/platformer/enemy.tscn @@ -0,0 +1,206 @@ +[gd_scene load_steps=12 format=1] + +[ext_resource path="res://enemy.gd" type="Script" id=1] +[ext_resource path="res://enemy.png" type="Texture" id=2] +[ext_resource path="res://bullet.png" type="Texture" id=3] +[ext_resource path="res://sound_explode.wav" type="Sample" id=4] +[ext_resource path="res://sound_hit.wav" type="Sample" id=5] + +[sub_resource type="CircleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 14.0 + +[sub_resource type="Animation" id=2] + +resource/name = "explode" +length = 6.0 +loop = false +step = 0.0 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:visibility/self_opacity") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 3.58422, 4.33851 ), "transitions":FloatArray( 1, 1 ), "values":[ 1.0, 0.0 ] } +tracks/1/type = "value" +tracks/1/path = NodePath("sprite:frame") +tracks/1/interp = 1 +tracks/1/keys = { "cont":true, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 4 ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Particles2D:config/emitting") +tracks/2/interp = 1 +tracks/2/keys = { "cont":false, "times":FloatArray( 3.47394 ), "transitions":FloatArray( 1 ), "values":[ true ] } +tracks/3/type = "method" +tracks/3/path = NodePath(".") +tracks/3/interp = 1 +tracks/3/keys = { "times":FloatArray( 3.20357, 5.07305 ), "transitions":FloatArray( 1, 1 ), "values":[ { "args":[ ], "method":"_pre_explode" }, { "args":[ ], "method":"_die" } ] } + +[sub_resource type="Animation" id=3] + +length = 6.75 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 5, 6, 5, 6, 5, 6, 7, 6, 7, 5 ] } + +[sub_resource type="Animation" id=4] + +resource/name = "walk" +length = 1.25 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 4, 0 ] } + +[sub_resource type="ColorRamp" id=5] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 1, 0.884956, 0.823009, 1, 0.768627, 0.389381, 0, 0 ) + +[sub_resource type="SampleLibrary" id=6] + +samples/explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) } +samples/hit = { "db":0.0, "pitch":1.0, "sample":ExtResource( 5 ) } + +[node name="enemy" type="RigidBody2D"] + +input/pickable = false +shapes/0/shape = SubResource( 1 ) +shapes/0/transform = Matrix32( 1, 0, 0, 1, -1.08072, -2.16144 ) +shapes/0/trigger = false +shapes/1/shape = SubResource( 1 ) +shapes/1/transform = Matrix32( 1, 0, 0, 1, 6.48431, 3.24216 ) +shapes/1/trigger = false +shapes/2/shape = SubResource( 1 ) +shapes/2/transform = Matrix32( 1, 0, 0, 1, -12.495, 3.53415 ) +shapes/2/trigger = false +collision/layers = 1 +collision/mask = 1 +mode = 2 +mass = 1.0 +friction = 0.0 +bounce = 0.0 +gravity_scale = 1.0 +custom_integrator = false +continuous_cd = 0 +contacts_reported = 4 +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="enabler" type="VisibilityEnabler2D" parent="."] + +transform/pos = Vector2( 16.2569, 11.0034 ) +transform/scale = Vector2( 23.5056, 10.8629 ) +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="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/explode = SubResource( 2 ) +anims/idle = SubResource( 3 ) +anims/walk = SubResource( 4 ) +playback/active = true +playback/speed = 3.0 +blend_times = [ ] +autoplay = "" + +[node name="sprite" type="Sprite" parent="."] + +texture = ExtResource( 2 ) +hframes = 8 +frame = 4 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +transform/pos = Vector2( -1.08072, -2.16144 ) +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="CollisionShape2D 2" type="CollisionShape2D" parent="."] + +transform/pos = Vector2( 6.48431, 3.24216 ) +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="CollisionShape2D 3" type="CollisionShape2D" parent="."] + +transform/pos = Vector2( -12.495, 3.53415 ) +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="raycast_left" type="RayCast2D" parent="."] + +transform/pos = Vector2( -33.2868, -9.34363 ) +enabled = true +cast_to = Vector2( 0, 45 ) +layer_mask = 1 +type_mask = 15 + +[node name="raycast_right" type="RayCast2D" parent="."] + +transform/pos = Vector2( 29.1987, -9.34363 ) +enabled = true +cast_to = Vector2( 0, 45 ) +layer_mask = 1 +type_mask = 15 + +[node name="Particles2D" type="Particles2D" parent="."] + +visibility/self_opacity = 0.121212 +visibility/blend_mode = 1 +config/amount = 32 +config/lifetime = 0.5 +config/emit_timeout = 0.5 +config/emitting = false +config/explosiveness = 0.1 +config/texture = ExtResource( 3 ) +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 90.0 +params/spin_velocity = 2.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 = 2.0 +params/final_size = 3.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +randomness/spin_velocity = 1.0 +color/color_ramp = SubResource( 5 ) + +[node name="sound" type="SamplePlayer2D" parent="."] + +params/volume_db = 0.0 +params/pitch_scale = 1.0 +params/attenuation/min_distance = 1.0 +params/attenuation/max_distance = 2048.0 +params/attenuation/distance_exp = 1.0 +config/polyphony = 3 +config/samples = SubResource( 6 ) +config/pitch_random = 0.0 + + diff --git a/demos/2d/platformer/enemy.xml b/demos/2d/platformer/enemy.xml deleted file mode 100644 index 72d2ff068e..0000000000 --- a/demos/2d/platformer/enemy.xml +++ /dev/null @@ -1,494 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="12" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://bullet.png" type="Texture" index="2"></ext_resource> - <ext_resource path="res://enemy.gd" type="Script" index="0"></ext_resource> - <ext_resource path="res://sound_explode.wav" type="Sample" index="3"></ext_resource> - <ext_resource path="res://sound_hit.wav" type="Sample" index="4"></ext_resource> - <ext_resource path="res://enemy.png" type="Texture" index="1"></ext_resource> - <resource type="CircleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <real name="radius"> 14 </real> - - </resource> - <resource type="Animation" path="local://2"> - <string name="resource/name"> "idle" </string> - <real name="length"> 6.75 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="10"> 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 </real_array> - <string> "transitions" </string> - <real_array len="10"> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="10" shared="false"> - <int> 5 </int> - <int> 6 </int> - <int> 5 </int> - <int> 6 </int> - <int> 5 </int> - <int> 6 </int> - <int> 7 </int> - <int> 6 </int> - <int> 7 </int> - <int> 5 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://3"> - <string name="resource/name"> "explode" </string> - <real name="length"> 6 </real> - <bool name="loop"> False </bool> - <real name="step"> 0 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:visibility/self_opacity" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 3.58422, 4.33851 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <real> 1 </real> - <real> 0 </real> - </array> - </dictionary> - <string name="tracks/1/type"> "value" </string> - <node_path name="tracks/1/path"> "sprite:frame" </node_path> - <int name="tracks/1/interp"> 1 </int> - <dictionary name="tracks/1/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 4 </int> - </array> - </dictionary> - <string name="tracks/2/type"> "value" </string> - <node_path name="tracks/2/path"> "Particles2D:config/emitting" </node_path> - <int name="tracks/2/interp"> 1 </int> - <dictionary name="tracks/2/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 3.47394 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <bool> True </bool> - </array> - </dictionary> - <string name="tracks/3/type"> "method" </string> - <node_path name="tracks/3/path"> "." </node_path> - <int name="tracks/3/interp"> 1 </int> - <dictionary name="tracks/3/keys" shared="false"> - <string> "times" </string> - <real_array len="2"> 3.20357, 5.07305 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <dictionary shared="false"> - <string> "args" </string> - <array len="0" shared="false"> - </array> - <string> "method" </string> - <string> "_pre_explode" </string> - </dictionary> - <dictionary shared="false"> - <string> "args" </string> - <array len="0" shared="false"> - </array> - <string> "method" </string> - <string> "_die" </string> - </dictionary> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://4"> - <string name="resource/name"> "walk" </string> - <real name="length"> 1.25 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array> - <string> "transitions" </string> - <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="6" shared="false"> - <int> 0 </int> - <int> 1 </int> - <int> 2 </int> - <int> 3 </int> - <int> 4 </int> - <int> 0 </int> - </array> - </dictionary> - - </resource> - <resource type="ColorRamp" path="local://6"> - <real_array name="offsets" len="2"> 0, 1 </real_array> - <color_array name="colors" len="2"> 1, 0.884956, 0.823009, 1, 0.768627, 0.389381, 0, 0 </color_array> - - </resource> - <resource type="SampleLibrary" path="local://5"> - <dictionary name="samples/hit" shared="false"> - <string> "db" </string> - <real> 0 </real> - <string> "pitch" </string> - <real> 1 </real> - <string> "sample" </string> - <resource external="4"> </resource> - </dictionary> - <dictionary name="samples/explode" shared="false"> - <string> "db" </string> - <real> 0 </real> - <string> "pitch" </string> - <real> 1 </real> - <string> "sample" </string> - <resource external="3"> </resource> - </dictionary> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="108"> - <string> "enemy" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "shapes/1/shape" </string> - <string> "shapes/1/transform" </string> - <string> "shapes/1/trigger" </string> - <string> "shapes/2/shape" </string> - <string> "shapes/2/transform" </string> - <string> "shapes/2/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "RigidBody2D" </string> - <string> "enabler" </string> - <string> "transform/pos" </string> - <string> "transform/scale" </string> - <string> "rect" </string> - <string> "enabler/pause_animations" </string> - <string> "enabler/freeze_bodies" </string> - <string> "enabler/pause_particles" </string> - <string> "enabler/process_parent" </string> - <string> "enabler/fixed_process_parent" </string> - <string> "VisibilityEnabler2D" </string> - <string> "anim" </string> - <string> "playback/process_mode" </string> - <string> "playback/default_blend_time" </string> - <string> "root/root" </string> - <string> "anims/idle" </string> - <string> "anims/explode" </string> - <string> "anims/walk" </string> - <string> "playback/active" </string> - <string> "playback/speed" </string> - <string> "blend_times" </string> - <string> "autoplay" </string> - <string> "AnimationPlayer" </string> - <string> "sprite" </string> - <string> "texture" </string> - <string> "hframes" </string> - <string> "frame" </string> - <string> "Sprite" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - <string> "CollisionShape2D 2" </string> - <string> "CollisionShape2D 3" </string> - <string> "raycast_left" </string> - <string> "enabled" </string> - <string> "cast_to" </string> - <string> "layer_mask" </string> - <string> "type_mask" </string> - <string> "RayCast2D" </string> - <string> "raycast_right" </string> - <string> "Particles2D" </string> - <string> "visibility/self_opacity" </string> - <string> "visibility/blend_mode" </string> - <string> "config/amount" </string> - <string> "config/lifetime" </string> - <string> "config/emit_timeout" </string> - <string> "config/emitting" </string> - <string> "config/explosiveness" </string> - <string> "config/texture" </string> - <string> "params/direction" </string> - <string> "params/spread" </string> - <string> "params/linear_velocity" </string> - <string> "params/spin_velocity" </string> - <string> "params/orbit_velocity" </string> - <string> "params/gravity_direction" </string> - <string> "params/gravity_strength" </string> - <string> "params/radial_accel" </string> - <string> "params/tangential_accel" </string> - <string> "params/damping" </string> - <string> "params/initial_angle" </string> - <string> "params/initial_size" </string> - <string> "params/final_size" </string> - <string> "params/hue_variation" </string> - <string> "params/anim_speed_scale" </string> - <string> "params/anim_initial_pos" </string> - <string> "randomness/spin_velocity" </string> - <string> "color/color_ramp" </string> - <string> "sound" </string> - <string> "params/volume_db" </string> - <string> "params/pitch_scale" </string> - <string> "params/attenuation/min_distance" </string> - <string> "params/attenuation/max_distance" </string> - <string> "params/attenuation/distance_exp" </string> - <string> "config/polyphony" </string> - <string> "config/samples" </string> - <string> "config/pitch_random" </string> - <string> "SamplePlayer2D" </string> - </string_array> - <string> "node_count" </string> - <int> 11 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="289"> -1, -1, 30, 0, -1, 29, 1, 0, 2, 1, 3, 2, 4, 0, 5, 1, 6, 3, 7, 0, 8, 1, 9, 4, 10, 0, 11, 5, 12, 5, 13, 6, 14, 7, 15, 8, 16, 8, 17, 7, 18, 0, 19, 9, 20, 10, 21, 0, 22, 0, 23, 11, 24, 12, 25, 8, 26, 13, 27, 13, 28, 14, 29, 15, 0, 0, 0, 40, 31, -1, 8, 32, 16, 33, 17, 34, 18, 35, 11, 36, 11, 37, 11, 38, 0, 39, 0, 0, 0, 0, 52, 41, -1, 10, 42, 5, 43, 8, 44, 19, 45, 20, 46, 21, 47, 22, 48, 11, 49, 23, 50, 24, 51, 25, 0, 0, 0, 57, 53, -1, 3, 54, 26, 55, 27, 56, 10, 0, 0, 0, 58, 58, -1, 4, 32, 28, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 62, -1, 4, 32, 30, 59, 1, 60, 0, 61, 29, 0, 0, 0, 58, 63, -1, 4, 32, 31, 59, 1, 60, 0, 61, 29, 0, 0, 0, 69, 64, -1, 5, 32, 32, 65, 11, 66, 33, 67, 5, 68, 34, 0, 0, 0, 69, 70, -1, 5, 32, 35, 65, 11, 66, 33, 67, 5, 68, 34, 0, 0, 0, 71, 71, -1, 26, 72, 36, 73, 5, 74, 37, 75, 38, 76, 38, 77, 0, 78, 39, 79, 40, 80, 8, 81, 41, 82, 42, 83, 43, 84, 8, 85, 8, 86, 44, 87, 8, 88, 8, 89, 8, 90, 8, 91, 43, 92, 23, 93, 8, 94, 7, 95, 8, 96, 7, 97, 45, 0, 0, 0, 107, 98, -1, 8, 99, 8, 100, 7, 101, 7, 102, 46, 103, 7, 104, 47, 105, 48, 106, 8, 0 </int_array> - <string> "variants" </string> - <array len="49" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, -0, 0, 1, -1.08072, -2.16144 </matrix32> - <matrix32> 1, -0, 0, 1, 6.48431, 3.24216 </matrix32> - <matrix32> 1, -0, 0, 1, -12.495, 3.53415 </matrix32> - <int> 1 </int> - <int> 2 </int> - <real> 1 </real> - <real> 0 </real> - <int> 0 </int> - <int> 4 </int> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -227.625, -197.9 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.108033 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <vector2> 16.2569, 11.0034 </vector2> - <vector2> 23.5056, 10.8629 </vector2> - <rect2> -10, -10, 20, 20 </rect2> - <node_path> ".." </node_path> - <resource resource_type="Animation" path="local://2"> </resource> - <resource resource_type="Animation" path="local://3"> </resource> - <resource resource_type="Animation" path="local://4"> </resource> - <real> 3 </real> - <array len="0" shared="false"> - </array> - <string> "" </string> - <resource external="1"> </resource> - <int> 8 </int> - <vector2> -1.08072, -2.16144 </vector2> - <int> -1 </int> - <vector2> 6.48431, 3.24216 </vector2> - <vector2> -12.495, 3.53415 </vector2> - <vector2> -33.2868, -9.34363 </vector2> - <vector2> 0, 45 </vector2> - <int> 15 </int> - <vector2> 29.1987, -9.34363 </vector2> - <real> 0.121212 </real> - <int> 32 </int> - <real> 0.5 </real> - <real> 0.1 </real> - <resource external="2"> </resource> - <real> 180 </real> - <real> 90 </real> - <real> 2 </real> - <real> 9.8 </real> - <resource resource_type="ColorRamp" path="local://6"> </resource> - <real> 2048 </real> - <int> 3 </int> - <resource resource_type="SampleLibrary" path="local://5"> </resource> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/engine.cfg b/demos/2d/platformer/engine.cfg index 044d661e3e..dddef264d4 100644 --- a/demos/2d/platformer/engine.cfg +++ b/demos/2d/platformer/engine.cfg @@ -1,7 +1,7 @@ [application] name="Platformer" -main_scene="res://stage.xml" +main_scene="res://stage.tscn" icon="res://icon.png" name_es="Plataformero" target_fps="60" diff --git a/demos/2d/platformer/moving_platform.tscn b/demos/2d/platformer/moving_platform.tscn new file mode 100644 index 0000000000..c6269d6ee7 --- /dev/null +++ b/demos/2d/platformer/moving_platform.tscn @@ -0,0 +1,52 @@ +[gd_scene load_steps=4 format=1] + +[ext_resource path="res://moving_platform.gd" type="Script" id=1] +[ext_resource path="res://moving_platform.png" type="Texture" id=2] + +[sub_resource type="ConvexPolygonShape2D" id=1] + +custom_solver_bias = 0.0 +points = Vector2Array( -88, 24, -88, -24, 88, -24, 88, 24 ) + +[node name="moving_platform" type="Node2D"] + +script/script = ExtResource( 1 ) +motion = Vector2( 0, 0 ) +cycle = 1.0 + +[node name="platform" type="RigidBody2D" parent="."] + +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 = 3 +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 + +[node name="Sprite" type="Sprite" parent="platform"] + +texture = ExtResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="platform"] + +build_mode = 0 +polygon = Vector2Array( -88, -24, 88, -24, 88, 24, -88, 24 ) +shape_range = Vector2( -1, -1 ) +trigger = false + + diff --git a/demos/2d/platformer/moving_platform.xml b/demos/2d/platformer/moving_platform.xml deleted file mode 100644 index 4b94a7af48..0000000000 --- a/demos/2d/platformer/moving_platform.xml +++ /dev/null @@ -1,224 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="4" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://moving_platform.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://moving_platform.gd" type="Script" index="0"></ext_resource> - <resource type="ConvexPolygonShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -88, 24, -88, -24, 88, -24, 88, 24 </vector2_array> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="36"> - <string> "moving_platform" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "motion" </string> - <string> "cycle" </string> - <string> "Node2D" </string> - <string> "platform" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "RigidBody2D" </string> - <string> "Sprite" </string> - <string> "texture" </string> - <string> "CollisionPolygon2D" </string> - <string> "build_mode" </string> - <string> "polygon" </string> - <string> "shape_range" </string> - <string> "trigger" </string> - </string_array> - <string> "node_count" </string> - <int> 4 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="88"> -1, -1, 5, 0, -1, 4, 1, 0, 2, 1, 3, 2, 4, 3, 0, 0, 0, 28, 6, -1, 21, 7, 4, 8, 5, 9, 6, 10, 4, 11, 7, 12, 7, 13, 8, 14, 3, 15, 3, 16, 9, 17, 3, 18, 4, 19, 10, 20, 10, 21, 4, 22, 4, 23, 11, 24, 2, 25, 9, 26, 12, 27, 12, 0, 1, 0, 29, 29, -1, 1, 30, 13, 0, 1, 0, 31, 31, -1, 4, 32, 10, 33, 14, 34, 15, 35, 4, 0 </int_array> - <string> "variants" </string> - <array len="16" shared="false"> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -210.652, -172.81 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.360373 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 179 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <vector2> 0, 0 </vector2> - <real> 1 </real> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, -0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 3 </int> - <real> 0 </real> - <int> 0 </int> - <bool> True </bool> - <real> -1 </real> - <resource external="1"> </resource> - <vector2_array len="4"> -88, -24, 88, -24, 88, 24, -88, 24 </vector2_array> - <vector2> -1, -1 </vector2> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/one_way_platform.tscn b/demos/2d/platformer/one_way_platform.tscn new file mode 100644 index 0000000000..88c4b0d61a --- /dev/null +++ b/demos/2d/platformer/one_way_platform.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://one_way_platform.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 100, 10 ) + +[node name="one_way_platform" type="StaticBody2D"] + +input/pickable = false +shapes/0/shape = SubResource( 1 ) +shapes/0/transform = Matrix32( 1, 0, 0, 1, 1.46304, -13.1672 ) +shapes/0/trigger = false +collision/layers = 1 +collision/mask = 1 +one_way_collision/direction = Vector2( 0, 1 ) +one_way_collision/max_depth = 20.0 +constant_linear_velocity = Vector2( 0, 0 ) +constant_angular_velocity = 0.0 +friction = 1.0 +bounce = 0.0 + +[node name="sprite" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +transform/pos = Vector2( 1.46304, -13.1672 ) +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + + diff --git a/demos/2d/platformer/one_way_platform.xml b/demos/2d/platformer/one_way_platform.xml deleted file mode 100644 index 85b2322711..0000000000 --- a/demos/2d/platformer/one_way_platform.xml +++ /dev/null @@ -1,207 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://one_way_platform.png" type="Texture" index="0"></ext_resource> - <resource type="RectangleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2 name="extents"> 100, 10 </vector2> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="23"> - <string> "one_way_platform" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "one_way_collision/direction" </string> - <string> "one_way_collision/max_depth" </string> - <string> "constant_linear_velocity" </string> - <string> "constant_angular_velocity" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "__meta__" </string> - <string> "StaticBody2D" </string> - <string> "sprite" </string> - <string> "texture" </string> - <string> "Sprite" </string> - <string> "CollisionShape2D" </string> - <string> "transform/pos" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - </string_array> - <string> "node_count" </string> - <int> 3 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="57"> -1, -1, 14, 0, -1, 13, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 8, 12, 7, 13, 9, 0, 0, 0, 17, 15, -1, 1, 16, 10, 0, 0, 0, 18, 18, -1, 4, 19, 11, 20, 1, 21, 0, 22, 12, 0 </int_array> - <string> "variants" </string> - <array len="13" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, -0, 0, 1, 1.46304, -13.1672 </matrix32> - <int> 1 </int> - <vector2> 0, 1 </vector2> - <real> 20 </real> - <vector2> 0, 0 </vector2> - <real> 0 </real> - <real> 1 </real> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -133.699, -110.553 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 2.050546 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <vector2> 1.46304, -13.1672 </vector2> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/parallax_bg.tscn b/demos/2d/platformer/parallax_bg.tscn new file mode 100644 index 0000000000..cf5815e28c --- /dev/null +++ b/demos/2d/platformer/parallax_bg.tscn @@ -0,0 +1,101 @@ +[gd_scene load_steps=7 format=1] + +[ext_resource path="res://scroll_bg_sky.png" type="Texture" id=1] +[ext_resource path="res://scroll_bg_cloud_1.png" type="Texture" id=2] +[ext_resource path="res://scroll_bg_cloud_2.png" type="Texture" id=3] +[ext_resource path="res://scroll_bg_cloud_3.png" type="Texture" id=4] +[ext_resource path="res://scroll_bg_fg_2.png" type="Texture" id=5] +[ext_resource path="res://scroll_bg_fg_1.png" type="Texture" id=6] + +[node name="parallax_bg" type="ParallaxBackground"] + +layer = -1 +offset = Vector2( 0, 0 ) +rotation = 0.0 +scale = Vector2( 1, 1 ) +scroll/offset = Vector2( 0, 0 ) +scroll/base_offset = Vector2( 0, 0 ) +scroll/base_scale = Vector2( 0.7, 0 ) +scroll/limit_begin = Vector2( 0, 0 ) +scroll/limit_end = Vector2( 0, 0 ) +scroll/ignore_camera_zoom = false + +[node name="sky" type="ParallaxLayer" parent="."] + +motion/scale = Vector2( 1, 1 ) +motion/mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="sky"] + +transform/scale = Vector2( 32, 0.94 ) +texture = ExtResource( 1 ) +centered = false + +[node name="clouds" type="ParallaxLayer" parent="."] + +motion/scale = Vector2( 0.1, 1 ) +motion/mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="clouds"] + +transform/pos = Vector2( 28, 127 ) +texture = ExtResource( 2 ) +centered = false + +[node name="Sprite 2" type="Sprite" parent="clouds"] + +transform/pos = Vector2( 404, 24 ) +texture = ExtResource( 2 ) +centered = false + +[node name="Sprite 3" type="Sprite" parent="clouds"] + +transform/pos = Vector2( 154, 46 ) +texture = ExtResource( 3 ) +centered = false + +[node name="Sprite 4" type="Sprite" parent="clouds"] + +transform/pos = Vector2( 525, 130 ) +texture = ExtResource( 3 ) +centered = false + +[node name="Sprite 5" type="Sprite" parent="clouds"] + +transform/pos = Vector2( 255, 158 ) +texture = ExtResource( 4 ) +centered = false + +[node name="Sprite 6" type="Sprite" parent="clouds"] + +transform/pos = Vector2( 674, 70 ) +texture = ExtResource( 4 ) +centered = false + +[node name="mount_ 2" type="ParallaxLayer" parent="."] + +motion/scale = Vector2( 0.2, 1 ) +motion/mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="mount_ 2"] + +transform/pos = Vector2( 0, 225 ) +texture = ExtResource( 5 ) +centered = false +region = true +region_rect = Rect2( 0, 0, 800, 256 ) + +[node name="mount_1" type="ParallaxLayer" parent="."] + +motion/scale = Vector2( 0.4, 1 ) +motion/mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="mount_1"] + +transform/pos = Vector2( 0, 225 ) +texture = ExtResource( 6 ) +centered = false +region = true +region_rect = Rect2( 0, 0, 800, 256 ) + + diff --git a/demos/2d/platformer/parallax_bg.xml b/demos/2d/platformer/parallax_bg.xml deleted file mode 100644 index 3b306aecab..0000000000 --- a/demos/2d/platformer/parallax_bg.xml +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="7" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://scroll_bg_cloud_1.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://scroll_bg_sky.png" type="Texture" index="0"></ext_resource> - <ext_resource path="res://scroll_bg_fg_2.png" type="Texture" index="4"></ext_resource> - <ext_resource path="res://scroll_bg_cloud_3.png" type="Texture" index="3"></ext_resource> - <ext_resource path="res://scroll_bg_cloud_2.png" type="Texture" index="2"></ext_resource> - <ext_resource path="res://scroll_bg_fg_1.png" type="Texture" index="5"></ext_resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="32"> - <string> "parallax_bg" </string> - <string> "layer" </string> - <string> "offset" </string> - <string> "rotation" </string> - <string> "scale" </string> - <string> "scroll/offset" </string> - <string> "scroll/base_offset" </string> - <string> "scroll/base_scale" </string> - <string> "scroll/limit_begin" </string> - <string> "scroll/limit_end" </string> - <string> "scroll/ignore_camera_zoom" </string> - <string> "__meta__" </string> - <string> "ParallaxBackground" </string> - <string> "sky" </string> - <string> "motion/scale" </string> - <string> "motion/mirroring" </string> - <string> "ParallaxLayer" </string> - <string> "Sprite" </string> - <string> "transform/scale" </string> - <string> "texture" </string> - <string> "centered" </string> - <string> "clouds" </string> - <string> "transform/pos" </string> - <string> "Sprite 2" </string> - <string> "Sprite 3" </string> - <string> "Sprite 4" </string> - <string> "Sprite 5" </string> - <string> "Sprite 6" </string> - <string> "mount_ 2" </string> - <string> "region" </string> - <string> "region_rect" </string> - <string> "mount_1" </string> - </string_array> - <string> "node_count" </string> - <int> 14 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="198"> -1, -1, 12, 0, -1, 11, 1, 0, 2, 1, 3, 2, 4, 3, 5, 1, 6, 1, 7, 4, 8, 1, 9, 1, 10, 5, 11, 6, 0, 0, 0, 16, 13, -1, 2, 14, 3, 15, 7, 0, 1, 0, 17, 17, -1, 3, 18, 8, 19, 9, 20, 5, 0, 0, 0, 16, 21, -1, 2, 14, 10, 15, 7, 0, 3, 0, 17, 17, -1, 3, 22, 11, 19, 12, 20, 5, 0, 3, 0, 17, 23, -1, 3, 22, 13, 19, 12, 20, 5, 0, 3, 0, 17, 24, -1, 3, 22, 14, 19, 15, 20, 5, 0, 3, 0, 17, 25, -1, 3, 22, 16, 19, 15, 20, 5, 0, 3, 0, 17, 26, -1, 3, 22, 17, 19, 18, 20, 5, 0, 3, 0, 17, 27, -1, 3, 22, 19, 19, 18, 20, 5, 0, 0, 0, 16, 28, -1, 2, 14, 20, 15, 7, 0, 10, 0, 17, 17, -1, 5, 22, 21, 19, 22, 20, 5, 29, 23, 30, 24, 0, 0, 0, 16, 31, -1, 2, 14, 25, 15, 7, 0, 12, 0, 17, 17, -1, 5, 22, 21, 19, 26, 20, 5, 29, 23, 30, 24, 0 </int_array> - <string> "variants" </string> - <array len="27" shared="false"> - <int> -1 </int> - <vector2> 0, 0 </vector2> - <real> 0 </real> - <vector2> 1, 1 </vector2> - <vector2> 0.7, 0 </vector2> - <bool> False </bool> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -5, -25 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <vector2> 800, 0 </vector2> - <vector2> 32, 0.94 </vector2> - <resource external="0"> </resource> - <vector2> 0.1, 1 </vector2> - <vector2> 28, 127 </vector2> - <resource external="1"> </resource> - <vector2> 404, 24 </vector2> - <vector2> 154, 46 </vector2> - <resource external="2"> </resource> - <vector2> 525, 130 </vector2> - <vector2> 255, 158 </vector2> - <resource external="3"> </resource> - <vector2> 674, 70 </vector2> - <vector2> 0.2, 1 </vector2> - <vector2> 0, 225 </vector2> - <resource external="4"> </resource> - <bool> True </bool> - <rect2> 0, 0, 800, 256 </rect2> - <vector2> 0.4, 1 </vector2> - <resource external="5"> </resource> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/player.gd b/demos/2d/platformer/player.gd index 7ed99df9bd..8cafd8b933 100644 --- a/demos/2d/platformer/player.gd +++ b/demos/2d/platformer/player.gd @@ -47,7 +47,7 @@ var shoot_time = 1e20 var MAX_SHOOT_POSE_TIME = 0.3 -var bullet = preload("res://bullet.xml") +var bullet = preload("res://bullet.tscn") var floor_h_velocity = 0.0 var enemy @@ -220,7 +220,7 @@ func _integrate_forces(s): func _ready(): - enemy = ResourceLoader.load("res://enemy.xml") + enemy = ResourceLoader.load("res://enemy.tscn") # if !Globals.has_singleton("Facebook"): # return diff --git a/demos/2d/platformer/player.tscn b/demos/2d/platformer/player.tscn new file mode 100644 index 0000000000..77a2e272a6 --- /dev/null +++ b/demos/2d/platformer/player.tscn @@ -0,0 +1,330 @@ +[gd_scene load_steps=25 format=1] + +[ext_resource path="res://player.gd" type="Script" id=1] +[ext_resource path="res://robot_demo.png" type="Texture" id=2] +[ext_resource path="res://bullet.png" type="Texture" id=3] +[ext_resource path="res://sound_coin.wav" type="Sample" id=4] +[ext_resource path="res://sound_jump.wav" type="Sample" id=5] +[ext_resource path="res://sound_shoot.wav" type="Sample" id=6] +[ext_resource path="res://osb_left.png" type="Texture" id=7] +[ext_resource path="res://osb_right.png" type="Texture" id=8] +[ext_resource path="res://osb_jump.png" type="Texture" id=9] +[ext_resource path="res://osb_fire.png" type="Texture" id=10] + +[sub_resource type="RayShape2D" id=1] + +custom_solver_bias = 0.5 +length = 20.0 + +[sub_resource type="ConvexPolygonShape2D" id=2] + +custom_solver_bias = 0.0 +points = Vector2Array( -19.902, -24.8691, 19.3625, -24.6056, -0.138023, 16.5036 ) + +[sub_resource type="ColorRamp" id=3] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 1, 1, 1, 1, 0, 0, 0, 0.0442478 ) + +[sub_resource type="Animation" id=4] + +resource/name = "crouch" +length = 0.01 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 22 ] } + +[sub_resource type="Animation" id=5] + +resource/name = "falling" +length = 0.01 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 21 ] } + +[sub_resource type="Animation" id=6] + +resource/name = "falling_weapon" +length = 0.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 26 ] } + +[sub_resource type="Animation" id=7] + +length = 7.0 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 16, 17, 18, 16, 19, 20, 19, 16 ] } + +[sub_resource type="Animation" id=8] + +length = 0.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 25 ] } + +[sub_resource type="Animation" id=9] + +length = 0.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5 ), "transitions":FloatArray( 1, 1, 1 ), "values":[ 23, 24, 23 ] } + +[sub_resource type="Animation" id=10] + +length = 0.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ 26 ] } + +[sub_resource type="Animation" id=11] + +length = 1.25 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 0, 1, 2, 3, 4, 0 ] } + +[sub_resource type="Animation" id=12] + +length = 1.25 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 5, 6, 7, 8, 9, 5 ] } + +[sub_resource type="Animation" id=13] + +length = 1.25 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1 ), "values":[ 10, 11, 12, 13, 14, 5 ] } + +[sub_resource type="SampleLibrary" id=14] + +samples/jump = { "db":0.0, "pitch":1.0, "sample":ExtResource( 5 ) } +samples/shoot = { "db":0.0, "pitch":1.0, "sample":ExtResource( 6 ) } +samples/coin = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) } + +[node name="player" type="RigidBody2D"] + +input/pickable = false +shapes/0/shape = SubResource( 1 ) +shapes/0/transform = Matrix32( 1, 0, 0, 1.76469, 0.291992, -12.1587 ) +shapes/0/trigger = false +shapes/1/shape = SubResource( 2 ) +shapes/1/transform = Matrix32( 1, 0, 0, 1, 0, 0 ) +shapes/1/trigger = false +collision/layers = 1 +collision/mask = 1 +mode = 2 +mass = 3.0 +friction = 0.0 +bounce = 0.0 +gravity_scale = 1.0 +custom_integrator = true +continuous_cd = 0 +contacts_reported = 3 +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="."] + +texture = ExtResource( 2 ) +vframes = 2 +hframes = 16 + +[node name="smoke" type="Particles2D" parent="sprite"] + +visibility/self_opacity = 0.363636 +visibility/blend_mode = 1 +transform/pos = Vector2( 20.7312, 3.21187 ) +transform/rot = 83.4504 +config/amount = 4 +config/lifetime = 0.3 +config/emit_timeout = 0.3 +config/emitting = false +config/local_space = false +config/explosiveness = 0.1 +config/texture = ExtResource( 3 ) +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 20.0 +params/spin_velocity = 1.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 = 2.0 +params/final_size = 2.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +randomness/spin_velocity = 2.0 +color/color_ramp = SubResource( 3 ) + +[node name="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/crouch = SubResource( 4 ) +anims/falling = SubResource( 5 ) +anims/falling_weapon = SubResource( 6 ) +anims/idle = SubResource( 7 ) +anims/idle_weapon = SubResource( 8 ) +anims/jumping = SubResource( 9 ) +anims/jumping_weapon = SubResource( 10 ) +anims/run = SubResource( 11 ) +anims/run_weapon = SubResource( 12 ) +anims/standing_weapon_ready = SubResource( 13 ) +playback/active = true +playback/speed = 2.0 +blend_times = [ ] +autoplay = "" + +[node name="camera" type="Camera2D" parent="."] + +anchor_mode = 1 +rotating = false +current = true +zoom = Vector2( 1, 1 ) +limit/left = 0 +limit/top = 0 +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="bullet_shoot" type="Position2D" parent="."] + +transform/pos = Vector2( 31.2428, 4.08784 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +transform/pos = Vector2( 0.291992, -12.1587 ) +transform/scale = Vector2( 1, 1.76469 ) +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="sound" type="SamplePlayer" parent="."] + +config/polyphony = 1 +config/samples = SubResource( 14 ) +default/volume_db = 0.0 +default/pitch_scale = 1.0 +default/pan = 0.0 +default/depth = 0.0 +default/height = 0.0 +default/filter/type = 0 +default/filter/cutoff = 0.0 +default/filter/resonance = 0.0 +default/filter/gain = 0.0 +default/reverb_room = 2 +default/reverb_send = 0.0 +default/chorus_send = 0.0 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] + +build_mode = 0 +polygon = Vector2Array( -0.138023, 16.5036, -19.902, -24.8691, 19.3625, -24.6056 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="ui" type="CanvasLayer" parent="."] + +layer = 0 +offset = Vector2( 0, 0 ) +rotation = 0.0 +scale = Vector2( 1, 1 ) + +[node name="left" type="TouchScreenButton" parent="ui"] + +transform/pos = Vector2( 27.7593, 360.87 ) +transform/scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 7 ) +pressed = null +bitmask = null +passby_press = true +action = "move_left" +visibility_mode = 1 + +[node name="right" type="TouchScreenButton" parent="ui"] + +transform/pos = Vector2( 121.542, 361.415 ) +transform/scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 8 ) +pressed = null +bitmask = null +passby_press = true +action = "move_right" +visibility_mode = 1 + +[node name="jump" type="TouchScreenButton" parent="ui"] + +transform/pos = Vector2( 666.224, 359.02 ) +transform/scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 9 ) +pressed = null +bitmask = null +passby_press = false +action = "jump" +visibility_mode = 1 + +[node name="fire" type="TouchScreenButton" parent="ui"] + +transform/pos = Vector2( 668.073, 262.788 ) +transform/scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 10 ) +pressed = null +bitmask = null +passby_press = false +action = "shoot" +visibility_mode = 1 + + diff --git a/demos/2d/platformer/player.xml b/demos/2d/platformer/player.xml deleted file mode 100644 index 493279672f..0000000000 --- a/demos/2d/platformer/player.xml +++ /dev/null @@ -1,669 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="25" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://bullet.png" type="Texture" index="2"></ext_resource> - <ext_resource path="res://sound_coin.wav" type="Sample" index="3"></ext_resource> - <ext_resource path="res://player.gd" type="Script" index="0"></ext_resource> - <ext_resource path="res://robot_demo.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://sound_shoot.wav" type="Sample" index="5"></ext_resource> - <ext_resource path="res://sound_jump.wav" type="Sample" index="4"></ext_resource> - <ext_resource path="res://osb_left.png" type="Texture" index="6"></ext_resource> - <ext_resource path="res://osb_right.png" type="Texture" index="7"></ext_resource> - <ext_resource path="res://osb_jump.png" type="Texture" index="8"></ext_resource> - <ext_resource path="res://osb_fire.png" type="Texture" index="9"></ext_resource> - <resource type="RayShape2D" path="local://1"> - <real name="custom_solver_bias"> 0.5 </real> - <real name="length"> 20 </real> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://2"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="3"> -19.902, -24.8691, 19.3625, -24.6056, -0.138023, 16.5036 </vector2_array> - - </resource> - <resource type="ColorRamp" path="local://14"> - <real_array name="offsets" len="2"> 0, 1 </real_array> - <color_array name="colors" len="2"> 1, 1, 1, 1, 0, 0, 0, 0.0442478 </color_array> - - </resource> - <resource type="Animation" path="local://3"> - <string name="resource/name"> "idle" </string> - <real name="length"> 7 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="8"> 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 </real_array> - <string> "transitions" </string> - <real_array len="8"> 1, 1, 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="8" shared="false"> - <int> 16 </int> - <int> 17 </int> - <int> 18 </int> - <int> 16 </int> - <int> 19 </int> - <int> 20 </int> - <int> 19 </int> - <int> 16 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://4"> - <string name="resource/name"> "jumping" </string> - <real name="length"> 0.5 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="3"> 0, 0.25, 0.5 </real_array> - <string> "transitions" </string> - <real_array len="3"> 1, 1, 1 </real_array> - <string> "values" </string> - <array len="3" shared="false"> - <int> 23 </int> - <int> 24 </int> - <int> 23 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://10"> - <string name="resource/name"> "falling_weapon" </string> - <real name="length"> 0.5 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 26 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://5"> - <string name="resource/name"> "idle_weapon" </string> - <real name="length"> 0.5 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 25 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://7"> - <string name="resource/name"> "crouch" </string> - <real name="length"> 0.01 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 22 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://8"> - <string name="resource/name"> "falling" </string> - <real name="length"> 0.01 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 21 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://9"> - <real name="length"> 1.25 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array> - <string> "transitions" </string> - <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="6" shared="false"> - <int> 10 </int> - <int> 11 </int> - <int> 12 </int> - <int> 13 </int> - <int> 14 </int> - <int> 5 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://12"> - <real name="length"> 0.5 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="1"> 0 </real_array> - <string> "transitions" </string> - <real_array len="1"> 1 </real_array> - <string> "values" </string> - <array len="1" shared="false"> - <int> 26 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://6"> - <real name="length"> 1.25 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array> - <string> "transitions" </string> - <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="6" shared="false"> - <int> 0 </int> - <int> 1 </int> - <int> 2 </int> - <int> 3 </int> - <int> 4 </int> - <int> 0 </int> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://11"> - <real name="length"> 1.25 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.25 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "sprite:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="6"> 0, 0.25, 0.5, 0.75, 1, 1.25 </real_array> - <string> "transitions" </string> - <real_array len="6"> 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="6" shared="false"> - <int> 5 </int> - <int> 6 </int> - <int> 7 </int> - <int> 8 </int> - <int> 9 </int> - <int> 5 </int> - </array> - </dictionary> - - </resource> - <resource type="SampleLibrary" path="local://13"> - <dictionary name="samples/jump" shared="false"> - <string> "db" </string> - <real> 0 </real> - <string> "pitch" </string> - <real> 1 </real> - <string> "sample" </string> - <resource external="4"> </resource> - </dictionary> - <dictionary name="samples/shoot" shared="false"> - <string> "db" </string> - <real> 0 </real> - <string> "pitch" </string> - <real> 1 </real> - <string> "sample" </string> - <resource external="5"> </resource> - </dictionary> - <dictionary name="samples/coin" shared="false"> - <string> "db" </string> - <real> 0 </real> - <string> "pitch" </string> - <real> 1 </real> - <string> "sample" </string> - <resource external="3"> </resource> - </dictionary> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="144"> - <string> "player" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "shapes/1/shape" </string> - <string> "shapes/1/transform" </string> - <string> "shapes/1/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "RigidBody2D" </string> - <string> "sprite" </string> - <string> "texture" </string> - <string> "vframes" </string> - <string> "hframes" </string> - <string> "Sprite" </string> - <string> "smoke" </string> - <string> "visibility/self_opacity" </string> - <string> "visibility/blend_mode" </string> - <string> "transform/pos" </string> - <string> "transform/rot" </string> - <string> "config/amount" </string> - <string> "config/lifetime" </string> - <string> "config/emit_timeout" </string> - <string> "config/emitting" </string> - <string> "config/local_space" </string> - <string> "config/explosiveness" </string> - <string> "config/texture" </string> - <string> "params/direction" </string> - <string> "params/spread" </string> - <string> "params/linear_velocity" </string> - <string> "params/spin_velocity" </string> - <string> "params/orbit_velocity" </string> - <string> "params/gravity_direction" </string> - <string> "params/gravity_strength" </string> - <string> "params/radial_accel" </string> - <string> "params/tangential_accel" </string> - <string> "params/damping" </string> - <string> "params/initial_angle" </string> - <string> "params/initial_size" </string> - <string> "params/final_size" </string> - <string> "params/hue_variation" </string> - <string> "params/anim_speed_scale" </string> - <string> "params/anim_initial_pos" </string> - <string> "randomness/spin_velocity" </string> - <string> "color/color_ramp" </string> - <string> "Particles2D" </string> - <string> "anim" </string> - <string> "playback/process_mode" </string> - <string> "playback/default_blend_time" </string> - <string> "root/root" </string> - <string> "anims/idle" </string> - <string> "anims/jumping" </string> - <string> "anims/falling_weapon" </string> - <string> "anims/idle_weapon" </string> - <string> "anims/crouch" </string> - <string> "anims/falling" </string> - <string> "anims/standing_weapon_ready" </string> - <string> "anims/jumping_weapon" </string> - <string> "anims/run" </string> - <string> "anims/run_weapon" </string> - <string> "playback/active" </string> - <string> "playback/speed" </string> - <string> "blend_times" </string> - <string> "autoplay" </string> - <string> "AnimationPlayer" </string> - <string> "camera" </string> - <string> "anchor_mode" </string> - <string> "rotating" </string> - <string> "current" </string> - <string> "smoothing" </string> - <string> "zoom" </string> - <string> "limit/left" </string> - <string> "limit/top" </string> - <string> "limit/right" </string> - <string> "limit/bottom" </string> - <string> "drag_margin/h_enabled" </string> - <string> "drag_margin/v_enabled" </string> - <string> "drag_margin/left" </string> - <string> "drag_margin/top" </string> - <string> "drag_margin/right" </string> - <string> "drag_margin/bottom" </string> - <string> "Camera2D" </string> - <string> "bullet_shoot" </string> - <string> "Position2D" </string> - <string> "CollisionShape2D" </string> - <string> "transform/scale" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - <string> "sound" </string> - <string> "config/polyphony" </string> - <string> "config/samples" </string> - <string> "default/volume_db" </string> - <string> "default/pitch_scale" </string> - <string> "default/pan" </string> - <string> "default/depth" </string> - <string> "default/height" </string> - <string> "default/filter/type" </string> - <string> "default/filter/cutoff" </string> - <string> "default/filter/resonance" </string> - <string> "default/filter/gain" </string> - <string> "default/reverb_room" </string> - <string> "default/reverb_send" </string> - <string> "default/chorus_send" </string> - <string> "SamplePlayer" </string> - <string> "CollisionPolygon2D" </string> - <string> "build_mode" </string> - <string> "polygon" </string> - <string> "shape_range" </string> - <string> "ui" </string> - <string> "layer" </string> - <string> "offset" </string> - <string> "rotation" </string> - <string> "scale" </string> - <string> "CanvasLayer" </string> - <string> "left" </string> - <string> "normal" </string> - <string> "pressed" </string> - <string> "bitmask" </string> - <string> "passby_press" </string> - <string> "action" </string> - <string> "visibility_mode" </string> - <string> "TouchScreenButton" </string> - <string> "right" </string> - <string> "jump" </string> - <string> "fire" </string> - </string_array> - <string> "node_count" </string> - <int> 14 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="398"> -1, -1, 27, 0, -1, 26, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 4, 7, 0, 8, 5, 9, 5, 10, 6, 11, 7, 12, 8, 13, 8, 14, 9, 15, 10, 16, 11, 17, 12, 18, 0, 19, 0, 20, 10, 21, 13, 22, 8, 23, 14, 24, 14, 25, 15, 26, 16, 0, 0, 0, 32, 28, -1, 3, 29, 17, 30, 6, 31, 18, 0, 1, 0, 63, 33, -1, 29, 34, 19, 35, 5, 36, 20, 37, 21, 38, 22, 39, 23, 40, 23, 41, 0, 42, 0, 43, 24, 44, 25, 45, 8, 46, 26, 47, 27, 48, 9, 49, 8, 50, 8, 51, 28, 52, 8, 53, 8, 54, 8, 55, 8, 56, 29, 57, 29, 58, 8, 59, 9, 60, 8, 61, 29, 62, 30, 0, 0, 0, 82, 64, -1, 17, 65, 5, 66, 8, 67, 31, 68, 32, 69, 33, 70, 34, 71, 35, 72, 36, 73, 37, 74, 38, 75, 39, 76, 40, 77, 41, 78, 10, 79, 29, 80, 42, 81, 43, 0, 0, 0, 99, 83, -1, 15, 84, 5, 85, 0, 86, 10, 87, 8, 88, 44, 89, 11, 90, 11, 91, 45, 92, 45, 93, 10, 94, 10, 95, 46, 96, 46, 97, 46, 98, 46, 0, 0, 0, 101, 100, -1, 1, 36, 47, 0, 0, 0, 102, 102, -1, 5, 36, 48, 103, 49, 104, 1, 105, 0, 106, 50, 0, 0, 0, 122, 107, -1, 14, 108, 5, 109, 51, 110, 8, 111, 9, 112, 8, 113, 8, 114, 8, 115, 11, 116, 8, 117, 8, 118, 8, 119, 6, 120, 8, 121, 8, 0, 0, 0, 123, 123, -1, 4, 124, 11, 125, 52, 126, 53, 105, 0, 0, 0, 0, 132, 127, -1, 4, 128, 11, 129, 13, 130, 8, 131, 44, 0, 9, 0, 140, 133, -1, 8, 36, 54, 103, 55, 134, 56, 135, 57, 136, 57, 137, 10, 138, 58, 139, 5, 0, 9, 0, 140, 141, -1, 8, 36, 59, 103, 55, 134, 60, 135, 57, 136, 57, 137, 10, 138, 61, 139, 5, 0, 9, 0, 140, 142, -1, 8, 36, 62, 103, 55, 134, 63, 135, 57, 136, 57, 137, 0, 138, 64, 139, 5, 0, 9, 0, 140, 143, -1, 8, 36, 65, 103, 55, 134, 66, 135, 57, 136, 57, 137, 0, 138, 67, 139, 5, 0 </int_array> - <string> "variants" </string> - <array len="68" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, -0, 0, 1.76469, 0.291992, -12.1587 </matrix32> - <resource resource_type="Shape2D" path="local://2"> </resource> - <matrix32> 1, -0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 2 </int> - <real> 3 </real> - <real> 0 </real> - <real> 1 </real> - <bool> True </bool> - <int> 0 </int> - <int> 3 </int> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -110.795, -101.2 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 2.050546 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="1"> </resource> - <int> 16 </int> - <real> 0.363636 </real> - <vector2> 20.7312, 3.21187 </vector2> - <real> 83.450417 </real> - <int> 4 </int> - <real> 0.3 </real> - <real> 0.1 </real> - <resource external="2"> </resource> - <real> 180 </real> - <real> 20 </real> - <real> 9.8 </real> - <real> 2 </real> - <resource resource_type="ColorRamp" path="local://14"> </resource> - <node_path> ".." </node_path> - <resource resource_type="Animation" path="local://3"> </resource> - <resource resource_type="Animation" path="local://4"> </resource> - <resource resource_type="Animation" path="local://10"> </resource> - <resource resource_type="Animation" path="local://5"> </resource> - <resource resource_type="Animation" path="local://7"> </resource> - <resource resource_type="Animation" path="local://8"> </resource> - <resource resource_type="Animation" path="local://9"> </resource> - <resource resource_type="Animation" path="local://12"> </resource> - <resource resource_type="Animation" path="local://6"> </resource> - <resource resource_type="Animation" path="local://11"> </resource> - <array len="0" shared="false"> - </array> - <string> "" </string> - <vector2> 1, 1 </vector2> - <int> 10000000 </int> - <real> 0.2 </real> - <vector2> 31.2428, 4.08784 </vector2> - <vector2> 0.291992, -12.1587 </vector2> - <vector2> 1, 1.76469 </vector2> - <int> -1 </int> - <resource resource_type="SampleLibrary" path="local://13"> </resource> - <vector2_array len="3"> -0.138023, 16.5036, -19.902, -24.8691, 19.3625, -24.6056 </vector2_array> - <vector2> -1, -1 </vector2> - <vector2> 27.7593, 360.87 </vector2> - <vector2> 1.49157, 1.46265 </vector2> - <resource external="6"> </resource> - <resource name=""></resource> <string> "move_left" </string> - <vector2> 121.542, 361.415 </vector2> - <resource external="7"> </resource> - <string> "move_right" </string> - <vector2> 666.224, 359.02 </vector2> - <resource external="8"> </resource> - <string> "jump" </string> - <vector2> 668.073, 262.788 </vector2> - <resource external="9"> </resource> - <string> "shoot" </string> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/seesaw.tscn b/demos/2d/platformer/seesaw.tscn new file mode 100644 index 0000000000..9af07dc07b --- /dev/null +++ b/demos/2d/platformer/seesaw.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=4 format=1] + +[ext_resource path="res://plank.png" type="Texture" id=1] +[ext_resource path="res://plankpin.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 128, 8 ) + +[node name="seesaw" type="Node2D"] + +[node name="plank" type="RigidBody2D" parent="."] + +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 = 5.10204 +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 + +[node name="sprite" type="Sprite" parent="plank"] + +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="plank"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="pin" type="PinJoint2D" parent="."] + +node_a = NodePath("../plank") +node_b = NodePath("") +bias/bias = 0.0 +collision/exclude_nodes = true +softness = 0.0 + +[node name="Sprite" type="Sprite" parent="."] + +transform/pos = Vector2( -0.290825, 20.2425 ) +texture = ExtResource( 2 ) + + diff --git a/demos/2d/platformer/seesaw.xml b/demos/2d/platformer/seesaw.xml deleted file mode 100644 index 760423167f..0000000000 --- a/demos/2d/platformer/seesaw.xml +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="4" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://plank.png" type="Texture" index="0"></ext_resource> - <ext_resource path="res://plankpin.png" type="Texture" index="1"></ext_resource> - <resource type="RectangleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2 name="extents"> 128, 8 </vector2> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="40"> - <string> "seesaw" </string> - <string> "__meta__" </string> - <string> "Node2D" </string> - <string> "plank" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "RigidBody2D" </string> - <string> "sprite" </string> - <string> "texture" </string> - <string> "Sprite" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - <string> "pin" </string> - <string> "node_a" </string> - <string> "node_b" </string> - <string> "bias/bias" </string> - <string> "softness" </string> - <string> "PinJoint2D" </string> - <string> "transform/pos" </string> - </string_array> - <string> "node_count" </string> - <int> 6 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="106"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 25, 3, -1, 21, 4, 1, 5, 2, 6, 3, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 0, 1, 0, 28, 26, -1, 1, 27, 12, 0, 1, 0, 29, 29, -1, 3, 30, 2, 31, 1, 32, 13, 0, 0, 0, 38, 33, -1, 4, 34, 14, 35, 15, 36, 8, 37, 8, 0, 0, 0, 28, 28, -1, 2, 39, 16, 27, 17, 0 </int_array> - <string> "variants" </string> - <array len="18" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -116.979, -109.897 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 2.050547 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 179 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 0 </int> - <real> 5.102041 </real> - <real> 1 </real> - <real> 0 </real> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <resource external="0"> </resource> - <int> -1 </int> - <node_path> "../plank" </node_path> - <node_path> "" </node_path> - <vector2> -0.290825, 20.2425 </vector2> - <resource external="1"> </resource> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/stage.tscn b/demos/2d/platformer/stage.tscn new file mode 100644 index 0000000000..9709efefa9 --- /dev/null +++ b/demos/2d/platformer/stage.tscn @@ -0,0 +1,352 @@ +[gd_scene load_steps=10 format=1] + +[ext_resource path="res://tileset.tres" type="TileSet" id=1] +[ext_resource path="res://coin.tscn" type="PackedScene" id=2] +[ext_resource path="res://moving_platform.tscn" type="PackedScene" id=3] +[ext_resource path="res://seesaw.tscn" type="PackedScene" id=4] +[ext_resource path="res://one_way_platform.tscn" type="PackedScene" id=5] +[ext_resource path="res://player.tscn" type="PackedScene" id=6] +[ext_resource path="res://music.ogg" type="AudioStream" id=7] +[ext_resource path="res://enemy.tscn" type="PackedScene" id=8] +[ext_resource path="res://parallax_bg.tscn" type="PackedScene" id=9] + +[node name="stage" type="Node"] + +[node name="tile_map" type="TileMap" parent="."] + +mode = 0 +tile_set = ExtResource( 1 ) +cell/size = Vector2( 64, 64 ) +cell/quadrant_size = 8 +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, 2, 70, 536870914, 71, 10, 72, 10, 73, 10, 74, 10, 75, 10, 76, 10, 77, 10, 78, 10, 65536, 2, 65606, 536870914, 65607, 10, 65608, 10, 65609, 10, 65610, 10, 65611, 10, 65612, 10, 65613, 10, 65614, 10, 131072, 2, 131142, 536870914, 131143, 10, 131144, 10, 131145, 10, 131146, 10, 131147, 10, 131148, 10, 131149, 10, 131150, 10, 196608, 2, 196626, 9, 196678, 536870914, 196679, 10, 196680, 10, 196681, 10, 196682, 10, 196683, 10, 196684, 10, 196685, 10, 196686, 10, 262144, 2, 262162, 8, 262214, 536870914, 262215, 10, 262216, 10, 262217, 10, 262218, 10, 262219, 10, 262220, 10, 262221, 10, 262222, 10, 327680, 2, 327697, 536870921, 327698, 7, 327733, 9, 327750, 536870914, 327751, 10, 327752, 10, 327753, 10, 327754, 10, 327755, 10, 327756, 10, 327757, 10, 327758, 10, 393216, 2, 393233, 536870920, 393234, 7, 393257, 9, 393269, 7, 393286, 536870914, 393287, 10, 393288, 10, 393289, 10, 393290, 10, 393291, 10, 393292, 10, 393293, 10, 393294, 10, 458752, 2, 458769, 7, 458770, 8, 458790, 9, 458793, 8, 458805, 8, 458822, 536870914, 458823, 10, 458824, 10, 458825, 10, 458826, 10, 458827, 10, 458828, 10, 458829, 10, 458830, 10, 524288, 4, 524289, 1, 524304, 536870913, 524305, 536870918, 524306, 6, 524307, 5, 524308, 1, 524326, 8, 524329, 7, 524341, 7, 524358, 536870914, 524359, 10, 524360, 10, 524361, 10, 524362, 10, 524363, 10, 524364, 10, 524365, 10, 524366, 10, 589824, 10, 589825, 13, 589840, 536870914, 589841, 10, 589842, 10, 589843, 10, 589844, 2, 589862, 7, 589865, 7, 589876, 536870913, 589877, 6, 589878, 1, 589894, 536870914, 589895, 10, 589896, 10, 589897, 10, 589898, 10, 589899, 10, 589900, 10, 589901, 10, 589902, 10, 655360, 2, 655376, 536870914, 655377, 10, 655378, 10, 655379, 10, 655380, 2, 655398, 7, 655401, 8, 655412, 536870925, 655413, 11, 655414, 13, 655430, 536870914, 655431, 10, 655432, 10, 655433, 10, 655434, 10, 655435, 10, 655436, 10, 655437, 10, 655438, 10, 720896, 2, 720912, 536870914, 720913, 10, 720914, 10, 720915, 10, 720916, 2, 720934, 8, 720937, 7, 720958, 536870913, 720959, 5, 720960, 536870917, 720961, 5, 720962, 5, 720963, 536870917, 720964, 5, 720965, 0, 720966, 536870916, 720967, 10, 720968, 10, 720969, 10, 720970, 10, 720971, 10, 720972, 10, 720973, 10, 720974, 10, 786432, 2, 786437, 9, 786448, 536870914, 786449, 10, 786450, 10, 786451, 10, 786452, 2, 786464, 536870913, 786465, 1, 786470, 7, 786473, 7, 786474, 536870924, 786475, 1, 786494, 536870914, 786495, 10, 786496, 10, 786497, 10, 786498, 10, 786499, 10, 786500, 10, 786501, 10, 786502, 10, 786503, 10, 786504, 10, 786505, 10, 786506, 10, 786507, 10, 786508, 10, 786509, 10, 851968, 2, 851973, 7, 851984, 536870914, 851985, 10, 851986, 10, 851987, 10, 851988, 2, 851996, 536870913, 851997, 1, 852000, 536870914, 852001, 3, 852006, 7, 852009, 536870913, 852011, 2, 852030, 536870914, 852031, 10, 852032, 10, 852033, 10, 852034, 10, 852035, 10, 852036, 10, 852037, 10, 852038, 10, 852039, 10, 852040, 10, 852041, 10, 852042, 10, 852043, 10, 852044, 10, 852045, 10, 917504, 2, 917506, 9, 917509, 7, 917512, 536870921, 917520, 536870925, 917521, 11, 917522, 11, 917523, 11, 917524, 13, 917532, 536870925, 917533, 13, 917536, 536870914, 917537, 4, 917538, 1, 917540, 536870913, 917541, 0, 917542, 1, 917545, 536870914, 917546, 10, 917547, 4, 917548, 1, 917566, 536870914, 917567, 10, 917568, 10, 917569, 10, 917570, 10, 917571, 10, 917572, 10, 917573, 10, 917574, 10, 917575, 10, 917576, 10, 917577, 10, 917578, 10, 917579, 10, 917580, 10, 917581, 10, 983040, 2, 983042, 7, 983045, 7, 983048, 536870920, 983050, 536870913, 983051, 0, 983052, 1, 983064, 536870913, 983065, 1, 983072, 536870914, 983073, 10, 983074, 4, 983075, 0, 983076, 536870916, 983077, 10, 983078, 4, 983079, 536870912, 983080, 536870912, 983081, 536870916, 983082, 10, 983083, 10, 983084, 2, 983095, 9, 983102, 536870914, 983103, 10, 983104, 10, 983105, 10, 983106, 10, 983107, 10, 983108, 10, 983109, 10, 983110, 10, 983111, 10, 983112, 10, 983113, 10, 983114, 10, 983115, 10, 983116, 10, 983117, 10, 1048576, 2, 1048578, 8, 1048581, 8, 1048584, 536870919, 1048586, 536870914, 1048587, 536870922, 1048588, 2, 1048600, 536870925, 1048601, 13, 1048604, 9, 1048608, 536870925, 1048609, 536870923, 1048610, 536870923, 1048611, 536870923, 1048612, 10, 1048613, 10, 1048614, 10, 1048615, 10, 1048616, 10, 1048617, 10, 1048618, 10, 1048619, 10, 1048620, 4, 1048621, 1, 1048630, 536870921, 1048631, 8, 1048638, 536870914, 1048639, 10, 1048640, 10, 1048641, 10, 1048642, 10, 1048643, 10, 1048644, 10, 1048645, 10, 1048646, 10, 1048647, 10, 1048648, 10, 1048649, 10, 1048650, 10, 1048651, 10, 1048652, 10, 1048653, 10, 1114112, 4, 1114113, 0, 1114114, 6, 1114115, 0, 1114116, 0, 1114117, 6, 1114118, 1, 1114120, 536870920, 1114122, 536870925, 1114123, 11, 1114124, 13, 1114128, 536870913, 1114129, 5, 1114130, 536870917, 1114131, 5, 1114132, 0, 1114133, 1, 1114140, 7, 1114141, 536870921, 1114148, 536870914, 1114149, 10, 1114150, 10, 1114151, 10, 1114152, 10, 1114153, 10, 1114154, 10, 1114155, 10, 1114156, 10, 1114157, 2, 1114166, 536870920, 1114167, 8, 1114174, 536870914, 1114175, 10, 1114176, 10, 1114177, 10, 1114178, 10, 1114179, 10, 1114180, 10, 1114181, 10, 1114182, 10, 1114183, 10, 1114184, 10, 1114185, 10, 1114186, 10, 1114187, 10, 1114188, 10, 1179648, 10, 1179649, 10, 1179650, 10, 1179651, 10, 1179652, 10, 1179653, 10, 1179654, 2, 1179656, 536870919, 1179664, 536870915, 1179665, 10, 1179666, 10, 1179667, 10, 1179668, 10, 1179669, 4, 1179670, 12, 1179675, 9, 1179676, 8, 1179677, 8, 1179684, 536870914, 1179685, 10, 1179686, 10, 1179687, 10, 1179688, 10, 1179689, 10, 1179690, 10, 1179691, 10, 1179692, 10, 1179693, 4, 1179694, 1, 1179701, 9, 1179702, 536870919, 1179703, 7, 1179710, 536870914, 1179711, 10, 1179712, 10, 1179713, 10, 1179714, 10, 1179715, 10, 1179716, 10, 1179717, 10, 1179718, 10, 1179719, 10, 1179720, 10, 1179721, 10, 1179722, 10, 1245184, 10, 1245185, 10, 1245186, 10, 1245187, 10, 1245188, 10, 1245189, 10, 1245190, 2, 1245192, 536870919, 1245199, 536870913, 1245200, 536870916, 1245201, 10, 1245202, 10, 1245203, 10, 1245204, 10, 1245205, 10, 1245207, 1, 1245211, 7, 1245212, 7, 1245213, 536870920, 1245220, 536870914, 1245221, 10, 1245222, 10, 1245223, 10, 1245224, 10, 1245225, 10, 1245226, 10, 1245227, 10, 1245228, 10, 1245229, 10, 1245230, 2, 1245237, 8, 1245238, 536870919, 1245239, 8, 1245240, 536870921, 1245246, 536870914, 1245247, 10, 1245248, 10, 1245249, 10, 1245250, 10, 1245251, 10, 1245252, 10, 1245253, 10, 1245254, 10, 1245255, 10, 1245256, 10, 1245257, 10, 1245258, 10, 1310720, 10, 1310721, 10, 1310722, 10, 1310723, 10, 1310724, 10, 1310725, 10, 1310726, 2, 1310728, 536870920, 1310730, 536870913, 1310731, 1, 1310734, 536870913, 1310735, 536870916, 1310736, 10, 1310737, 10, 1310738, 10, 1310739, 10, 1310740, 10, 1310741, 10, 1310742, 10, 1310743, 4, 1310744, 1, 1310747, 8, 1310748, 7, 1310749, 536870919, 1310756, 536870914, 1310757, 10, 1310758, 10, 1310759, 10, 1310760, 10, 1310761, 10, 1310762, 10, 1310763, 10, 1310764, 10, 1310765, 10, 1310766, 4, 1310767, 5, 1310768, 12, 1310773, 7, 1310774, 536870919, 1310775, 7, 1310776, 536870919, 1310782, 536870914, 1310783, 10, 1310784, 10, 1310785, 10, 1310786, 10, 1310787, 10, 1310788, 10, 1310789, 10, 1310790, 10, 1310791, 10, 1310792, 10, 1310793, 10, 1376256, 10, 1376257, 10, 1376258, 10, 1376259, 10, 1376260, 10, 1376261, 10, 1376262, 4, 1376263, 0, 1376264, 0, 1376265, 0, 1376266, 536870916, 1376267, 4, 1376268, 0, 1376269, 0, 1376270, 536870916, 1376271, 10, 1376272, 10, 1376273, 10, 1376274, 10, 1376275, 10, 1376276, 10, 1376277, 10, 1376278, 10, 1376279, 10, 1376280, 4, 1376281, 12, 1376283, 8, 1376284, 8, 1376285, 536870920, 1376287, 536870924, 1376288, 0, 1376289, 5, 1376290, 536870917, 1376291, 0, 1376292, 536870916, 1376293, 10, 1376294, 10, 1376295, 10, 1376296, 10, 1376297, 10, 1376298, 10, 1376299, 10, 1376300, 10, 1376301, 10, 1376302, 10, 1376303, 10, 1376305, 12, 1376309, 7, 1376310, 536870920, 1376311, 7, 1376312, 536870920, 1376318, 536870914, 1376319, 10, 1376320, 10, 1376321, 10, 1376322, 10, 1376323, 10, 1376324, 10, 1376325, 10, 1376326, 10, 1376327, 10, 1376328, 10, 1441792, 10, 1441793, 10, 1441794, 10, 1441795, 10, 1441796, 10, 1441797, 10, 1441798, 10, 1441799, 10, 1441800, 10, 1441801, 10, 1441802, 10, 1441803, 10, 1441804, 10, 1441805, 10, 1441806, 10, 1441807, 10, 1441808, 10, 1441809, 10, 1441810, 10, 1441811, 10, 1441812, 10, 1441813, 10, 1441814, 10, 1441815, 10, 1441816, 10, 1441818, 0, 1441819, 6, 1441820, 6, 1441821, 536870918, 1441822, 5, 1441824, 10, 1441825, 10, 1441826, 10, 1441827, 10, 1441828, 10, 1441829, 10, 1441830, 10, 1441831, 10, 1441832, 10, 1441833, 10, 1441834, 10, 1441835, 10, 1441836, 10, 1441837, 10, 1441838, 10, 1441839, 10, 1441840, 10, 1441842, 0, 1441843, 0, 1441844, 0, 1441845, 6, 1441846, 536870918, 1441847, 6, 1441848, 536870918, 1441849, 0, 1441850, 5, 1441851, 536870917, 1441852, 5, 1441853, 0, 1441854, 536870916, 1441855, 10, 1441856, 10, 1441857, 10, 1441858, 10, 1441859, 10, 1441860, 10, 1441861, 10, 1441862, 10, 1441863, 10, 1507328, 10, 1507329, 10, 1507330, 10, 1507331, 10, 1507332, 10, 1507333, 10, 1507334, 10, 1507335, 10, 1507336, 10, 1507337, 10, 1507338, 10, 1507339, 10, 1507340, 10, 1507341, 10, 1507342, 10, 1507343, 10, 1507344, 10, 1507345, 10, 1507346, 10, 1507347, 10, 1507348, 10, 1507349, 10, 1507350, 10, 1507351, 10, 1507352, 10, 1507353, 10, 1507354, 10, 1507355, 10, 1507356, 10, 1507357, 10, 1507358, 10, 1507359, 10, 1507360, 10, 1507361, 10, 1507362, 10, 1507363, 10, 1507364, 10, 1507365, 10, 1507366, 10, 1507367, 10, 1507368, 10, 1507369, 10, 1507370, 10, 1507371, 10, 1507372, 10, 1507373, 10, 1507374, 10, 1507375, 10, 1507376, 10, 1507377, 10, 1507378, 10, 1507379, 10, 1507380, 10, 1507381, 10, 1507382, 10, 1507383, 10, 1507384, 10, 1507385, 10, 1507386, 10, 1507387, 10, 1507388, 10, 1507389, 10, 1507390, 10, 1507391, 10, 1507392, 10, 1507393, 10, 1507394, 10, 1507395, 10, 1507396, 10, 1507397, 10, 1507398, 10, 1507399, 10, 1572864, 10, 1572865, 10, 1572866, 10, 1572867, 10, 1572868, 10, 1572869, 10, 1572870, 10, 1572871, 10, 1572872, 10, 1572873, 10, 1572874, 10, 1572875, 10, 1572876, 10, 1572877, 10, 1572878, 10, 1572879, 10, 1572880, 10, 1572881, 10, 1572882, 10, 1572883, 10, 1572884, 10, 1572885, 10, 1572886, 10, 1572887, 10, 1572888, 10, 1572889, 10, 1572890, 10, 1572891, 10, 1572892, 10, 1572893, 10, 1572894, 10, 1572895, 10, 1572896, 10, 1572897, 10, 1572898, 10, 1572899, 10, 1572900, 10, 1572901, 10, 1572902, 10, 1572903, 10, 1572904, 10, 1572905, 10, 1572906, 10, 1572907, 10, 1572908, 10, 1572909, 10, 1572910, 10, 1572911, 10, 1572912, 10, 1572913, 10, 1572914, 10, 1572915, 10, 1572916, 10, 1572917, 10, 1572918, 10, 1572919, 10, 1572920, 10, 1572921, 10, 1572922, 10, 1572923, 10, 1572924, 10, 1572925, 10, 1572926, 10, 1572927, 10, 1572928, 10, 1572929, 10, 1572930, 10, 1572931, 10, 1572932, 10, 1572933, 10, 1572934, 10, 1572935, 10, 1638400, 10, 1638401, 10, 1638402, 10, 1638403, 10, 1638404, 10, 1638405, 10, 1638406, 10, 1638407, 10, 1638408, 10, 1638409, 10, 1638410, 10, 1638411, 10, 1638412, 10, 1638413, 10, 1638414, 10, 1638415, 10, 1638416, 10, 1638417, 10, 1638418, 10, 1638419, 10, 1638420, 10, 1638421, 10, 1638422, 10, 1638423, 10, 1638424, 10, 1638425, 10, 1638426, 10, 1638427, 10, 1638428, 10, 1638429, 10, 1638430, 10, 1638431, 10, 1638432, 10, 1638433, 10, 1638434, 10, 1638435, 10, 1638436, 10, 1638437, 10, 1638438, 10, 1638439, 10, 1638440, 10, 1638441, 10, 1638442, 10, 1638443, 10, 1638444, 10, 1638445, 10, 1638446, 10, 1638447, 10, 1638448, 10, 1638449, 10, 1638450, 10, 1638451, 10, 1638452, 10, 1638453, 10, 1638454, 10, 1638455, 10, 1638456, 10, 1638457, 10, 1638458, 10, 1638459, 10, 1638460, 10, 1638461, 10, 1638462, 10, 1638463, 10, 1638464, 10, 1638465, 10, 1638466, 10, 1638467, 10, 1638468, 10, 1638469, 10, 1638470, 10, 1638471, 10, 1703952, 10, 1703953, 10, 1703954, 10, 1703955, 10, 1703956, 10, 1703957, 10, 1703958, 10, 1703959, 10, 1703960, 10, 1703961, 10, 1703962, 10, 1703963, 10, 1703964, 10, 1703965, 10, 1703966, 10, 1703967, 10, 1703968, 10, 1703969, 10, 1703970, 10, 1703971, 10, 1703972, 10, 1703973, 10, 1703974, 10, 1703975, 10, 1703976, 10, 1703977, 10, 1703978, 10, 1703979, 10, 1703980, 10, 1703981, 10, 1703982, 10, 1703983, 10, 1703984, 10, 1703985, 10, 1703986, 10, 1703987, 10, 1703988, 10, 1703989, 10, 1703990, 10, 1703991, 10, 1703992, 10, 1703993, 10, 1703994, 10, 1703995, 10, 1703996, 10, 1703997, 10, 1703998, 10, 1703999, 10, 1704000, 10, 1704001, 10, 1704002, 10, 1704003, 10, 1704004, 10, 1704005, 10, 1704006, 10, 1704007, 10, 1769488, 10, 1769489, 10, 1769490, 10, 1769491, 10, 1769492, 10, 1769493, 10, 1769494, 10, 1769495, 10, 1769496, 10, 1769497, 10, 1769498, 10, 1769499, 10, 1769500, 10, 1769501, 10, 1769502, 10, 1769503, 10, 1769504, 10, 1769505, 10, 1769506, 10, 1769507, 10, 1769508, 10, 1769509, 10, 1769510, 10, 1769511, 10, 1769512, 10, 1769513, 10, 1769514, 10, 1769515, 10, 1769516, 10, 1769517, 10, 1769518, 10, 1769519, 10, 1769520, 10, 1769521, 10, 1769522, 10, 1769523, 10, 1769524, 10, 1769525, 10, 1769526, 10, 1769527, 10, 1769528, 10, 1769529, 10, 1769530, 10, 1769531, 10, 1769532, 10, 1769533, 10, 1769534, 10, 1769535, 10, 1769536, 10, 1769537, 10, 1769538, 10, 1769539, 10, 1769540, 10, 1769541, 10 ) +__meta__ = { "_edit_lock_":true } + +[node name="coins" type="Node" parent="."] + +[node name="coin" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 672, 1179 ) +linear_damp = 0.1 + +[node name="coin 2" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 704, 1179 ) +linear_damp = 0.1 + +[node name="coin 3" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 736, 1179 ) +linear_damp = 0.1 + +[node name="coin 4" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1120, 992 ) +linear_damp = 0.1 + +[node name="coin 5" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1152, 992 ) +linear_damp = 0.1 + +[node name="coin 6" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1184, 992 ) +linear_damp = 0.1 + +[node name="coin 7" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1216, 992 ) +linear_damp = 0.1 + +[node name="coin 8" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1248, 992 ) +linear_damp = 0.1 + +[node name="coin 9" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1568, 864 ) +linear_damp = 0.1 + +[node name="coin 10" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1632, 864 ) +linear_damp = 0.1 + +[node name="coin 11" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1824, 768 ) +linear_damp = 0.1 + +[node name="coin 12" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1888, 768 ) +linear_damp = 0.1 + +[node name="coin 13" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 2080, 672 ) +linear_damp = 0.1 + +[node name="coin 14" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 2144, 672 ) +linear_damp = 0.1 + +[node name="coin 15" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1792, 1248 ) +linear_damp = 0.1 + +[node name="coin 16" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1856, 1248 ) +linear_damp = 0.1 + +[node name="coin 17" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1920, 1248 ) +linear_damp = 0.1 + +[node name="coin 18" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1920, 1184 ) +linear_damp = 0.1 + +[node name="coin 19" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1856, 1184 ) +linear_damp = 0.1 + +[node name="coin 20" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 1792, 1184 ) +linear_damp = 0.1 + +[node name="coin 21" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 98.8868, 488.515 ) +linear_damp = 0.1 + +[node name="coin 22" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 89.5989, 481.217 ) +linear_damp = 0.1 + +[node name="coin 23" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 108.175, 481.217 ) +linear_damp = 0.1 + +[node name="coin 24" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 116.136, 469.939 ) +linear_damp = 0.1 + +[node name="coin 25" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 117.463, 457.997 ) +linear_damp = 0.1 + +[node name="coin 26" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 106.184, 449.373 ) +linear_damp = 0.1 + +[node name="coin 27" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 98.2234, 458.661 ) +linear_damp = 0.1 + +[node name="coin 28" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 88.272, 448.71 ) +linear_damp = 0.1 + +[node name="coin 29" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 79.6476, 457.334 ) +linear_damp = 0.1 + +[node name="coin 30" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 82.9647, 468.612 ) +linear_damp = 0.1 + +[node name="coin 31" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 3357.42, 465.288 ) +linear_damp = 0.1 + +[node name="coin 31 2" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 3421.42, 465.288 ) +linear_damp = 0.1 + +[node name="coin 31 3" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 3485.42, 465.288 ) +linear_damp = 0.1 + +[node name="coin 31 4" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 3485.42, 401.288 ) +linear_damp = 0.1 + +[node name="coin 31 5" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 3421.42, 401.288 ) +linear_damp = 0.1 + +[node name="coin 31 6" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 3357.42, 401.288 ) +linear_damp = 0.1 + +[node name="coin 32" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 4172.75, 605.058 ) +linear_damp = 0.1 + +[node name="coin 31 7" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 4236.75, 605.058 ) +linear_damp = 0.1 + +[node name="coin 31 7 2" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 4300.75, 605.058 ) +linear_damp = 0.1 + +[node name="coin 31 7 3" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 4300.75, 541.058 ) +linear_damp = 0.1 + +[node name="coin 31 7 4" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 4236.75, 541.058 ) +linear_damp = 0.1 + +[node name="coin 31 7 5" parent="coins" instance=ExtResource( 2 )] + +transform/pos = Vector2( 4172.75, 541.058 ) +linear_damp = 0.1 + +[node name="props" type="Node" parent="."] + +[node name="moving_platform" parent="props" instance=ExtResource( 3 )] + +transform/pos = Vector2( 1451.86, 742.969 ) +motion = Vector2( 0, 140 ) +cycle = 5.0 + +[node name="moving_platform 2" parent="props" instance=ExtResource( 3 )] + +transform/pos = Vector2( 624.824, 545.544 ) +motion = Vector2( 300, 0 ) +cycle = 10.0 + +[node name="moving_platform 3" parent="props" instance=ExtResource( 3 )] + +transform/pos = Vector2( 3419.86, 739.662 ) +motion = Vector2( 450, 0 ) +cycle = 10.0 + +[node name="seesaw" parent="props" instance=ExtResource( 4 )] + +transform/pos = Vector2( 2402.79, 849.52 ) + +[node name="one_way_platform" parent="props" instance=ExtResource( 5 )] + +transform/pos = Vector2( 927.698, 1120.81 ) + +[node name="player" parent="." instance=ExtResource( 6 )] + +transform/pos = Vector2( 251.684, 1045.6 ) + +[node name="music" type="StreamPlayer" parent="."] + +stream/stream = ExtResource( 7 ) +stream/play = false +stream/loop = true +stream/volume_db = 2.0 +stream/autoplay = true +stream/paused = false +stream/loop_restart_time = 0.0 +stream/buffering_ms = 500 + +[node name="enemies" type="Node" parent="."] + +[node name="enemy 5" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 834.664, 1309.6 ) + +[node name="enemy 6" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 707.665, 1225.05 ) + +[node name="enemy 7" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 1125.21, 1053.06 ) + +[node name="enemy 8" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 1292.11, 1059.24 ) + +[node name="enemy 9" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 1607.38, 923.239 ) + +[node name="enemy 10" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 2586.9, 939.059 ) + +[node name="enemy 11" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 1457.6, 688.741 ) + +[node name="enemy 12" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 1193.63, 460.381 ) + +[node name="enemy 13" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 3429.73, 540.865 ) + +[node name="enemy 14" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 3546.2, 1356.19 ) + +[node name="enemy 15" parent="enemies" instance=ExtResource( 8 )] + +transform/pos = Vector2( 2406.63, 815.115 ) + +[node name="parallax_bg" parent="." instance=ExtResource( 9 )] + +[node name="Label" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 12.0 +margin/top = -202.0 +margin/right = 358.0 +margin/bottom = -10.0 +text = "This is a simple demo on how to make a platformer game with Godot.\"This version uses physics and the 2D physics engine for motion and collision.\"\"The demo also shows the benefits of using the scene system, where coins,\"enemies and the player are edited separatedly and instanced in the stage.\"\"To edit the base tiles for the tileset, open the tileset_edit.tscn file and follow \"instructions.\"" +autowrap = true +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + + diff --git a/demos/2d/platformer/stage.xml b/demos/2d/platformer/stage.xml deleted file mode 100644 index ea0daf3ff8..0000000000 --- a/demos/2d/platformer/stage.xml +++ /dev/null @@ -1,250 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="10" version="2.0" version_name="Godot Engine v2.0.beta.custom_build"> - <ext_resource path="res://music.ogg" type="AudioStream" index="6"></ext_resource> - <ext_resource path="res://tileset.xml" type="TileSet" index="0"></ext_resource> - <ext_resource path="res://coin.xml" type="PackedScene" index="1"></ext_resource> - <ext_resource path="res://moving_platform.xml" type="PackedScene" index="2"></ext_resource> - <ext_resource path="res://one_way_platform.xml" type="PackedScene" index="4"></ext_resource> - <ext_resource path="res://player.xml" type="PackedScene" index="5"></ext_resource> - <ext_resource path="res://seesaw.xml" type="PackedScene" index="3"></ext_resource> - <ext_resource path="res://enemy.xml" type="PackedScene" index="7"></ext_resource> - <ext_resource path="res://parallax_bg.xml" type="PackedScene" index="8"></ext_resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="110"> - <string> "stage" </string> - <string> "__meta__" </string> - <string> "Node" </string> - <string> "tile_map" </string> - <string> "mode" </string> - <string> "tile_set" </string> - <string> "cell/size" </string> - <string> "cell/quadrant_size" </string> - <string> "cell/custom_transform" </string> - <string> "cell/half_offset" </string> - <string> "cell/tile_origin" </string> - <string> "cell/y_sort" </string> - <string> "collision/use_kinematic" </string> - <string> "collision/friction" </string> - <string> "collision/bounce" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "occluder/light_mask" </string> - <string> "tile_data" </string> - <string> "TileMap" </string> - <string> "coins" </string> - <string> "coin" </string> - <string> "transform/pos" </string> - <string> "linear_damp" </string> - <string> "coin 2" </string> - <string> "coin 3" </string> - <string> "coin 4" </string> - <string> "coin 5" </string> - <string> "coin 6" </string> - <string> "coin 7" </string> - <string> "coin 8" </string> - <string> "coin 9" </string> - <string> "coin 10" </string> - <string> "coin 11" </string> - <string> "coin 12" </string> - <string> "coin 13" </string> - <string> "coin 14" </string> - <string> "coin 15" </string> - <string> "coin 16" </string> - <string> "coin 17" </string> - <string> "coin 18" </string> - <string> "coin 19" </string> - <string> "coin 20" </string> - <string> "coin 21" </string> - <string> "coin 22" </string> - <string> "coin 23" </string> - <string> "coin 24" </string> - <string> "coin 25" </string> - <string> "coin 26" </string> - <string> "coin 27" </string> - <string> "coin 28" </string> - <string> "coin 29" </string> - <string> "coin 30" </string> - <string> "coin 31" </string> - <string> "coin 31 2" </string> - <string> "coin 31 3" </string> - <string> "coin 31 4" </string> - <string> "coin 31 5" </string> - <string> "coin 31 6" </string> - <string> "coin 32" </string> - <string> "coin 31 7" </string> - <string> "coin 31 7 2" </string> - <string> "coin 31 7 3" </string> - <string> "coin 31 7 4" </string> - <string> "coin 31 7 5" </string> - <string> "props" </string> - <string> "moving_platform" </string> - <string> "motion" </string> - <string> "cycle" </string> - <string> "moving_platform 2" </string> - <string> "moving_platform 3" </string> - <string> "seesaw" </string> - <string> "one_way_platform" </string> - <string> "player" </string> - <string> "music" </string> - <string> "stream/stream" </string> - <string> "stream/play" </string> - <string> "stream/loop" </string> - <string> "stream/volume_db" </string> - <string> "stream/autoplay" </string> - <string> "stream/paused" </string> - <string> "stream/loop_restart_time" </string> - <string> "stream/buffering_ms" </string> - <string> "StreamPlayer" </string> - <string> "enemies" </string> - <string> "enemy 5" </string> - <string> "enemy 6" </string> - <string> "enemy 7" </string> - <string> "enemy 8" </string> - <string> "enemy 9" </string> - <string> "enemy 10" </string> - <string> "enemy 11" </string> - <string> "enemy 12" </string> - <string> "enemy 13" </string> - <string> "enemy 14" </string> - <string> "enemy 15" </string> - <string> "parallax_bg" </string> - <string> "Label" </string> - <string> "margin/left" </string> - <string> "margin/top" </string> - <string> "margin/right" </string> - <string> "margin/bottom" </string> - <string> "focus/ignore_mouse" </string> - <string> "focus/stop_mouse" </string> - <string> "size_flags/horizontal" </string> - <string> "text" </string> - <string> "autowrap" </string> - <string> "percent_visible" </string> - <string> "lines_skipped" </string> - <string> "max_lines_visible" </string> - </string_array> - <string> "node_count" </string> - <int> 67 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="757"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 19, 3, -1, 16, 4, 1, 5, 2, 6, 3, 7, 4, 8, 5, 9, 6, 10, 1, 11, 7, 12, 7, 13, 8, 14, 9, 15, 10, 16, 10, 17, 10, 18, 11, 1, 12, 0, 0, 0, 2, 20, -1, 0, 0, 2, 0, 2147483647, 21, 13, 2, 22, 14, 23, 15, 0, 2, 0, 2147483647, 24, 13, 2, 22, 16, 23, 15, 0, 2, 0, 2147483647, 25, 13, 2, 22, 17, 23, 15, 0, 2, 0, 2147483647, 26, 13, 2, 22, 18, 23, 15, 0, 2, 0, 2147483647, 27, 13, 2, 22, 19, 23, 15, 0, 2, 0, 2147483647, 28, 13, 2, 22, 20, 23, 15, 0, 2, 0, 2147483647, 29, 13, 2, 22, 21, 23, 15, 0, 2, 0, 2147483647, 30, 13, 2, 22, 22, 23, 15, 0, 2, 0, 2147483647, 31, 13, 2, 22, 23, 23, 15, 0, 2, 0, 2147483647, 32, 13, 2, 22, 24, 23, 15, 0, 2, 0, 2147483647, 33, 13, 2, 22, 25, 23, 15, 0, 2, 0, 2147483647, 34, 13, 2, 22, 26, 23, 15, 0, 2, 0, 2147483647, 35, 13, 2, 22, 27, 23, 15, 0, 2, 0, 2147483647, 36, 13, 2, 22, 28, 23, 15, 0, 2, 0, 2147483647, 37, 13, 2, 22, 29, 23, 15, 0, 2, 0, 2147483647, 38, 13, 2, 22, 30, 23, 15, 0, 2, 0, 2147483647, 39, 13, 2, 22, 31, 23, 15, 0, 2, 0, 2147483647, 40, 13, 2, 22, 32, 23, 15, 0, 2, 0, 2147483647, 41, 13, 2, 22, 33, 23, 15, 0, 2, 0, 2147483647, 42, 13, 2, 22, 34, 23, 15, 0, 2, 0, 2147483647, 43, 13, 2, 22, 35, 23, 15, 0, 2, 0, 2147483647, 44, 13, 2, 22, 36, 23, 15, 0, 2, 0, 2147483647, 45, 13, 2, 22, 37, 23, 15, 0, 2, 0, 2147483647, 46, 13, 2, 22, 38, 23, 15, 0, 2, 0, 2147483647, 47, 13, 2, 22, 39, 23, 15, 0, 2, 0, 2147483647, 48, 13, 2, 22, 40, 23, 15, 0, 2, 0, 2147483647, 49, 13, 2, 22, 41, 23, 15, 0, 2, 0, 2147483647, 50, 13, 2, 22, 42, 23, 15, 0, 2, 0, 2147483647, 51, 13, 2, 22, 43, 23, 15, 0, 2, 0, 2147483647, 52, 13, 2, 22, 44, 23, 15, 0, 2, 0, 2147483647, 53, 13, 2, 22, 45, 23, 15, 0, 2, 0, 2147483647, 54, 13, 2, 22, 46, 23, 15, 0, 2, 0, 2147483647, 55, 13, 2, 22, 47, 23, 15, 0, 2, 0, 2147483647, 56, 13, 2, 22, 48, 23, 15, 0, 2, 0, 2147483647, 57, 13, 2, 22, 49, 23, 15, 0, 2, 0, 2147483647, 58, 13, 2, 22, 50, 23, 15, 0, 2, 0, 2147483647, 59, 13, 2, 22, 51, 23, 15, 0, 2, 0, 2147483647, 60, 13, 2, 22, 52, 23, 15, 0, 2, 0, 2147483647, 61, 13, 2, 22, 53, 23, 15, 0, 2, 0, 2147483647, 62, 13, 2, 22, 54, 23, 15, 0, 2, 0, 2147483647, 63, 13, 2, 22, 55, 23, 15, 0, 2, 0, 2147483647, 64, 13, 2, 22, 56, 23, 15, 0, 0, 0, 2, 65, -1, 0, 0, 45, 0, 2147483647, 66, 57, 3, 22, 58, 67, 59, 68, 60, 0, 45, 0, 2147483647, 69, 57, 3, 22, 61, 67, 62, 68, 63, 0, 45, 0, 2147483647, 70, 57, 3, 22, 64, 67, 65, 68, 63, 0, 45, 0, 2147483647, 71, 66, 1, 22, 67, 0, 45, 0, 2147483647, 72, 68, 1, 22, 69, 0, 0, 0, 2147483647, 73, 70, 1, 22, 71, 0, 0, 0, 83, 74, -1, 8, 75, 72, 76, 7, 77, 73, 78, 74, 79, 73, 80, 7, 81, 9, 82, 75, 0, 0, 0, 2, 84, -1, 0, 0, 53, 0, 2147483647, 85, 76, 1, 22, 77, 0, 53, 0, 2147483647, 86, 76, 1, 22, 78, 0, 53, 0, 2147483647, 87, 76, 1, 22, 79, 0, 53, 0, 2147483647, 88, 76, 1, 22, 80, 0, 53, 0, 2147483647, 89, 76, 1, 22, 81, 0, 53, 0, 2147483647, 90, 76, 1, 22, 82, 0, 53, 0, 2147483647, 91, 76, 1, 22, 83, 0, 53, 0, 2147483647, 92, 76, 1, 22, 84, 0, 53, 0, 2147483647, 93, 76, 1, 22, 85, 0, 53, 0, 2147483647, 94, 76, 1, 22, 86, 0, 53, 0, 2147483647, 95, 76, 1, 22, 87, 0, 0, 0, 2147483647, 96, 88, 0, 0, 0, 0, 97, 97, -1, 12, 98, 89, 99, 90, 100, 91, 101, 92, 102, 73, 103, 73, 104, 6, 105, 93, 106, 73, 107, 8, 108, 1, 109, 94, 0 </int_array> - <string> "variants" </string> - <array len="95" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - </dictionary> - <int> 0 </int> - <resource external="0"> </resource> - <vector2> 64, 64 </vector2> - <int> 8 </int> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 2 </int> - <bool> False </bool> - <real> 1 </real> - <real> 0 </real> - <int> 1 </int> - <int_array len="2008"> 0, 2, 70, 536870914, 71, 10, 72, 10, 73, 10, 74, 10, 75, 10, 76, 10, 77, 10, 78, 10, 65536, 2, 65606, 536870914, 65607, 10, 65608, 10, 65609, 10, 65610, 10, 65611, 10, 65612, 10, 65613, 10, 65614, 10, 131072, 2, 131142, 536870914, 131143, 10, 131144, 10, 131145, 10, 131146, 10, 131147, 10, 131148, 10, 131149, 10, 131150, 10, 196608, 2, 196626, 9, 196678, 536870914, 196679, 10, 196680, 10, 196681, 10, 196682, 10, 196683, 10, 196684, 10, 196685, 10, 196686, 10, 262144, 2, 262162, 8, 262214, 536870914, 262215, 10, 262216, 10, 262217, 10, 262218, 10, 262219, 10, 262220, 10, 262221, 10, 262222, 10, 327680, 2, 327697, 536870921, 327698, 7, 327733, 9, 327750, 536870914, 327751, 10, 327752, 10, 327753, 10, 327754, 10, 327755, 10, 327756, 10, 327757, 10, 327758, 10, 393216, 2, 393233, 536870920, 393234, 7, 393257, 9, 393269, 7, 393286, 536870914, 393287, 10, 393288, 10, 393289, 10, 393290, 10, 393291, 10, 393292, 10, 393293, 10, 393294, 10, 458752, 2, 458769, 7, 458770, 8, 458790, 9, 458793, 8, 458805, 8, 458822, 536870914, 458823, 10, 458824, 10, 458825, 10, 458826, 10, 458827, 10, 458828, 10, 458829, 10, 458830, 10, 524288, 4, 524289, 1, 524304, 536870913, 524305, 536870918, 524306, 6, 524307, 5, 524308, 1, 524326, 8, 524329, 7, 524341, 7, 524358, 536870914, 524359, 10, 524360, 10, 524361, 10, 524362, 10, 524363, 10, 524364, 10, 524365, 10, 524366, 10, 589824, 10, 589825, 13, 589840, 536870914, 589841, 10, 589842, 10, 589843, 10, 589844, 2, 589862, 7, 589865, 7, 589876, 536870913, 589877, 6, 589878, 1, 589894, 536870914, 589895, 10, 589896, 10, 589897, 10, 589898, 10, 589899, 10, 589900, 10, 589901, 10, 589902, 10, 655360, 2, 655376, 536870914, 655377, 10, 655378, 10, 655379, 10, 655380, 2, 655398, 7, 655401, 8, 655412, 536870925, 655413, 11, 655414, 13, 655430, 536870914, 655431, 10, 655432, 10, 655433, 10, 655434, 10, 655435, 10, 655436, 10, 655437, 10, 655438, 10, 720896, 2, 720912, 536870914, 720913, 10, 720914, 10, 720915, 10, 720916, 2, 720934, 8, 720937, 7, 720958, 536870913, 720959, 5, 720960, 536870917, 720961, 5, 720962, 5, 720963, 536870917, 720964, 5, 720965, 0, 720966, 536870916, 720967, 10, 720968, 10, 720969, 10, 720970, 10, 720971, 10, 720972, 10, 720973, 10, 720974, 10, 786432, 2, 786437, 9, 786448, 536870914, 786449, 10, 786450, 10, 786451, 10, 786452, 2, 786464, 536870913, 786465, 1, 786470, 7, 786473, 7, 786474, 536870924, 786475, 1, 786494, 536870914, 786495, 10, 786496, 10, 786497, 10, 786498, 10, 786499, 10, 786500, 10, 786501, 10, 786502, 10, 786503, 10, 786504, 10, 786505, 10, 786506, 10, 786507, 10, 786508, 10, 786509, 10, 851968, 2, 851973, 7, 851984, 536870914, 851985, 10, 851986, 10, 851987, 10, 851988, 2, 851996, 536870913, 851997, 1, 852000, 536870914, 852001, 3, 852006, 7, 852009, 536870913, 852011, 2, 852030, 536870914, 852031, 10, 852032, 10, 852033, 10, 852034, 10, 852035, 10, 852036, 10, 852037, 10, 852038, 10, 852039, 10, 852040, 10, 852041, 10, 852042, 10, 852043, 10, 852044, 10, 852045, 10, 917504, 2, 917506, 9, 917509, 7, 917512, 536870921, 917520, 536870925, 917521, 11, 917522, 11, 917523, 11, 917524, 13, 917532, 536870925, 917533, 13, 917536, 536870914, 917537, 4, 917538, 1, 917540, 536870913, 917541, 0, 917542, 1, 917545, 536870914, 917546, 10, 917547, 4, 917548, 1, 917566, 536870914, 917567, 10, 917568, 10, 917569, 10, 917570, 10, 917571, 10, 917572, 10, 917573, 10, 917574, 10, 917575, 10, 917576, 10, 917577, 10, 917578, 10, 917579, 10, 917580, 10, 917581, 10, 983040, 2, 983042, 7, 983045, 7, 983048, 536870920, 983050, 536870913, 983051, 0, 983052, 1, 983064, 536870913, 983065, 1, 983072, 536870914, 983073, 10, 983074, 4, 983075, 0, 983076, 536870916, 983077, 10, 983078, 4, 983079, 536870912, 983080, 536870912, 983081, 536870916, 983082, 10, 983083, 10, 983084, 2, 983095, 9, 983102, 536870914, 983103, 10, 983104, 10, 983105, 10, 983106, 10, 983107, 10, 983108, 10, 983109, 10, 983110, 10, 983111, 10, 983112, 10, 983113, 10, 983114, 10, 983115, 10, 983116, 10, 983117, 10, 1048576, 2, 1048578, 8, 1048581, 8, 1048584, 536870919, 1048586, 536870914, 1048587, 536870922, 1048588, 2, 1048600, 536870925, 1048601, 13, 1048604, 9, 1048608, 536870925, 1048609, 536870923, 1048610, 536870923, 1048611, 536870923, 1048612, 10, 1048613, 10, 1048614, 10, 1048615, 10, 1048616, 10, 1048617, 10, 1048618, 10, 1048619, 10, 1048620, 4, 1048621, 1, 1048630, 536870921, 1048631, 8, 1048638, 536870914, 1048639, 10, 1048640, 10, 1048641, 10, 1048642, 10, 1048643, 10, 1048644, 10, 1048645, 10, 1048646, 10, 1048647, 10, 1048648, 10, 1048649, 10, 1048650, 10, 1048651, 10, 1048652, 10, 1048653, 10, 1114112, 4, 1114113, 0, 1114114, 6, 1114115, 0, 1114116, 0, 1114117, 6, 1114118, 1, 1114120, 536870920, 1114122, 536870925, 1114123, 11, 1114124, 13, 1114128, 536870913, 1114129, 5, 1114130, 536870917, 1114131, 5, 1114132, 0, 1114133, 1, 1114140, 7, 1114141, 536870921, 1114148, 536870914, 1114149, 10, 1114150, 10, 1114151, 10, 1114152, 10, 1114153, 10, 1114154, 10, 1114155, 10, 1114156, 10, 1114157, 2, 1114166, 536870920, 1114167, 8, 1114174, 536870914, 1114175, 10, 1114176, 10, 1114177, 10, 1114178, 10, 1114179, 10, 1114180, 10, 1114181, 10, 1114182, 10, 1114183, 10, 1114184, 10, 1114185, 10, 1114186, 10, 1114187, 10, 1114188, 10, 1179648, 10, 1179649, 10, 1179650, 10, 1179651, 10, 1179652, 10, 1179653, 10, 1179654, 2, 1179656, 536870919, 1179664, 536870915, 1179665, 10, 1179666, 10, 1179667, 10, 1179668, 10, 1179669, 4, 1179670, 12, 1179675, 9, 1179676, 8, 1179677, 8, 1179684, 536870914, 1179685, 10, 1179686, 10, 1179687, 10, 1179688, 10, 1179689, 10, 1179690, 10, 1179691, 10, 1179692, 10, 1179693, 4, 1179694, 1, 1179701, 9, 1179702, 536870919, 1179703, 7, 1179710, 536870914, 1179711, 10, 1179712, 10, 1179713, 10, 1179714, 10, 1179715, 10, 1179716, 10, 1179717, 10, 1179718, 10, 1179719, 10, 1179720, 10, 1179721, 10, 1179722, 10, 1245184, 10, 1245185, 10, 1245186, 10, 1245187, 10, 1245188, 10, 1245189, 10, 1245190, 2, 1245192, 536870919, 1245199, 536870913, 1245200, 536870916, 1245201, 10, 1245202, 10, 1245203, 10, 1245204, 10, 1245205, 10, 1245207, 1, 1245211, 7, 1245212, 7, 1245213, 536870920, 1245220, 536870914, 1245221, 10, 1245222, 10, 1245223, 10, 1245224, 10, 1245225, 10, 1245226, 10, 1245227, 10, 1245228, 10, 1245229, 10, 1245230, 2, 1245237, 8, 1245238, 536870919, 1245239, 8, 1245240, 536870921, 1245246, 536870914, 1245247, 10, 1245248, 10, 1245249, 10, 1245250, 10, 1245251, 10, 1245252, 10, 1245253, 10, 1245254, 10, 1245255, 10, 1245256, 10, 1245257, 10, 1245258, 10, 1310720, 10, 1310721, 10, 1310722, 10, 1310723, 10, 1310724, 10, 1310725, 10, 1310726, 2, 1310728, 536870920, 1310730, 536870913, 1310731, 1, 1310734, 536870913, 1310735, 536870916, 1310736, 10, 1310737, 10, 1310738, 10, 1310739, 10, 1310740, 10, 1310741, 10, 1310742, 10, 1310743, 4, 1310744, 1, 1310747, 8, 1310748, 7, 1310749, 536870919, 1310756, 536870914, 1310757, 10, 1310758, 10, 1310759, 10, 1310760, 10, 1310761, 10, 1310762, 10, 1310763, 10, 1310764, 10, 1310765, 10, 1310766, 4, 1310767, 5, 1310768, 12, 1310773, 7, 1310774, 536870919, 1310775, 7, 1310776, 536870919, 1310782, 536870914, 1310783, 10, 1310784, 10, 1310785, 10, 1310786, 10, 1310787, 10, 1310788, 10, 1310789, 10, 1310790, 10, 1310791, 10, 1310792, 10, 1310793, 10, 1376256, 10, 1376257, 10, 1376258, 10, 1376259, 10, 1376260, 10, 1376261, 10, 1376262, 4, 1376263, 0, 1376264, 0, 1376265, 0, 1376266, 536870916, 1376267, 4, 1376268, 0, 1376269, 0, 1376270, 536870916, 1376271, 10, 1376272, 10, 1376273, 10, 1376274, 10, 1376275, 10, 1376276, 10, 1376277, 10, 1376278, 10, 1376279, 10, 1376280, 4, 1376281, 12, 1376283, 8, 1376284, 8, 1376285, 536870920, 1376287, 536870924, 1376288, 0, 1376289, 5, 1376290, 536870917, 1376291, 0, 1376292, 536870916, 1376293, 10, 1376294, 10, 1376295, 10, 1376296, 10, 1376297, 10, 1376298, 10, 1376299, 10, 1376300, 10, 1376301, 10, 1376302, 10, 1376303, 10, 1376305, 12, 1376309, 7, 1376310, 536870920, 1376311, 7, 1376312, 536870920, 1376318, 536870914, 1376319, 10, 1376320, 10, 1376321, 10, 1376322, 10, 1376323, 10, 1376324, 10, 1376325, 10, 1376326, 10, 1376327, 10, 1376328, 10, 1441792, 10, 1441793, 10, 1441794, 10, 1441795, 10, 1441796, 10, 1441797, 10, 1441798, 10, 1441799, 10, 1441800, 10, 1441801, 10, 1441802, 10, 1441803, 10, 1441804, 10, 1441805, 10, 1441806, 10, 1441807, 10, 1441808, 10, 1441809, 10, 1441810, 10, 1441811, 10, 1441812, 10, 1441813, 10, 1441814, 10, 1441815, 10, 1441816, 10, 1441818, 0, 1441819, 6, 1441820, 6, 1441821, 536870918, 1441822, 5, 1441824, 10, 1441825, 10, 1441826, 10, 1441827, 10, 1441828, 10, 1441829, 10, 1441830, 10, 1441831, 10, 1441832, 10, 1441833, 10, 1441834, 10, 1441835, 10, 1441836, 10, 1441837, 10, 1441838, 10, 1441839, 10, 1441840, 10, 1441842, 0, 1441843, 0, 1441844, 0, 1441845, 6, 1441846, 536870918, 1441847, 6, 1441848, 536870918, 1441849, 0, 1441850, 5, 1441851, 536870917, 1441852, 5, 1441853, 0, 1441854, 536870916, 1441855, 10, 1441856, 10, 1441857, 10, 1441858, 10, 1441859, 10, 1441860, 10, 1441861, 10, 1441862, 10, 1441863, 10, 1507328, 10, 1507329, 10, 1507330, 10, 1507331, 10, 1507332, 10, 1507333, 10, 1507334, 10, 1507335, 10, 1507336, 10, 1507337, 10, 1507338, 10, 1507339, 10, 1507340, 10, 1507341, 10, 1507342, 10, 1507343, 10, 1507344, 10, 1507345, 10, 1507346, 10, 1507347, 10, 1507348, 10, 1507349, 10, 1507350, 10, 1507351, 10, 1507352, 10, 1507353, 10, 1507354, 10, 1507355, 10, 1507356, 10, 1507357, 10, 1507358, 10, 1507359, 10, 1507360, 10, 1507361, 10, 1507362, 10, 1507363, 10, 1507364, 10, 1507365, 10, 1507366, 10, 1507367, 10, 1507368, 10, 1507369, 10, 1507370, 10, 1507371, 10, 1507372, 10, 1507373, 10, 1507374, 10, 1507375, 10, 1507376, 10, 1507377, 10, 1507378, 10, 1507379, 10, 1507380, 10, 1507381, 10, 1507382, 10, 1507383, 10, 1507384, 10, 1507385, 10, 1507386, 10, 1507387, 10, 1507388, 10, 1507389, 10, 1507390, 10, 1507391, 10, 1507392, 10, 1507393, 10, 1507394, 10, 1507395, 10, 1507396, 10, 1507397, 10, 1507398, 10, 1507399, 10, 1572864, 10, 1572865, 10, 1572866, 10, 1572867, 10, 1572868, 10, 1572869, 10, 1572870, 10, 1572871, 10, 1572872, 10, 1572873, 10, 1572874, 10, 1572875, 10, 1572876, 10, 1572877, 10, 1572878, 10, 1572879, 10, 1572880, 10, 1572881, 10, 1572882, 10, 1572883, 10, 1572884, 10, 1572885, 10, 1572886, 10, 1572887, 10, 1572888, 10, 1572889, 10, 1572890, 10, 1572891, 10, 1572892, 10, 1572893, 10, 1572894, 10, 1572895, 10, 1572896, 10, 1572897, 10, 1572898, 10, 1572899, 10, 1572900, 10, 1572901, 10, 1572902, 10, 1572903, 10, 1572904, 10, 1572905, 10, 1572906, 10, 1572907, 10, 1572908, 10, 1572909, 10, 1572910, 10, 1572911, 10, 1572912, 10, 1572913, 10, 1572914, 10, 1572915, 10, 1572916, 10, 1572917, 10, 1572918, 10, 1572919, 10, 1572920, 10, 1572921, 10, 1572922, 10, 1572923, 10, 1572924, 10, 1572925, 10, 1572926, 10, 1572927, 10, 1572928, 10, 1572929, 10, 1572930, 10, 1572931, 10, 1572932, 10, 1572933, 10, 1572934, 10, 1572935, 10, 1638400, 10, 1638401, 10, 1638402, 10, 1638403, 10, 1638404, 10, 1638405, 10, 1638406, 10, 1638407, 10, 1638408, 10, 1638409, 10, 1638410, 10, 1638411, 10, 1638412, 10, 1638413, 10, 1638414, 10, 1638415, 10, 1638416, 10, 1638417, 10, 1638418, 10, 1638419, 10, 1638420, 10, 1638421, 10, 1638422, 10, 1638423, 10, 1638424, 10, 1638425, 10, 1638426, 10, 1638427, 10, 1638428, 10, 1638429, 10, 1638430, 10, 1638431, 10, 1638432, 10, 1638433, 10, 1638434, 10, 1638435, 10, 1638436, 10, 1638437, 10, 1638438, 10, 1638439, 10, 1638440, 10, 1638441, 10, 1638442, 10, 1638443, 10, 1638444, 10, 1638445, 10, 1638446, 10, 1638447, 10, 1638448, 10, 1638449, 10, 1638450, 10, 1638451, 10, 1638452, 10, 1638453, 10, 1638454, 10, 1638455, 10, 1638456, 10, 1638457, 10, 1638458, 10, 1638459, 10, 1638460, 10, 1638461, 10, 1638462, 10, 1638463, 10, 1638464, 10, 1638465, 10, 1638466, 10, 1638467, 10, 1638468, 10, 1638469, 10, 1638470, 10, 1638471, 10, 1703952, 10, 1703953, 10, 1703954, 10, 1703955, 10, 1703956, 10, 1703957, 10, 1703958, 10, 1703959, 10, 1703960, 10, 1703961, 10, 1703962, 10, 1703963, 10, 1703964, 10, 1703965, 10, 1703966, 10, 1703967, 10, 1703968, 10, 1703969, 10, 1703970, 10, 1703971, 10, 1703972, 10, 1703973, 10, 1703974, 10, 1703975, 10, 1703976, 10, 1703977, 10, 1703978, 10, 1703979, 10, 1703980, 10, 1703981, 10, 1703982, 10, 1703983, 10, 1703984, 10, 1703985, 10, 1703986, 10, 1703987, 10, 1703988, 10, 1703989, 10, 1703990, 10, 1703991, 10, 1703992, 10, 1703993, 10, 1703994, 10, 1703995, 10, 1703996, 10, 1703997, 10, 1703998, 10, 1703999, 10, 1704000, 10, 1704001, 10, 1704002, 10, 1704003, 10, 1704004, 10, 1704005, 10, 1704006, 10, 1704007, 10, 1769488, 10, 1769489, 10, 1769490, 10, 1769491, 10, 1769492, 10, 1769493, 10, 1769494, 10, 1769495, 10, 1769496, 10, 1769497, 10, 1769498, 10, 1769499, 10, 1769500, 10, 1769501, 10, 1769502, 10, 1769503, 10, 1769504, 10, 1769505, 10, 1769506, 10, 1769507, 10, 1769508, 10, 1769509, 10, 1769510, 10, 1769511, 10, 1769512, 10, 1769513, 10, 1769514, 10, 1769515, 10, 1769516, 10, 1769517, 10, 1769518, 10, 1769519, 10, 1769520, 10, 1769521, 10, 1769522, 10, 1769523, 10, 1769524, 10, 1769525, 10, 1769526, 10, 1769527, 10, 1769528, 10, 1769529, 10, 1769530, 10, 1769531, 10, 1769532, 10, 1769533, 10, 1769534, 10, 1769535, 10, 1769536, 10, 1769537, 10, 1769538, 10, 1769539, 10, 1769540, 10, 1769541, 10 </int_array> - <dictionary shared="false"> - <string> "_edit_lock_" </string> - <bool> True </bool> - </dictionary> - <resource external="1"> </resource> - <vector2> 672, 1179 </vector2> - <real> 0.1 </real> - <vector2> 704, 1179 </vector2> - <vector2> 736, 1179 </vector2> - <vector2> 1120, 992 </vector2> - <vector2> 1152, 992 </vector2> - <vector2> 1184, 992 </vector2> - <vector2> 1216, 992 </vector2> - <vector2> 1248, 992 </vector2> - <vector2> 1568, 864 </vector2> - <vector2> 1632, 864 </vector2> - <vector2> 1824, 768 </vector2> - <vector2> 1888, 768 </vector2> - <vector2> 2080, 672 </vector2> - <vector2> 2144, 672 </vector2> - <vector2> 1792, 1248 </vector2> - <vector2> 1856, 1248 </vector2> - <vector2> 1920, 1248 </vector2> - <vector2> 1920, 1184 </vector2> - <vector2> 1856, 1184 </vector2> - <vector2> 1792, 1184 </vector2> - <vector2> 98.8868, 488.515 </vector2> - <vector2> 89.5989, 481.217 </vector2> - <vector2> 108.175, 481.217 </vector2> - <vector2> 116.136, 469.939 </vector2> - <vector2> 117.463, 457.997 </vector2> - <vector2> 106.184, 449.373 </vector2> - <vector2> 98.2234, 458.661 </vector2> - <vector2> 88.272, 448.71 </vector2> - <vector2> 79.6476, 457.334 </vector2> - <vector2> 82.9647, 468.612 </vector2> - <vector2> 3357.42, 465.288 </vector2> - <vector2> 3421.42, 465.288 </vector2> - <vector2> 3485.42, 465.288 </vector2> - <vector2> 3485.42, 401.288 </vector2> - <vector2> 3421.42, 401.288 </vector2> - <vector2> 3357.42, 401.288 </vector2> - <vector2> 4172.75, 605.058 </vector2> - <vector2> 4236.75, 605.058 </vector2> - <vector2> 4300.75, 605.058 </vector2> - <vector2> 4300.75, 541.058 </vector2> - <vector2> 4236.75, 541.058 </vector2> - <vector2> 4172.75, 541.058 </vector2> - <resource external="2"> </resource> - <vector2> 1451.86, 742.969 </vector2> - <vector2> 0, 140 </vector2> - <real> 5 </real> - <vector2> 624.824, 545.544 </vector2> - <vector2> 300, 0 </vector2> - <real> 10 </real> - <vector2> 3419.86, 739.662 </vector2> - <vector2> 450, 0 </vector2> - <resource external="3"> </resource> - <vector2> 2402.79, 849.52 </vector2> - <resource external="4"> </resource> - <vector2> 927.698, 1120.81 </vector2> - <resource external="5"> </resource> - <vector2> 251.684, 1045.6 </vector2> - <resource external="6"> </resource> - <bool> True </bool> - <real> 2 </real> - <int> 500 </int> - <resource external="7"> </resource> - <vector2> 834.664, 1309.6 </vector2> - <vector2> 707.665, 1225.05 </vector2> - <vector2> 1125.21, 1053.06 </vector2> - <vector2> 1292.11, 1059.24 </vector2> - <vector2> 1607.38, 923.239 </vector2> - <vector2> 2586.9, 939.059 </vector2> - <vector2> 1457.6, 688.741 </vector2> - <vector2> 1193.63, 460.381 </vector2> - <vector2> 3429.73, 540.865 </vector2> - <vector2> 3546.2, 1356.19 </vector2> - <vector2> 2406.63, 815.115 </vector2> - <resource external="8"> </resource> - <real> 12 </real> - <real> -202 </real> - <real> 358 </real> - <real> -10 </real> - <string> "This is a simple demo on how to make a platformer game with Godot."This version uses physics and the 2D physics engine for motion and collision.""The demo also shows the benefits of using the scene system, where coins,"enemies and the player are edited separatedly and instanced in the stage.""To edit the base tiles for the tileset, open the tileset_edit.xml file and follow "instructions."" </string> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/tileset.tres b/demos/2d/platformer/tileset.tres new file mode 100644 index 0000000000..17b7dd3b4d --- /dev/null +++ b/demos/2d/platformer/tileset.tres @@ -0,0 +1,195 @@ +[gd_resource type="TileSet" load_steps=14 format=1] + +[ext_resource path="res://tiles_demo.png" type="Texture" id=1] + +[sub_resource type="ConvexPolygonShape2D" id=1] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -24, 32, -24, 32, 32, -32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -24, 24, -24, 24, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=3] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -32, 32, -32, 32, 32, -32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -56, 32, 8, 32, 64, -32, 64 ) + +[sub_resource type="ConvexPolygonShape2D" id=5] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=6] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -24, 32, -24, 32, 24, -32, 24 ) + +[sub_resource type="ConvexPolygonShape2D" id=7] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -24, 24, -24, 24, 24, -32, 24 ) + +[sub_resource type="ConvexPolygonShape2D" id=8] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=9] + +custom_solver_bias = 0.0 +points = Vector2Array( -64, 32, -64, -32, -8, -32, -8, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=10] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=11] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=12] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 ) + +[resource] + +0/name = "floor" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/region = Rect2( 0, 0, 64, 64 ) +0/occluder_offset = Vector2( 32, 32 ) +0/navigation_offset = Vector2( 32, 32 ) +0/shape_offset = Vector2( 32, 32 ) +0/shapes = [ SubResource( 1 ) ] +1/name = "edge" +1/texture = ExtResource( 1 ) +1/tex_offset = Vector2( 0, 0 ) +1/region = Rect2( 64, 0, 64, 64 ) +1/occluder_offset = Vector2( 32, 32 ) +1/navigation_offset = Vector2( 32, 32 ) +1/shape_offset = Vector2( 32, 32 ) +1/shapes = [ SubResource( 2 ) ] +2/name = "wall" +2/texture = ExtResource( 1 ) +2/tex_offset = Vector2( 0, 0 ) +2/region = Rect2( 64, 64, 64, 64 ) +2/occluder_offset = Vector2( 32, 32 ) +2/navigation_offset = Vector2( 32, 32 ) +2/shape_offset = Vector2( 32, 32 ) +2/shapes = [ SubResource( 8 ) ] +3/name = "wall_deco" +3/texture = ExtResource( 1 ) +3/tex_offset = Vector2( 0, 0 ) +3/region = Rect2( 320, 128, 128, 64 ) +3/occluder_offset = Vector2( 64, 32 ) +3/navigation_offset = Vector2( 64, 32 ) +3/shape_offset = Vector2( 64, 32 ) +3/shapes = [ SubResource( 9 ) ] +4/name = "corner" +4/texture = ExtResource( 1 ) +4/tex_offset = Vector2( 0, 0 ) +4/region = Rect2( 64, 128, 64, 64 ) +4/occluder_offset = Vector2( 32, 32 ) +4/navigation_offset = Vector2( 32, 32 ) +4/shape_offset = Vector2( 32, 32 ) +4/shapes = [ SubResource( 10 ) ] +5/name = "flowers" +5/texture = ExtResource( 1 ) +5/tex_offset = Vector2( 0, 0 ) +5/region = Rect2( 192, 192, 64, 64 ) +5/occluder_offset = Vector2( 32, 32 ) +5/navigation_offset = Vector2( 32, 32 ) +5/shape_offset = Vector2( 32, 32 ) +5/shapes = [ SubResource( 11 ) ] +6/name = "tree_base" +6/texture = ExtResource( 1 ) +6/tex_offset = Vector2( 0, 0 ) +6/region = Rect2( 256, 192, 64, 64 ) +6/occluder_offset = Vector2( 32, 32 ) +6/navigation_offset = Vector2( 32, 32 ) +6/shape_offset = Vector2( 32, 32 ) +6/shapes = [ SubResource( 12 ) ] +7/name = "tree_mid" +7/texture = ExtResource( 1 ) +7/tex_offset = Vector2( 0, 0 ) +7/region = Rect2( 256, 128, 64, 64 ) +7/occluder_offset = Vector2( 32, 32 ) +7/navigation_offset = Vector2( 32, 32 ) +7/shape_offset = Vector2( 0, 0 ) +7/shapes = [ ] +8/name = "tree_mid 2" +8/texture = ExtResource( 1 ) +8/tex_offset = Vector2( 0, 0 ) +8/region = Rect2( 256, 64, 64, 64 ) +8/occluder_offset = Vector2( 32, 32 ) +8/navigation_offset = Vector2( 32, 32 ) +8/shape_offset = Vector2( 0, 0 ) +8/shapes = [ ] +9/name = "tree_top" +9/texture = ExtResource( 1 ) +9/tex_offset = Vector2( 0, 0 ) +9/region = Rect2( 256, 0, 64, 64 ) +9/occluder_offset = Vector2( 32, 32 ) +9/navigation_offset = Vector2( 32, 32 ) +9/shape_offset = Vector2( 0, 0 ) +9/shapes = [ ] +10/name = "solid" +10/texture = ExtResource( 1 ) +10/tex_offset = Vector2( 0, 0 ) +10/region = Rect2( 0, 64, 64, 64 ) +10/occluder_offset = Vector2( 32, 32 ) +10/navigation_offset = Vector2( 32, 32 ) +10/shape_offset = Vector2( 0, 0 ) +10/shapes = [ ] +11/name = "ceiling" +11/texture = ExtResource( 1 ) +11/tex_offset = Vector2( 0, 0 ) +11/region = Rect2( 384, 64, 64, 64 ) +11/occluder_offset = Vector2( 32, 32 ) +11/navigation_offset = Vector2( 32, 32 ) +11/shape_offset = Vector2( 32, 32 ) +11/shapes = [ SubResource( 3 ) ] +12/name = "ramp" +12/texture = ExtResource( 1 ) +12/tex_offset = Vector2( 0, 0 ) +12/region = Rect2( 128, 128, 64, 128 ) +12/occluder_offset = Vector2( 32, 64 ) +12/navigation_offset = Vector2( 32, 64 ) +12/shape_offset = Vector2( 32, 64 ) +12/shapes = [ SubResource( 4 ) ] +13/name = "ceiling2wall" +13/texture = ExtResource( 1 ) +13/tex_offset = Vector2( 0, 0 ) +13/region = Rect2( 448, 64, 64, 64 ) +13/occluder_offset = Vector2( 32, 32 ) +13/navigation_offset = Vector2( 32, 32 ) +13/shape_offset = Vector2( 32, 32 ) +13/shapes = [ SubResource( 5 ) ] +14/name = "platform_floor" +14/texture = ExtResource( 1 ) +14/tex_offset = Vector2( 0, 0 ) +14/region = Rect2( 128, 0, 64, 64 ) +14/occluder_offset = Vector2( 32, 32 ) +14/navigation_offset = Vector2( 32, 32 ) +14/shape_offset = Vector2( 32, 32 ) +14/shapes = [ SubResource( 6 ) ] +15/name = "platform_edge" +15/texture = ExtResource( 1 ) +15/tex_offset = Vector2( 0, 0 ) +15/region = Rect2( 192, 0, 64, 64 ) +15/occluder_offset = Vector2( 32, 32 ) +15/navigation_offset = Vector2( 32, 32 ) +15/shape_offset = Vector2( 32, 32 ) +15/shapes = [ SubResource( 7 ) ] + diff --git a/demos/2d/platformer/tileset.xml b/demos/2d/platformer/tileset.xml deleted file mode 100644 index d8f9a651ee..0000000000 --- a/demos/2d/platformer/tileset.xml +++ /dev/null @@ -1,191 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="TileSet" subresource_count="14" version="1.0" version_name="Godot Engine v1.0.stable.custom_build"> - <ext_resource path="res://tiles_demo.png" type="Texture"></ext_resource> - <resource type="ConvexPolygonShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 32, -32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://2"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -24, 24, -24, 24, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://3"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://4"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -64, 32, -64, -32, -8, -32, -8, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://5"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="5"> -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://6"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://7"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://8"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -32, 32, -32, 32, 32, -32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://9"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -56, 32, 8, 32, 64, -32, 64 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://10"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://11"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 24, -32, 24 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://12"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -24, 24, -24, 24, 24, -32, 24 </vector2_array> - - </resource> - <main_resource> - <string name="0/name"> "floor" </string> - <resource name="0/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="0/tex_offset"> 0, 0 </vector2> - <vector2 name="0/shape_offset"> 32, 32 </vector2> - <rect2 name="0/region"> 0, 0, 64, 64 </rect2> - <array name="0/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://1"> </resource> - </array> - <string name="1/name"> "edge" </string> - <resource name="1/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="1/tex_offset"> 0, 0 </vector2> - <vector2 name="1/shape_offset"> 32, 32 </vector2> - <rect2 name="1/region"> 64, 0, 64, 64 </rect2> - <array name="1/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://2"> </resource> - </array> - <string name="2/name"> "wall" </string> - <resource name="2/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="2/tex_offset"> 0, 0 </vector2> - <vector2 name="2/shape_offset"> 32, 32 </vector2> - <rect2 name="2/region"> 64, 64, 64, 64 </rect2> - <array name="2/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://3"> </resource> - </array> - <string name="3/name"> "wall_deco" </string> - <resource name="3/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="3/tex_offset"> 0, 0 </vector2> - <vector2 name="3/shape_offset"> 64, 32 </vector2> - <rect2 name="3/region"> 320, 128, 128, 64 </rect2> - <array name="3/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://4"> </resource> - </array> - <string name="4/name"> "corner" </string> - <resource name="4/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="4/tex_offset"> 0, 0 </vector2> - <vector2 name="4/shape_offset"> 32, 32 </vector2> - <rect2 name="4/region"> 64, 128, 64, 64 </rect2> - <array name="4/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://5"> </resource> - </array> - <string name="5/name"> "flowers" </string> - <resource name="5/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="5/tex_offset"> 0, 0 </vector2> - <vector2 name="5/shape_offset"> 32, 32 </vector2> - <rect2 name="5/region"> 192, 192, 64, 64 </rect2> - <array name="5/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://6"> </resource> - </array> - <string name="6/name"> "tree_base" </string> - <resource name="6/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="6/tex_offset"> 0, 0 </vector2> - <vector2 name="6/shape_offset"> 32, 32 </vector2> - <rect2 name="6/region"> 256, 192, 64, 64 </rect2> - <array name="6/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://7"> </resource> - </array> - <string name="7/name"> "tree_mid" </string> - <resource name="7/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="7/tex_offset"> 0, 0 </vector2> - <vector2 name="7/shape_offset"> 0, 0 </vector2> - <rect2 name="7/region"> 256, 128, 64, 64 </rect2> - <array name="7/shapes" len="0" shared="false"> - </array> - <string name="8/name"> "tree_mid 2" </string> - <resource name="8/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="8/tex_offset"> 0, 0 </vector2> - <vector2 name="8/shape_offset"> 0, 0 </vector2> - <rect2 name="8/region"> 256, 64, 64, 64 </rect2> - <array name="8/shapes" len="0" shared="false"> - </array> - <string name="9/name"> "tree_top" </string> - <resource name="9/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="9/tex_offset"> 0, 0 </vector2> - <vector2 name="9/shape_offset"> 0, 0 </vector2> - <rect2 name="9/region"> 256, 0, 64, 64 </rect2> - <array name="9/shapes" len="0" shared="false"> - </array> - <string name="10/name"> "solid" </string> - <resource name="10/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="10/tex_offset"> 0, 0 </vector2> - <vector2 name="10/shape_offset"> 0, 0 </vector2> - <rect2 name="10/region"> 0, 64, 64, 64 </rect2> - <array name="10/shapes" len="0" shared="false"> - </array> - <string name="11/name"> "ceiling" </string> - <resource name="11/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="11/tex_offset"> 0, 0 </vector2> - <vector2 name="11/shape_offset"> 32, 32 </vector2> - <rect2 name="11/region"> 384, 64, 64, 64 </rect2> - <array name="11/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://8"> </resource> - </array> - <string name="12/name"> "ramp" </string> - <resource name="12/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="12/tex_offset"> 0, 0 </vector2> - <vector2 name="12/shape_offset"> 32, 64 </vector2> - <rect2 name="12/region"> 128, 128, 64, 128 </rect2> - <array name="12/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://9"> </resource> - </array> - <string name="13/name"> "ceiling2wall" </string> - <resource name="13/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="13/tex_offset"> 0, 0 </vector2> - <vector2 name="13/shape_offset"> 32, 32 </vector2> - <rect2 name="13/region"> 448, 64, 64, 64 </rect2> - <array name="13/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://10"> </resource> - </array> - <string name="14/name"> "platform_floor" </string> - <resource name="14/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="14/tex_offset"> 0, 0 </vector2> - <vector2 name="14/shape_offset"> 32, 32 </vector2> - <rect2 name="14/region"> 128, 0, 64, 64 </rect2> - <array name="14/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://11"> </resource> - </array> - <string name="15/name"> "platform_edge" </string> - <resource name="15/texture" resource_type="Texture" path="res://tiles_demo.png"> </resource> - <vector2 name="15/tex_offset"> 0, 0 </vector2> - <vector2 name="15/shape_offset"> 32, 32 </vector2> - <rect2 name="15/region"> 192, 0, 64, 64 </rect2> - <array name="15/shapes" len="1" shared="false"> - <resource resource_type="Shape2D" path="local://12"> </resource> - </array> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/tileset_edit.tscn b/demos/2d/platformer/tileset_edit.tscn new file mode 100644 index 0000000000..733fada55d --- /dev/null +++ b/demos/2d/platformer/tileset_edit.tscn @@ -0,0 +1,432 @@ +[gd_scene load_steps=14 format=1] + +[ext_resource path="res://tiles_demo.png" type="Texture" id=1] + +[sub_resource type="ConvexPolygonShape2D" id=1] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -24, 32, -24, 32, 32, -32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -24, 24, -24, 24, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=3] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] + +custom_solver_bias = 0.0 +points = Vector2Array( -64, 32, -64, -32, -8, -32, -8, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=5] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=6] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=7] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -24, 32, -24, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=8] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -32, 32, -32, 32, 32, -32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=9] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -56, 32, 8, 32, 64, -32, 64 ) + +[sub_resource type="ConvexPolygonShape2D" id=10] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, 32, -32, -32, 24, -32, 24, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=11] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -24, 32, -24, 32, 24, -32, 24 ) + +[sub_resource type="ConvexPolygonShape2D" id=12] + +custom_solver_bias = 0.0 +points = Vector2Array( -32, -24, 24, -24, 24, 24, -32, 24 ) + +[node name="Node" type="Node"] + +[node name="floor" type="Sprite" parent="."] + +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 0, 0, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="floor"] + +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="floor/collision"] + +build_mode = 0 +polygon = Vector2Array( 32, -24, 32, 32, -32, 32, -32, -24 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="edge" type="Sprite" parent="."] + +transform/pos = Vector2( 64, 0 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 64, 0, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="edge"] + +input/pickable = false +shapes/0/shape = SubResource( 2 ) +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="edge/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, -24, 24, -24, 24, 32, -32, 32 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="wall" type="Sprite" parent="."] + +transform/pos = Vector2( 64, 64 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 64, 64, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="wall"] + +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="wall/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, -32, 24, -32, 24, 32, -32, 32 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="wall_deco" type="Sprite" parent="."] + +transform/pos = Vector2( 96, 128 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 320, 128, 128, 64 ) + +[node name="collision" type="StaticBody2D" parent="wall_deco"] + +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="wall_deco/collision"] + +build_mode = 0 +polygon = Vector2Array( -64, -32, -8, -32, -8, 32, -64, 32 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="corner" type="Sprite" parent="."] + +transform/pos = Vector2( 64, 192 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 64, 128, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="corner"] + +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="corner/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, -32, 24, -32, 32, -24, 32, 32, -32, 32 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="flowers" type="Sprite" parent="."] + +transform/pos = Vector2( 128, 192 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 192, 192, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="flowers"] + +input/pickable = false +shapes/0/shape = SubResource( 6 ) +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="flowers/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, 32, 32, 32, 32, -24, -32, -24 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="tree_base" type="Sprite" parent="."] + +transform/pos = Vector2( 192, 192 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 256, 192, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="tree_base"] + +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="tree_base/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, 32, 32, 32, 32, -24, -32, -24 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="tree_mid" type="Sprite" parent="."] + +transform/pos = Vector2( 192, 128 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 256, 128, 64, 64 ) + +[node name="tree_mid 2" type="Sprite" parent="."] + +transform/pos = Vector2( 192, 64 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 256, 64, 64, 64 ) + +[node name="tree_top" type="Sprite" parent="."] + +transform/pos = Vector2( 192, 0 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 256, 0, 64, 64 ) + +[node name="solid" type="Sprite" parent="."] + +transform/pos = Vector2( 0, 64 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 0, 64, 64, 64 ) + +[node name="ceiling" type="Sprite" parent="."] + +transform/pos = Vector2( 0, 128 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 384, 64, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="ceiling"] + +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 +constant_linear_velocity = Vector2( 0, 0 ) +constant_angular_velocity = 0.0 +friction = 1.0 +bounce = 0.0 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="ceiling/collision"] + +build_mode = 0 +polygon = Vector2Array( 32, -32, 32, 32, -32, 32, -32, -32 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="ramp" type="Sprite" parent="."] + +transform/pos = Vector2( 256, 224 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 128, 128, 64, 128 ) + +[node name="collision" type="StaticBody2D" parent="ramp"] + +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="ramp/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, -56, 32, 8, 32, 64, -32, 64 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="ceiling2wall" type="Sprite" parent="."] + +transform/pos = Vector2( 0, 192 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 448, 64, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="ceiling2wall"] + +input/pickable = false +shapes/0/shape = SubResource( 10 ) +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="ceiling2wall/collision"] + +build_mode = 0 +polygon = Vector2Array( -32, -32, 24, -32, 24, 32, -32, 32 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="platform_floor" type="Sprite" parent="."] + +transform/pos = Vector2( 0, 256 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 128, 0, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="platform_floor"] + +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="platform_floor/collision"] + +build_mode = 0 +polygon = Vector2Array( 32, -24, 32, 24, -32, 24, -32, -24 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="platform_edge" type="Sprite" parent="."] + +transform/pos = Vector2( 64, 256 ) +texture = ExtResource( 1 ) +region = true +region_rect = Rect2( 192, 0, 64, 64 ) + +[node name="collision" type="StaticBody2D" parent="platform_edge"] + +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="CollisionPolygon2D" type="CollisionPolygon2D" parent="platform_edge/collision"] + +build_mode = 0 +polygon = Vector2Array( 24, -24, 24, 24, -32, 24, -32, -24 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="help" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 1.0 +margin/top = 331.0 +margin/right = 727.0 +margin/bottom = 422.0 +text = "This scene serves as a tool for editing the tileset.\nNodes (sprites) and their respective collisionsare edited here.\n\nTo create a tileset from this, a \"TileSet\" resoucre must be created. Use the helper in: Scene -> Convert To -> TileSet.\nThis will save a tileset. Saving over it will merge your changes.\n\nFinally, the saved tileset resource (tileset.tres in this case), can be opened to be used into a TileMap node for editing a tile map." +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + + diff --git a/demos/2d/platformer/tileset_edit.xml b/demos/2d/platformer/tileset_edit.xml deleted file mode 100644 index 3ae9f1bd2a..0000000000 --- a/demos/2d/platformer/tileset_edit.xml +++ /dev/null @@ -1,342 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="14" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://tiles_demo.png" type="Texture" index="0"></ext_resource> - <resource type="ConvexPolygonShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 32, -32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://2"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -24, 24, -24, 24, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://3"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://4"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -64, 32, -64, -32, -8, -32, -8, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://5"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="5"> -32, 32, -32, -32, 24, -32, 32, -24, 32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://6"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://7"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -24, 32, -24, 32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://8"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -32, 32, -32, 32, 32, -32, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://9"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -56, 32, 8, 32, 64, -32, 64 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://10"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, 32, -32, -32, 24, -32, 24, 32 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://11"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -24, 32, -24, 32, 24, -32, 24 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://12"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -32, -24, 24, -24, 24, 24, -32, 24 </vector2_array> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="49"> - <string> "Node" </string> - <string> "__meta__" </string> - <string> "floor" </string> - <string> "texture" </string> - <string> "region" </string> - <string> "region_rect" </string> - <string> "Sprite" </string> - <string> "collision" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "constant_linear_velocity" </string> - <string> "constant_angular_velocity" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "StaticBody2D" </string> - <string> "CollisionPolygon2D" </string> - <string> "build_mode" </string> - <string> "polygon" </string> - <string> "shape_range" </string> - <string> "trigger" </string> - <string> "edge" </string> - <string> "transform/pos" </string> - <string> "wall" </string> - <string> "wall_deco" </string> - <string> "corner" </string> - <string> "flowers" </string> - <string> "tree_base" </string> - <string> "tree_mid" </string> - <string> "tree_mid 2" </string> - <string> "tree_top" </string> - <string> "solid" </string> - <string> "ceiling" </string> - <string> "ramp" </string> - <string> "ceiling2wall" </string> - <string> "help" </string> - <string> "focus/ignore_mouse" </string> - <string> "focus/stop_mouse" </string> - <string> "size_flags/horizontal" </string> - <string> "text" </string> - <string> "percent_visible" </string> - <string> "lines_skipped" </string> - <string> "max_lines_visible" </string> - <string> "Label" </string> - <string> "platform_floor" </string> - <string> "platform_edge" </string> - </string_array> - <string> "node_count" </string> - <int> 42 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="772"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 6, 2, -1, 3, 3, 1, 4, 2, 5, 3, 0, 1, 0, 18, 7, -1, 10, 8, 4, 9, 5, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 2, 0, 19, 19, -1, 4, 20, 11, 21, 12, 22, 13, 23, 4, 0, 0, 0, 6, 24, -1, 4, 25, 14, 3, 1, 4, 2, 5, 15, 0, 4, 0, 18, 7, -1, 10, 8, 4, 9, 16, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 5, 0, 19, 19, -1, 4, 20, 11, 21, 17, 22, 13, 23, 4, 0, 0, 0, 6, 26, -1, 4, 25, 18, 3, 1, 4, 2, 5, 19, 0, 7, 0, 18, 7, -1, 10, 8, 4, 9, 20, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 8, 0, 19, 19, -1, 4, 20, 11, 21, 21, 22, 13, 23, 4, 0, 0, 0, 6, 27, -1, 4, 25, 22, 3, 1, 4, 2, 5, 23, 0, 10, 0, 18, 7, -1, 10, 8, 4, 9, 24, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 11, 0, 19, 19, -1, 4, 20, 11, 21, 25, 22, 13, 23, 4, 0, 0, 0, 6, 28, -1, 4, 25, 26, 3, 1, 4, 2, 5, 27, 0, 13, 0, 18, 7, -1, 10, 8, 4, 9, 28, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 14, 0, 19, 19, -1, 4, 20, 11, 21, 29, 22, 13, 23, 4, 0, 0, 0, 6, 29, -1, 4, 25, 30, 3, 1, 4, 2, 5, 31, 0, 16, 0, 18, 7, -1, 10, 8, 4, 9, 32, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 17, 0, 19, 19, -1, 4, 20, 11, 21, 33, 22, 13, 23, 4, 0, 0, 0, 6, 30, -1, 4, 25, 34, 3, 1, 4, 2, 5, 35, 0, 19, 0, 18, 7, -1, 10, 8, 4, 9, 36, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 20, 0, 19, 19, -1, 4, 20, 11, 21, 33, 22, 13, 23, 4, 0, 0, 0, 6, 31, -1, 4, 25, 37, 3, 1, 4, 2, 5, 38, 0, 0, 0, 6, 32, -1, 4, 25, 39, 3, 1, 4, 2, 5, 40, 0, 0, 0, 6, 33, -1, 4, 25, 41, 3, 1, 4, 2, 5, 42, 0, 0, 0, 6, 34, -1, 4, 25, 43, 3, 1, 4, 2, 5, 44, 0, 0, 0, 6, 35, -1, 4, 25, 45, 3, 1, 4, 2, 5, 46, 0, 26, 0, 18, 7, -1, 10, 8, 4, 9, 47, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 27, 0, 19, 19, -1, 4, 20, 11, 21, 48, 22, 13, 23, 4, 0, 0, 0, 6, 36, -1, 4, 25, 49, 3, 1, 4, 2, 5, 50, 0, 29, 0, 18, 7, -1, 10, 8, 4, 9, 51, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 30, 0, 19, 19, -1, 4, 20, 11, 21, 52, 22, 13, 23, 4, 0, 0, 0, 6, 37, -1, 4, 25, 53, 3, 1, 4, 2, 5, 54, 0, 32, 0, 18, 7, -1, 10, 8, 4, 9, 55, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 33, 0, 19, 19, -1, 4, 20, 11, 21, 21, 22, 13, 23, 4, 0, 0, 0, 46, 38, -1, 7, 39, 2, 40, 2, 41, 56, 42, 57, 43, 10, 44, 11, 45, 58, 0, 0, 0, 6, 47, -1, 4, 25, 59, 3, 1, 4, 2, 5, 60, 0, 36, 0, 18, 7, -1, 10, 8, 4, 9, 61, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 37, 0, 19, 19, -1, 4, 20, 11, 21, 62, 22, 13, 23, 4, 0, 0, 0, 6, 48, -1, 4, 25, 63, 3, 1, 4, 2, 5, 64, 0, 39, 0, 18, 7, -1, 10, 8, 4, 9, 65, 10, 6, 11, 4, 12, 7, 13, 7, 14, 8, 15, 9, 16, 10, 17, 9, 0, 40, 0, 19, 19, -1, 4, 20, 11, 21, 66, 22, 13, 23, 4, 0 </int_array> - <string> "variants" </string> - <array len="67" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "Script" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -446.534, -87.6905 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.670183 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <bool> True </bool> - <rect2> 0, 0, 64, 64 </rect2> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, -0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <vector2> 0, 0 </vector2> - <real> 0 </real> - <real> 1 </real> - <int> 0 </int> - <vector2_array len="4"> 32, -24, 32, 32, -32, 32, -32, -24 </vector2_array> - <vector2> -1, -1 </vector2> - <vector2> 64, 0 </vector2> - <rect2> 64, 0, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://2"> </resource> - <vector2_array len="4"> -32, -24, 24, -24, 24, 32, -32, 32 </vector2_array> - <vector2> 64, 64 </vector2> - <rect2> 64, 64, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://3"> </resource> - <vector2_array len="4"> -32, -32, 24, -32, 24, 32, -32, 32 </vector2_array> - <vector2> 96, 128 </vector2> - <rect2> 320, 128, 128, 64 </rect2> - <resource resource_type="Shape2D" path="local://4"> </resource> - <vector2_array len="4"> -64, -32, -8, -32, -8, 32, -64, 32 </vector2_array> - <vector2> 64, 192 </vector2> - <rect2> 64, 128, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://5"> </resource> - <vector2_array len="5"> -32, -32, 24, -32, 32, -24, 32, 32, -32, 32 </vector2_array> - <vector2> 128, 192 </vector2> - <rect2> 192, 192, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://6"> </resource> - <vector2_array len="4"> -32, 32, 32, 32, 32, -24, -32, -24 </vector2_array> - <vector2> 192, 192 </vector2> - <rect2> 256, 192, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://7"> </resource> - <vector2> 192, 128 </vector2> - <rect2> 256, 128, 64, 64 </rect2> - <vector2> 192, 64 </vector2> - <rect2> 256, 64, 64, 64 </rect2> - <vector2> 192, 0 </vector2> - <rect2> 256, 0, 64, 64 </rect2> - <vector2> 0, 64 </vector2> - <rect2> 0, 64, 64, 64 </rect2> - <vector2> 0, 128 </vector2> - <rect2> 384, 64, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://8"> </resource> - <vector2_array len="4"> 32, -32, 32, 32, -32, 32, -32, -32 </vector2_array> - <vector2> 256, 224 </vector2> - <rect2> 128, 128, 64, 128 </rect2> - <resource resource_type="Shape2D" path="local://9"> </resource> - <vector2_array len="4"> -32, -56, 32, 8, 32, 64, -32, 64 </vector2_array> - <vector2> 0, 192 </vector2> - <rect2> 448, 64, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://10"> </resource> - <int> 2 </int> - <string> "This scene serves as a tool for editing the tileset.
Nodes (sprites) and their respective collisions
are edited here. 

To create a tileset from this, a "TileSet" resoucre 
must be created. Use the helper in:

 Scene -< Convert To -< TileSet

This will save a tileset. Saving over it will merge your changes.

Finally, the saved tileset resource (tileset.xml in this
 case), can be opened to be used into a TileMap node
 for editing a tile map.
" </string> - <int> -1 </int> - <vector2> 0, 256 </vector2> - <rect2> 128, 0, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://11"> </resource> - <vector2_array len="4"> 32, -24, 32, 24, -32, 24, -32, -24 </vector2_array> - <vector2> 64, 256 </vector2> - <rect2> 192, 0, 64, 64 </rect2> - <resource resource_type="Shape2D" path="local://12"> </resource> - <vector2_array len="4"> 24, -24, 24, 24, -32, 24, -32, -24 </vector2_array> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/platformer/types.cache b/demos/2d/platformer/types.cache deleted file mode 100644 index a215e5f137..0000000000 --- a/demos/2d/platformer/types.cache +++ /dev/null @@ -1,64 +0,0 @@ -res://tileset.xml -TileSet -res://sound_shoot.wav -Sample -res://sound_hit.wav -Sample -res://scroll_bg_cloud_2.png -Texture -res://enemy.png -Texture -res://bullet.gd -GDScript -res://scroll_bg_cloud_3.png -Texture -res://coin.gd -GDScript -res://stage.xml -PackedScene -res://moving_platform.xml -PackedScene -res://bullet.png -Texture -res://player.xml -PackedScene -res://parallax_bg.xml -PackedScene -res://music.ogg -AudioStreamOGGVorbis -res://coin.png -Texture -res://sound_explode.wav -Sample -res://sound_coin.wav -Sample -res://robot_demo.png -Texture -res://moving_platform.gd -GDScript -res://enemy.xml -PackedScene -res://tileset_edit.xml -PackedScene -res://scroll_bg_fg_1.png -Texture -res://player.gd -GDScript -res://scroll_bg_fg_2.png -Texture -res://moving_platform.png -Texture -res://enemy.gd -GDScript -res://bullet.xml -PackedScene -res://tiles_demo.png -Texture -res://sound_jump.wav -Sample -res://scroll_bg_sky.png -Texture -res://scroll_bg_cloud_1.png -Texture -res://coin.xml -PackedScene diff --git a/demos/2d/pong/engine.cfg b/demos/2d/pong/engine.cfg index 9e76449bcf..418f02c06b 100644 --- a/demos/2d/pong/engine.cfg +++ b/demos/2d/pong/engine.cfg @@ -1,7 +1,7 @@ [application] name="Pong" -main_scene="pong.xml" +main_scene="pong.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/pong/pong.tscn b/demos/2d/pong/pong.tscn new file mode 100644 index 0000000000..95aecc60f3 --- /dev/null +++ b/demos/2d/pong/pong.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=6 format=1] + +[ext_resource path="res://pong.gd" type="Script" id=1] +[ext_resource path="res://left_pallete.png" type="Texture" id=2] +[ext_resource path="res://right_pallete.png" type="Texture" id=3] +[ext_resource path="res://separator.png" type="Texture" id=4] +[ext_resource path="res://ball.png" type="Texture" id=5] + +[node name="game" type="Node2D"] + +script/script = ExtResource( 1 ) + +[node name="left" type="Sprite" parent="."] + +transform/pos = Vector2( 67.6875, 183.208 ) +texture = ExtResource( 2 ) + +[node name="right" type="Sprite" parent="."] + +transform/pos = Vector2( 577, 187 ) +texture = ExtResource( 3 ) + +[node name="separator" type="Sprite" parent="."] + +transform/pos = Vector2( 320, 200 ) +texture = ExtResource( 4 ) + +[node name="ball" type="Sprite" parent="."] + +transform/pos = Vector2( 320.283, 188 ) +texture = ExtResource( 5 ) + + diff --git a/demos/2d/pong/pong.xml b/demos/2d/pong/pong.xml deleted file mode 100644 index 2189be7c62..0000000000 --- a/demos/2d/pong/pong.xml +++ /dev/null @@ -1,191 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="6" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://pong.gd" type="Script" index="0"></ext_resource> - <ext_resource path="res://left_pallete.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://separator.png" type="Texture" index="3"></ext_resource> - <ext_resource path="res://right_pallete.png" type="Texture" index="2"></ext_resource> - <ext_resource path="res://ball.png" type="Texture" index="4"></ext_resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="11"> - <string> "game" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "Node2D" </string> - <string> "left" </string> - <string> "transform/pos" </string> - <string> "texture" </string> - <string> "Sprite" </string> - <string> "right" </string> - <string> "separator" </string> - <string> "ball" </string> - </string_array> - <string> "node_count" </string> - <int> 5 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="55"> -1, -1, 3, 0, -1, 2, 1, 0, 2, 1, 0, 0, 0, 7, 4, -1, 2, 5, 2, 6, 3, 0, 0, 0, 7, 8, -1, 2, 5, 4, 6, 5, 0, 0, 0, 7, 9, -1, 2, 5, 6, 6, 7, 0, 0, 0, 7, 10, -1, 2, 5, 8, 6, 9, 0 </int_array> - <string> "variants" </string> - <array len="10" shared="false"> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "Script" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -54.59, -36.0052 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.108033 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <vector2> 67.6875, 183.208 </vector2> - <resource external="1"> </resource> - <vector2> 577, 187 </vector2> - <resource external="2"> </resource> - <vector2> 320, 200 </vector2> - <resource external="3"> </resource> - <vector2> 320.283, 188 </vector2> - <resource external="4"> </resource> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/ball.tscn b/demos/2d/rubegoldberg/ball.tscn new file mode 100644 index 0000000000..0b11461c3b --- /dev/null +++ b/demos/2d/rubegoldberg/ball.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://art/bowling_ball.png" type="Texture" id=1] + +[sub_resource type="CircleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 32.0 + +[node name="Ball" 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 = 3.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 + +[node name="Sprite" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + + diff --git a/demos/2d/rubegoldberg/ball.xml b/demos/2d/rubegoldberg/ball.xml deleted file mode 100644 index 73b699514c..0000000000 --- a/demos/2d/rubegoldberg/ball.xml +++ /dev/null @@ -1,215 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://art/bowling_ball.png" type="Texture" index="0"></ext_resource> - <resource type="CircleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <real name="radius"> 32 </real> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="30"> - <string> "Ball" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "__meta__" </string> - <string> "RigidBody2D" </string> - <string> "Sprite" </string> - <string> "texture" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - </string_array> - <string> "node_count" </string> - <int> 3 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="73"> -1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 6, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 7, 20, 10, 21, 10, 22, 11, 0, 0, 0, 24, 24, -1, 1, 25, 12, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 13, 0 </int_array> - <string> "variants" </string> - <array len="14" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 0 </int> - <real> 3 </real> - <real> 1 </real> - <real> 0 </real> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -80.5995, -149.825 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.50734 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/box.tscn b/demos/2d/rubegoldberg/box.tscn new file mode 100644 index 0000000000..f9f0455c1f --- /dev/null +++ b/demos/2d/rubegoldberg/box.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://art/box.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 32, 32 ) + +[node name="box" 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 + +[node name="Sprite" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + + diff --git a/demos/2d/rubegoldberg/box.xml b/demos/2d/rubegoldberg/box.xml deleted file mode 100644 index c30d30e9f9..0000000000 --- a/demos/2d/rubegoldberg/box.xml +++ /dev/null @@ -1,214 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://art/box.png" type="Texture" index="0"></ext_resource> - <resource type="RectangleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2 name="extents"> 32, 32 </vector2> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="30"> - <string> "box" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "__meta__" </string> - <string> "RigidBody2D" </string> - <string> "Sprite" </string> - <string> "texture" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - </string_array> - <string> "node_count" </string> - <int> 3 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="73"> -1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 5, 10, 6, 11, 5, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 7, 18, 8, 19, 6, 20, 9, 21, 9, 22, 10, 0, 0, 0, 24, 24, -1, 1, 25, 11, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 12, 0 </int_array> - <string> "variants" </string> - <array len="13" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 0 </int> - <real> 1 </real> - <real> 0 </real> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -125, -163 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/domino.tscn b/demos/2d/rubegoldberg/domino.tscn new file mode 100644 index 0000000000..3b2dc134dc --- /dev/null +++ b/demos/2d/rubegoldberg/domino.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://art/domino.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 16, 64 ) + +[node name="domino" 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 = 0.5 +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 + +[node name="Sprite" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + + diff --git a/demos/2d/rubegoldberg/domino.xml b/demos/2d/rubegoldberg/domino.xml deleted file mode 100644 index ec86c833df..0000000000 --- a/demos/2d/rubegoldberg/domino.xml +++ /dev/null @@ -1,215 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://art/domino.png" type="Texture" index="0"></ext_resource> - <resource type="RectangleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2 name="extents"> 16, 64 </vector2> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="30"> - <string> "domino" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "__meta__" </string> - <string> "RigidBody2D" </string> - <string> "Sprite" </string> - <string> "texture" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - </string_array> - <string> "node_count" </string> - <int> 3 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="73"> -1, -1, 23, 0, -1, 22, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 7, 11, 5, 12, 0, 13, 4, 14, 4, 15, 0, 16, 0, 17, 8, 18, 9, 19, 7, 20, 10, 21, 10, 22, 11, 0, 0, 0, 24, 24, -1, 1, 25, 12, 0, 0, 0, 26, 26, -1, 3, 27, 1, 28, 0, 29, 13, 0 </int_array> - <string> "variants" </string> - <array len="14" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 0 </int> - <real> 1 </real> - <real> 0.5 </real> - <real> 0 </real> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -135, -114 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/engine.cfg b/demos/2d/rubegoldberg/engine.cfg index bd1cc79ddb..1f746c136d 100644 --- a/demos/2d/rubegoldberg/engine.cfg +++ b/demos/2d/rubegoldberg/engine.cfg @@ -1,7 +1,7 @@ [application] name="Rube Goldberg" -main_scene="res://rubegoldberg.xml" +main_scene="res://rubegoldberg.tscn" icon="res://icon.png" [physics_2d] diff --git a/demos/2d/rubegoldberg/pendulum.tscn b/demos/2d/rubegoldberg/pendulum.tscn new file mode 100644 index 0000000000..b9e1bcd1f9 --- /dev/null +++ b/demos/2d/rubegoldberg/pendulum.tscn @@ -0,0 +1,248 @@ +[gd_scene load_steps=5 format=1] + +[ext_resource path="res://art/box.png" type="Texture" id=1] +[ext_resource path="res://art/bowling_ball.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 3, 12 ) + +[sub_resource type="CircleShape2D" id=2] + +custom_solver_bias = 0.0 +radius = 16.0 + +[node name="pendulum" type="Node2D"] + +[node name="union_0" type="RigidBody2D" parent="."] + +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 = 0.2 +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 +__meta__ = { "_edit_group_":true } + +[node name="Sprite" type="Sprite" parent="union_0"] + +transform/scale = Vector2( 0.1, 0.4 ) +texture = ExtResource( 1 ) + +[node name="collision" type="CollisionShape2D" parent="union_0"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="union_ 2" type="RigidBody2D" parent="."] + +transform/pos = Vector2( 0, 26.9432 ) +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 = 0.2 +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 +__meta__ = { "_edit_group_":true } + +[node name="Sprite" type="Sprite" parent="union_ 2"] + +transform/scale = Vector2( 0.1, 0.4 ) +texture = ExtResource( 1 ) + +[node name="collision" type="CollisionShape2D" parent="union_ 2"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="union_ 3" type="RigidBody2D" parent="."] + +transform/pos = Vector2( 0, 53.8863 ) +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 = 0.2 +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 +__meta__ = { "_edit_group_":true } + +[node name="Sprite" type="Sprite" parent="union_ 3"] + +transform/scale = Vector2( 0.1, 0.4 ) +texture = ExtResource( 1 ) + +[node name="collision" type="CollisionShape2D" parent="union_ 3"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="union_ 4" type="RigidBody2D" parent="."] + +transform/pos = Vector2( 0, 81.4282 ) +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 = 0.2 +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 +__meta__ = { "_edit_group_":true } + +[node name="Sprite" type="Sprite" parent="union_ 4"] + +transform/scale = Vector2( 0.1, 0.4 ) +texture = ExtResource( 1 ) + +[node name="collision" type="CollisionShape2D" parent="union_ 4"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="joint1" type="PinJoint2D" parent="."] + +transform/pos = Vector2( 0, 13.771 ) +node_a = NodePath("../union_0") +node_b = NodePath("../union_ 2") +bias/bias = 0.0 +collision/exclude_nodes = true +softness = 0.0 + +[node name="joint 2_3" type="PinJoint2D" parent="."] + +transform/pos = Vector2( 0, 40.7141 ) +node_a = NodePath("../union_ 2") +node_b = NodePath("../union_ 3") +bias/bias = 0.0 +collision/exclude_nodes = true +softness = 0.0 + +[node name="joint 3_4" type="PinJoint2D" parent="."] + +transform/pos = Vector2( 0, 67.6573 ) +node_a = NodePath("../union_ 3") +node_b = NodePath("../union_ 4") +bias/bias = 0.2 +collision/exclude_nodes = true +softness = 0.0 + +[node name="ball" type="RigidBody2D" parent="."] + +transform/pos = Vector2( 0, 106.787 ) +transform/scale = Vector2( 0.98476, 1 ) +input/pickable = false +shapes/0/shape = SubResource( 2 ) +shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 ) +shapes/0/trigger = false +collision/layers = 1 +collision/mask = 1 +mode = 0 +mass = 0.2 +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 +__meta__ = { "_edit_group_":true } + +[node name="Sprite" type="Sprite" parent="ball"] + +transform/scale = Vector2( 0.5, 0.5 ) +texture = ExtResource( 2 ) + +[node name="collision" type="CollisionShape2D" parent="ball"] + +shape = SubResource( 2 ) +trigger = false +_update_shape_index = -1 + +[node name="joint 4_ball" type="PinJoint2D" parent="."] + +transform/pos = Vector2( 0, 92.5287 ) +node_a = NodePath("../union_ 4") +node_b = NodePath("../ball") +bias/bias = 0.0 +collision/exclude_nodes = true +softness = 0.0 + +[node name="joint wall" type="PinJoint2D" parent="."] + +transform/pos = Vector2( 0, -12.1024 ) +node_a = NodePath("../union_0") +node_b = NodePath("") +bias/bias = 0.0 +collision/exclude_nodes = true +softness = 0.0 + + diff --git a/demos/2d/rubegoldberg/pendulum.xml b/demos/2d/rubegoldberg/pendulum.xml deleted file mode 100644 index 90ad45f287..0000000000 --- a/demos/2d/rubegoldberg/pendulum.xml +++ /dev/null @@ -1,269 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="5" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://art/bowling_ball.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://art/box.png" type="Texture" index="0"></ext_resource> - <resource type="RectangleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2 name="extents"> 3, 12 </vector2> - - </resource> - <resource type="CircleShape2D" path="local://2"> - <real name="custom_solver_bias"> 0 </real> - <real name="radius"> 16 </real> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="49"> - <string> "pendulum" </string> - <string> "__meta__" </string> - <string> "Node2D" </string> - <string> "union_0" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "RigidBody2D" </string> - <string> "Sprite" </string> - <string> "transform/scale" </string> - <string> "texture" </string> - <string> "collision" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - <string> "CollisionShape2D" </string> - <string> "union_ 2" </string> - <string> "transform/pos" </string> - <string> "union_ 3" </string> - <string> "union_ 4" </string> - <string> "joint1" </string> - <string> "node_a" </string> - <string> "node_b" </string> - <string> "bias/bias" </string> - <string> "softness" </string> - <string> "PinJoint2D" </string> - <string> "joint 2_3" </string> - <string> "joint 3_4" </string> - <string> "ball" </string> - <string> "joint 4_ball" </string> - <string> "joint wall" </string> - </string_array> - <string> "node_count" </string> - <int> 21 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="479"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 25, 3, -1, 22, 4, 1, 5, 2, 6, 3, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 12, 0, 1, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 1, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 25, 34, -1, 23, 35, 16, 4, 1, 5, 2, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 4, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 4, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 25, 36, -1, 23, 35, 19, 4, 1, 5, 2, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 7, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 7, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 25, 37, -1, 23, 35, 20, 4, 1, 5, 2, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 10, 0, 26, 26, -1, 2, 27, 13, 28, 14, 0, 10, 0, 33, 29, -1, 3, 30, 2, 31, 1, 32, 15, 0, 0, 0, 43, 38, -1, 5, 35, 21, 39, 22, 40, 23, 41, 8, 42, 8, 0, 0, 0, 43, 44, -1, 5, 35, 24, 39, 23, 40, 25, 41, 8, 42, 8, 0, 0, 0, 43, 45, -1, 5, 35, 26, 39, 25, 40, 27, 41, 6, 42, 8, 0, 0, 0, 25, 46, -1, 24, 35, 28, 27, 29, 4, 1, 5, 30, 6, 17, 7, 1, 8, 4, 9, 4, 10, 5, 11, 6, 12, 7, 13, 8, 14, 7, 15, 1, 16, 5, 17, 5, 18, 1, 19, 1, 20, 9, 21, 10, 22, 8, 23, 11, 24, 11, 1, 18, 0, 16, 0, 26, 26, -1, 2, 27, 31, 28, 32, 0, 16, 0, 33, 29, -1, 3, 30, 30, 31, 1, 32, 15, 0, 0, 0, 43, 47, -1, 5, 35, 33, 39, 27, 40, 34, 41, 8, 42, 8, 0, 0, 0, 43, 48, -1, 5, 35, 35, 39, 22, 40, 36, 41, 8, 42, 8, 0 </int_array> - <string> "variants" </string> - <array len="37" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -121.028, 0.923909 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 2.78951 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <int> 0 </int> - <real> 0.2 </real> - <real> 1 </real> - <real> 0 </real> - <bool> True </bool> - <vector2> 0, 0 </vector2> - <real> -1 </real> - <dictionary shared="false"> - <string> "_edit_group_" </string> - <bool> True </bool> - </dictionary> - <vector2> 0.1, 0.4 </vector2> - <resource external="0"> </resource> - <int> -1 </int> - <vector2> 0, 26.9432 </vector2> - <matrix32> 1, -0, 0, 1, 0, 0 </matrix32> - <dictionary shared="false"> - <string> "_edit_group_" </string> - <bool> True </bool> - </dictionary> - <vector2> 0, 53.8863 </vector2> - <vector2> 0, 81.4282 </vector2> - <vector2> 0, 13.771 </vector2> - <node_path> "../union_0" </node_path> - <node_path> "../union_ 2" </node_path> - <vector2> 0, 40.7141 </vector2> - <node_path> "../union_ 3" </node_path> - <vector2> 0, 67.6573 </vector2> - <node_path> "../union_ 4" </node_path> - <vector2> 0, 106.787 </vector2> - <vector2> 0.98476, 1 </vector2> - <resource resource_type="Shape2D" path="local://2"> </resource> - <vector2> 0.5, 0.5 </vector2> - <resource external="1"> </resource> - <vector2> 0, 92.5287 </vector2> - <node_path> "../ball" </node_path> - <vector2> 0, -12.1024 </vector2> - <node_path> "" </node_path> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/platform.tscn b/demos/2d/rubegoldberg/platform.tscn new file mode 100644 index 0000000000..70584ca75c --- /dev/null +++ b/demos/2d/rubegoldberg/platform.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://art/platform.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 128, 16 ) + +[node name="platform" type="StaticBody2D"] + +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="Sprite" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + + diff --git a/demos/2d/rubegoldberg/platform.xml b/demos/2d/rubegoldberg/platform.xml deleted file mode 100644 index 09cd0fdda6..0000000000 --- a/demos/2d/rubegoldberg/platform.xml +++ /dev/null @@ -1,200 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="3" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://art/platform.png" type="Texture" index="0"></ext_resource> - <resource type="RectangleShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2 name="extents"> 128, 16 </vector2> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="19"> - <string> "platform" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "constant_linear_velocity" </string> - <string> "constant_angular_velocity" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "__meta__" </string> - <string> "StaticBody2D" </string> - <string> "Sprite" </string> - <string> "texture" </string> - <string> "CollisionShape2D" </string> - <string> "shape" </string> - <string> "trigger" </string> - <string> "_update_shape_index" </string> - </string_array> - <string> "node_count" </string> - <int> 3 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="51"> -1, -1, 12, 0, -1, 11, 1, 0, 2, 1, 3, 2, 4, 0, 5, 3, 6, 3, 7, 4, 8, 5, 9, 6, 10, 5, 11, 7, 0, 0, 0, 13, 13, -1, 1, 14, 8, 0, 0, 0, 15, 15, -1, 3, 16, 1, 17, 0, 18, 9, 0 </int_array> - <string> "variants" </string> - <array len="10" shared="false"> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <vector2> 0, 0 </vector2> - <real> 0 </real> - <real> 1 </real> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -135, -114 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/rubegoldberg.tscn b/demos/2d/rubegoldberg/rubegoldberg.tscn new file mode 100644 index 0000000000..995901d4ae --- /dev/null +++ b/demos/2d/rubegoldberg/rubegoldberg.tscn @@ -0,0 +1,98 @@ +[gd_scene load_steps=7 format=1] + +[ext_resource path="res://platform.tscn" type="PackedScene" id=1] +[ext_resource path="res://ball.tscn" type="PackedScene" id=2] +[ext_resource path="res://domino.tscn" type="PackedScene" id=3] +[ext_resource path="res://seesaw.tscn" type="PackedScene" id=4] +[ext_resource path="res://box.tscn" type="PackedScene" id=5] +[ext_resource path="res://pendulum.tscn" type="PackedScene" id=6] + +[node name="Node" type="Node"] + +[node name="platform" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 116.881, 145.589 ) +transform/rot = -20.8796 + +[node name="platform 2" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 336.29, 264.52 ) + +[node name="platform 3" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 526.99, 264.52 ) + +[node name="Ball" parent="." instance=ExtResource( 2 )] + +transform/pos = Vector2( 76.0801, 67.2141 ) + +[node name="domino" parent="." instance=ExtResource( 3 )] + +transform/pos = Vector2( 262.764, 182.008 ) + +[node name="domino 2" parent="." instance=ExtResource( 3 )] + +transform/pos = Vector2( 356.951, 182.008 ) + +[node name="domino 4" parent="." instance=ExtResource( 3 )] + +transform/pos = Vector2( 448.834, 179.291 ) + +[node name="platform 4" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 772.686, 345.917 ) +transform/rot = 76.7716 + +[node name="platform 5" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 640.041, 335.365 ) +transform/rot = 90.0 +transform/scale = Vector2( 0.5, 1 ) + +[node name="Ball 2" parent="." instance=ExtResource( 2 )] + +transform/pos = Vector2( 616.342, 214.247 ) + +[node name="platform 6" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 679.231, 588.598 ) + +[node name="platform 7" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 424.491, 588.598 ) + +[node name="platform 8" parent="." instance=ExtResource( 1 )] + +transform/pos = Vector2( 185.655, 588.598 ) + +[node name="SeeSaw" parent="." instance=ExtResource( 4 )] + +transform/pos = Vector2( 602.935, 554.501 ) + +[node name="box" parent="." instance=ExtResource( 5 )] + +transform/pos = Vector2( 476.002, 509.406 ) +transform/rot = 21.7373 + +[node name="pendulum" parent="." instance=ExtResource( 6 )] + +transform/pos = Vector2( 391.607, 305.444 ) + +[node name="pendulum 2" parent="." instance=ExtResource( 6 )] + +transform/pos = Vector2( 343.172, 303.774 ) + +[node name="pendulum 3" parent="." instance=ExtResource( 6 )] + +transform/pos = Vector2( 288.056, 303.774 ) + +[node name="pendulum 4" parent="." instance=ExtResource( 6 )] + +transform/pos = Vector2( 236.28, 303.774 ) + +[node name="Ball 5" parent="." instance=ExtResource( 2 )] + +transform/pos = Vector2( 116.165, 526.515 ) +velocity/linear = Vector2( 0, -200 ) + + diff --git a/demos/2d/rubegoldberg/rubegoldberg.xml b/demos/2d/rubegoldberg/rubegoldberg.xml deleted file mode 100644 index 490b0f9d34..0000000000 --- a/demos/2d/rubegoldberg/rubegoldberg.xml +++ /dev/null @@ -1,241 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="7" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://platform.xml" type="PackedScene" index="0"></ext_resource> - <ext_resource path="res://seesaw.xml" type="PackedScene" index="3"></ext_resource> - <ext_resource path="res://pendulum.xml" type="PackedScene" index="5"></ext_resource> - <ext_resource path="res://box.xml" type="PackedScene" index="4"></ext_resource> - <ext_resource path="res://ball.xml" type="PackedScene" index="1"></ext_resource> - <ext_resource path="res://domino.xml" type="PackedScene" index="2"></ext_resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="33"> - <string> "Node" </string> - <string> "__meta__" </string> - <string> "platform" </string> - <string> "transform/pos" </string> - <string> "transform/rot" </string> - <string> "input/pickable" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "platform 2" </string> - <string> "platform 3" </string> - <string> "Ball" </string> - <string> "gravity_scale" </string> - <string> "sleeping" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "domino" </string> - <string> "domino 2" </string> - <string> "domino 4" </string> - <string> "platform 4" </string> - <string> "platform 5" </string> - <string> "transform/scale" </string> - <string> "Ball 2" </string> - <string> "platform 6" </string> - <string> "platform 7" </string> - <string> "platform 8" </string> - <string> "SeeSaw" </string> - <string> "box" </string> - <string> "pendulum" </string> - <string> "pendulum 2" </string> - <string> "pendulum 3" </string> - <string> "pendulum 4" </string> - <string> "Ball 5" </string> - <string> "velocity/linear" </string> - </string_array> - <string> "node_count" </string> - <int> 21 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="347"> -1, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, 2147483647, 2, 1, 5, 3, 2, 4, 3, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 8, 1, 4, 3, 6, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 9, 1, 4, 3, 7, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 10, 8, 8, 3, 9, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 15, 12, 8, 3, 13, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 16, 12, 8, 3, 14, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 17, 12, 8, 3, 15, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 18, 1, 5, 3, 16, 4, 17, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 19, 1, 6, 3, 18, 4, 19, 20, 20, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 21, 8, 8, 3, 21, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 22, 1, 4, 3, 22, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 23, 1, 4, 3, 23, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 24, 1, 4, 3, 24, 5, 4, 6, 5, 7, 5, 0, 0, 0, 2147483647, 25, 25, 1, 3, 26, 0, 0, 0, 2147483647, 26, 27, 9, 3, 28, 4, 29, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 13, 11, 14, 11, 0, 0, 0, 2147483647, 27, 30, 1, 3, 31, 0, 0, 0, 2147483647, 28, 30, 1, 3, 32, 0, 0, 0, 2147483647, 29, 30, 1, 3, 33, 0, 0, 0, 2147483647, 30, 30, 1, 3, 34, 0, 0, 0, 2147483647, 31, 8, 9, 3, 35, 5, 4, 6, 5, 7, 5, 11, 10, 12, 4, 32, 36, 13, 11, 14, 11, 0 </int_array> - <string> "variants" </string> - <array len="37" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -717.096, -249.162 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 0.598737 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <vector2> 116.881, 145.589 </vector2> - <real> -20.87962 </real> - <bool> False </bool> - <int> 1 </int> - <vector2> 336.29, 264.52 </vector2> - <vector2> 526.99, 264.52 </vector2> - <resource external="1"> </resource> - <vector2> 76.0801, 67.2141 </vector2> - <real> 1 </real> - <real> -1 </real> - <resource external="2"> </resource> - <vector2> 262.764, 182.008 </vector2> - <vector2> 356.951, 182.008 </vector2> - <vector2> 448.834, 179.291 </vector2> - <vector2> 772.686, 345.917 </vector2> - <real> 76.771606 </real> - <vector2> 640.041, 335.365 </vector2> - <real> 90 </real> - <vector2> 0.5, 1 </vector2> - <vector2> 616.342, 214.247 </vector2> - <vector2> 679.231, 588.598 </vector2> - <vector2> 424.491, 588.598 </vector2> - <vector2> 185.655, 588.598 </vector2> - <resource external="3"> </resource> - <vector2> 602.935, 554.501 </vector2> - <resource external="4"> </resource> - <vector2> 476.002, 509.406 </vector2> - <real> 21.737282 </real> - <resource external="5"> </resource> - <vector2> 391.607, 305.444 </vector2> - <vector2> 343.172, 303.774 </vector2> - <vector2> 288.056, 303.774 </vector2> - <vector2> 236.28, 303.774 </vector2> - <vector2> 116.165, 526.515 </vector2> - <vector2> 0, -200 </vector2> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/rubegoldberg/seesaw.tscn b/demos/2d/rubegoldberg/seesaw.tscn new file mode 100644 index 0000000000..3b915d3e7f --- /dev/null +++ b/demos/2d/rubegoldberg/seesaw.tscn @@ -0,0 +1,89 @@ +[gd_scene load_steps=5 format=1] + +[ext_resource path="res://art/seesaw_base.png" type="Texture" id=1] +[ext_resource path="res://art/seesaw_top.png" type="Texture" id=2] + +[sub_resource type="ConcavePolygonShape2D" id=1] + +custom_solver_bias = 0.0 +segments = Vector2Array( -32.6231, 32.0838, -1.28218, -31.1383, -1.28218, -31.1383, 33.8412, 33.1645, 33.8412, 33.1645, -32.6231, 32.0838 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] + +custom_solver_bias = 0.0 +points = Vector2Array( -99.0874, 7.76759, -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723 ) + +[node name="SeeSaw" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="StaticBody2D" type="StaticBody2D" parent="Sprite"] + +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="Sprite/StaticBody2D"] + +build_mode = 0 +polygon = Vector2Array( -32.6231, 32.0838, -1.28218, -31.1383, 33.8412, 33.1645 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="RigidBody2D" type="RigidBody2D" parent="."] + +transform/pos = Vector2( 1.19748, -29.9368 ) +transform/rot = 16.2233 +input/pickable = false +shapes/0/shape = SubResource( 2 ) +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 + +[node name="Sprite" type="Sprite" parent="RigidBody2D"] + +transform/scale = Vector2( 1, 0.5 ) +texture = ExtResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="RigidBody2D"] + +build_mode = 0 +polygon = Vector2Array( -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723, -99.0874, 7.76759 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="PinJoint2D" type="PinJoint2D" parent="."] + +transform/pos = Vector2( 0, -31.1343 ) +node_a = NodePath("../RigidBody2D") +node_b = NodePath("../Sprite/StaticBody2D") +bias/bias = 0.0 +collision/exclude_nodes = true +softness = 0.0 + + diff --git a/demos/2d/rubegoldberg/seesaw.xml b/demos/2d/rubegoldberg/seesaw.xml deleted file mode 100644 index 281e4e7c0d..0000000000 --- a/demos/2d/rubegoldberg/seesaw.xml +++ /dev/null @@ -1,243 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="5" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://art/seesaw_top.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://art/seesaw_base.png" type="Texture" index="0"></ext_resource> - <resource type="ConcavePolygonShape2D" path="local://1"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="segments" len="6"> -32.6231, 32.0838, -1.28218, -31.1383, -1.28218, -31.1383, 33.8412, 33.1645, 33.8412, 33.1645, -32.6231, 32.0838 </vector2_array> - - </resource> - <resource type="ConvexPolygonShape2D" path="local://2"> - <real name="custom_solver_bias"> 0 </real> - <vector2_array name="points" len="4"> -99.0874, 7.76759, -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723 </vector2_array> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="43"> - <string> "SeeSaw" </string> - <string> "__meta__" </string> - <string> "Node2D" </string> - <string> "Sprite" </string> - <string> "texture" </string> - <string> "StaticBody2D" </string> - <string> "input/pickable" </string> - <string> "shapes/0/shape" </string> - <string> "shapes/0/transform" </string> - <string> "shapes/0/trigger" </string> - <string> "collision/layers" </string> - <string> "collision/mask" </string> - <string> "constant_linear_velocity" </string> - <string> "constant_angular_velocity" </string> - <string> "friction" </string> - <string> "bounce" </string> - <string> "CollisionPolygon2D" </string> - <string> "build_mode" </string> - <string> "polygon" </string> - <string> "shape_range" </string> - <string> "trigger" </string> - <string> "RigidBody2D" </string> - <string> "transform/pos" </string> - <string> "transform/rot" </string> - <string> "mode" </string> - <string> "mass" </string> - <string> "gravity_scale" </string> - <string> "custom_integrator" </string> - <string> "continuous_cd" </string> - <string> "contacts_reported" </string> - <string> "contact_monitor" </string> - <string> "sleeping" </string> - <string> "can_sleep" </string> - <string> "velocity/linear" </string> - <string> "velocity/angular" </string> - <string> "damp_override/linear" </string> - <string> "damp_override/angular" </string> - <string> "transform/scale" </string> - <string> "PinJoint2D" </string> - <string> "node_a" </string> - <string> "node_b" </string> - <string> "bias/bias" </string> - <string> "softness" </string> - </string_array> - <string> "node_count" </string> - <int> 8 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="156"> -1, -1, 2, 0, -1, 1, 1, 0, 0, 0, 0, 3, 3, -1, 1, 4, 1, 0, 1, 0, 5, 5, -1, 10, 6, 2, 7, 3, 8, 4, 9, 2, 10, 5, 11, 5, 12, 6, 13, 7, 14, 8, 15, 7, 0, 2, 0, 16, 16, -1, 4, 17, 9, 18, 10, 19, 11, 20, 2, 0, 0, 0, 21, 21, -1, 23, 22, 12, 23, 13, 6, 2, 7, 14, 8, 4, 9, 2, 10, 5, 11, 5, 24, 9, 25, 8, 14, 8, 15, 7, 26, 8, 27, 2, 28, 9, 29, 9, 30, 2, 31, 2, 32, 15, 33, 6, 34, 7, 35, 16, 36, 16, 0, 4, 0, 3, 3, -1, 2, 37, 17, 4, 18, 0, 4, 0, 16, 16, -1, 4, 17, 9, 18, 19, 19, 11, 20, 2, 0, 0, 0, 38, 38, -1, 5, 22, 20, 39, 21, 40, 22, 41, 7, 42, 7, 0 </int_array> - <string> "variants" </string> - <array len="23" shared="false"> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -277.779, -292.484 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.670183 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <bool> False </bool> - <resource resource_type="Shape2D" path="local://1"> </resource> - <matrix32> 1, 0, 0, 1, 0, 0 </matrix32> - <int> 1 </int> - <vector2> 0, 0 </vector2> - <real> 0 </real> - <real> 1 </real> - <int> 0 </int> - <vector2_array len="3"> -32.6231, 32.0838, -1.28218, -31.1383, 33.8412, 33.1645 </vector2_array> - <vector2> -1, -1 </vector2> - <vector2> 1.19748, -29.9368 </vector2> - <real> 16.223282 </real> - <resource resource_type="Shape2D" path="local://2"> </resource> - <bool> True </bool> - <real> -1 </real> - <vector2> 1, 0.5 </vector2> - <resource external="1"> </resource> - <vector2_array len="4"> -125.025, -8.98358, 125.162, -8.44321, 99.2248, 7.22723, -99.0874, 7.76759 </vector2_array> - <vector2> 0, -31.1343 </vector2> - <node_path> "../RigidBody2D" </node_path> - <node_path> "../Sprite/StaticBody2D" </node_path> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/screen_space_shaders/engine.cfg b/demos/2d/screen_space_shaders/engine.cfg index f7caa7abbc..9a74e7b7bd 100644 --- a/demos/2d/screen_space_shaders/engine.cfg +++ b/demos/2d/screen_space_shaders/engine.cfg @@ -1,7 +1,7 @@ [application] name="Screen-Space Shaders" -main_scene="res://screen_shaders.scn" +main_scene="res://screen_shaders.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/screen_space_shaders/screen_shaders.scn b/demos/2d/screen_space_shaders/screen_shaders.scn Binary files differdeleted file mode 100644 index 00c7fe8eba..0000000000 --- a/demos/2d/screen_space_shaders/screen_shaders.scn +++ /dev/null diff --git a/demos/2d/screen_space_shaders/screen_shaders.tscn b/demos/2d/screen_space_shaders/screen_shaders.tscn new file mode 100644 index 0000000000..98a3224696 --- /dev/null +++ b/demos/2d/screen_space_shaders/screen_shaders.tscn @@ -0,0 +1,512 @@ +[gd_scene load_steps=34 format=1] + +[ext_resource path="res://screen_shaders.gd" type="Script" id=1] +[ext_resource path="res://art/burano.jpg" type="Texture" id=2] +[ext_resource path="res://art/platformer.jpg" type="Texture" id=3] +[ext_resource path="res://art/mountains.jpg" type="Texture" id=4] +[ext_resource path="res://art/forest.jpg" type="Texture" id=5] +[ext_resource path="res://art/vignette.png" type="Texture" id=6] +[ext_resource path="res://art/white.png" type="Texture" id=7] +[ext_resource path="res://art/filmgrain.png" type="Texture" id=8] + +[sub_resource type="CanvasItemShader" id=1] + +_code = { "fragment":"uniform texture vignette;\n\nCOLOR.rgb = texscreen(SCREEN_UV);\nCOLOR.rgb*= tex(vignette,UV).rgb;\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=2] + +shader/shader = SubResource( 1 ) +shader/shading_mode = 0 +shader_param/vignette = ExtResource( 6 ) + +[sub_resource type="CanvasItemShader" id=3] + +_code = { "fragment":"uniform texture vignette;\nfloat radius = 0.003;\nvec3 col = vec3(0);\n\ncol+= texscreen(SCREEN_UV+vec2(-radius,-radius));\ncol+= texscreen(SCREEN_UV+vec2(0,-radius));\ncol+= texscreen(SCREEN_UV+vec2(radius,-radius));\n\ncol+= texscreen(SCREEN_UV+vec2(-radius,0));\ncol+= texscreen(SCREEN_UV+vec2(0,0));\ncol+= texscreen(SCREEN_UV+vec2(radius,0));\n\n\ncol+= texscreen(SCREEN_UV+vec2(-radius,radius));\ncol+= texscreen(SCREEN_UV+vec2(0,radius));\ncol+= texscreen(SCREEN_UV+vec2(radius,radius));\n\ncol/=9.0;\nCOLOR.rgb=col;\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=4] + +shader/shader = SubResource( 3 ) +shader/shading_mode = 0 +shader_param/vignette = ExtResource( 6 ) + +[sub_resource type="CanvasItemShader" id=5] + +_code = { "fragment":"uniform texture vignette;\nuniform float radius=0.005;\nuniform float etching=2.0;\nuniform float edge_darken=0.5;\n\nfloat d = length(UV-vec2(0.5,0.5))*etching;\nmat2 rot = mat2( vec2(cos(d),-sin(d)), vec2(sin(d),cos(d)) );\n\nvec3 col = vec3(0);\n\ncol+= texscreen(SCREEN_UV+rot*vec2(-radius,-radius));\ncol+= texscreen(SCREEN_UV+rot*vec2(0,-radius));\ncol+= texscreen(SCREEN_UV+rot*vec2(radius,-radius));\n\ncol+= texscreen(SCREEN_UV+rot*vec2(-radius,0));\nvec3 scol = texscreen(SCREEN_UV+vec2(0,0));\ncol+= scol;\ncol+= texscreen(SCREEN_UV+rot*vec2(radius,0));\n\n\ncol+= texscreen(SCREEN_UV+rot*vec2(-radius,radius));\ncol+= texscreen(SCREEN_UV+rot*vec2(0,radius));\ncol+= texscreen(SCREEN_UV+vec2(radius,radius));\n\ncol/=9.0;\nfloat v = tex(vignette,UV).r;\nCOLOR.rgb=mix(col,scol,v)*mix(1.0,v,edge_darken);\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=6] + +shader/shader = SubResource( 5 ) +shader/shading_mode = 0 +shader_param/vignette = ExtResource( 6 ) +shader_param/radius = 0.005 +shader_param/etching = 2.0 +shader_param/edge_darken = 0.5 + +[sub_resource type="CanvasItemMaterial" id=7] + +shader/shader = SubResource( 5 ) +shader/shading_mode = 0 +shader_param/vignette = ExtResource( 6 ) +shader_param/radius = 0.02 +shader_param/etching = 100.0 +shader_param/edge_darken = -0.5 + +[sub_resource type="CanvasItemShader" id=8] + +_code = { "fragment":"uniform float size_x=0.008;\nuniform float size_y=0.008;\n\nvec2 uv = SCREEN_UV;\nuv-=mod(uv,vec2(size_x,size_y));\n\nCOLOR.rgb= texscreen(uv);\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=9] + +shader/shader = SubResource( 8 ) +shader/shading_mode = 0 +shader_param/size_x = 0.01 +shader_param/size_y = 0.01 + +[sub_resource type="CanvasItemShader" id=10] + +_code = { "fragment":"uniform float rotation=3.0;\n\nvec2 uv = SCREEN_UV;\nvec2 rel = uv-vec2(0.5,0.5);\nfloat angle = length(rel)*rotation;\nmat2 rot = mat2(vec2(cos(angle),-sin(angle)),vec2(sin(angle),cos(angle)));\nrel = rot * rel;\nuv = clamp(rel + vec2(0.5,0.5),vec2(0,0),vec2(1,1));\nCOLOR.rgb= texscreen(uv);\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=11] + +shader/shader = SubResource( 10 ) +shader/shading_mode = 0 +shader_param/rotation = 3.0 + +[sub_resource type="CanvasItemShader" id=12] + +_code = { "fragment":"uniform color base=color(0.75,0.6,0.6,1.0);\nvec3 c = texscreen(SCREEN_UV);\n\n//float v = max(c.r,max(c.g,c.b));\nfloat v = dot(c,vec3(0.33333,0.33333,0.33333));\nv=sqrt(v);\n//v*=v;\nCOLOR.rgb= base.rgb*v;\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=13] + +shader/shader = SubResource( 12 ) +shader/shading_mode = 0 +shader_param/base = Color( 0.75, 0.566284, 0.6, 1 ) + +[sub_resource type="CanvasItemShader" id=14] + +_code = { "fragment":"vec3 c = texscreen(SCREEN_UV);\nc=vec3(1.0)-c;\nCOLOR.rgb=c;\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=15] + +shader/shader = SubResource( 14 ) +shader/shading_mode = 0 + +[sub_resource type="CanvasItemShader" id=16] + +_code = { "fragment":"vec3 c = texscreen(SCREEN_UV);\nc=mod(c+vec3(0.5),vec3(1.0));\nCOLOR.rgb=c;\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=17] + +shader/shader = SubResource( 16 ) +shader/shading_mode = 0 + +[sub_resource type="CanvasItemShader" id=18] + +_code = { "fragment":"vec3 c = texscreen(SCREEN_UV);\nCOLOR.rgb=normalize(c);\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=19] + +shader/shader = SubResource( 18 ) +shader/shading_mode = 0 + +[sub_resource type="CanvasItemShader" id=20] + +_code = { "fragment":"uniform float brightness=0.8;\nuniform float contrast=1.5;\nuniform float saturation=1.8;\n\nvec3 c = texscreen(SCREEN_UV);\n\nc.rgb = mix(vec3(0.0),c.rgb,brightness);\nc.rgb = mix(vec3(0.5),c.rgb,contrast);\nc.rgb = mix(vec3(dot(vec3(1.0),c.rgb)*0.33333),c.rgb,saturation);\n\nCOLOR.rgb=c;\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=21] + +shader/shader = SubResource( 20 ) +shader/shading_mode = 0 +shader_param/brightness = 0.8 +shader_param/contrast = 1.5 +shader_param/saturation = 1.8 + +[sub_resource type="CanvasItemShader" id=22] + +_code = { "fragment":"uniform float frequency=60;\nuniform float depth = 0.005;\n\nvec2 uv = SCREEN_UV;\nuv.x += sin(uv.y*frequency+TIME)*depth;\nuv.x = clamp(uv.x,0,1);\nvec3 c = texscreen(uv);\n\n\nCOLOR.rgb=c;\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=23] + +shader/shader = SubResource( 22 ) +shader/shading_mode = 0 +shader_param/frequency = 60.0 +shader_param/depth = 0.005 + +[sub_resource type="CanvasItemShader" id=24] + +_code = { "fragment":"uniform color base=color(0.75,0.6,0.6,1.0);\nuniform texture grain;\nuniform float grain_strength=0.3;\nuniform texture vignette;\nuniform float fps=12;\nuniform float stretch = 0.5;\nuniform float flashing=0.01;\n\nvec3 c = texscreen(SCREEN_UV);\n\n//float v = max(c.r,max(c.g,c.b));\nfloat v = dot(c,vec3(0.33333,0.33333,0.33333));\nv=sqrt(v);\n//v*=v;\nfloat make_grain(float time) {\n\n\tvec2 ofs = vec2(sin(41*time*sin(time*123)),sin(27*time*sin(time*312)));\n\treturn tex(grain,(UV+mod(ofs,vec2(1,1)))*stretch).r;\n}\n\nfloat f = 1.0/fps;\nfloat g = make_grain(TIME-mod(TIME,f));\ng=max(g,make_grain(TIME-mod(TIME,f)+f)*0.5);\ng=max(g,make_grain(TIME-mod(TIME,f)+f*2.0)*0.25);\n\n\nCOLOR.rgb= base.rgb*v-vec3(g)*grain_strength;\nCOLOR.rgb*=tex(vignette,UV).r;\nfloat ft = TIME * 0.002;\nCOLOR.rgb+=vec3(sin(75*ft*sin(ft*123)))*flashing;\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=25] + +shader/shader = SubResource( 24 ) +shader/shading_mode = 0 +shader_param/base = Color( 0.75, 0.566284, 0.6, 1 ) +shader_param/grain = ExtResource( 8 ) +shader_param/grain_strength = 0.3 +shader_param/vignette = ExtResource( 6 ) +shader_param/fps = 12.0 +shader_param/stretch = 0.5 +shader_param/flashing = 0.01 + +[node name="Control" 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 +script/script = ExtResource( 1 ) + +[node name="pictures" type="Control" parent="."] + +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="pictures"] + +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 = 40.0 +margin/bottom = 40.0 +texture = ExtResource( 2 ) + +[node name="roby" type="TextureFrame" parent="pictures"] + +visibility/visible = false +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 = 40.0 +margin/bottom = 40.0 +texture = ExtResource( 3 ) + +[node name="mountains" type="TextureFrame" parent="pictures"] + +visibility/visible = false +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 = 40.0 +margin/bottom = 40.0 +texture = ExtResource( 4 ) + +[node name="forest" type="TextureFrame" parent="pictures"] + +visibility/visible = false +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 = 40.0 +margin/bottom = 40.0 +texture = ExtResource( 5 ) + +[node name="effects" type="Control" parent="."] + +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 = -20.0 +margin/bottom = 0.0 + +[node name="disabled" type="Control" parent="effects"] + +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 = 40.0 +margin/bottom = 40.0 + +[node name="vignette" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 2 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="blur" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 4 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="radial_blur" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 6 ) +anchor/right = 1 +anchor/bottom = 1 +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = -1.0 +margin/top = 0.0 +margin/right = 1.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="radial_etch" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 7 ) +anchor/right = 1 +anchor/bottom = 1 +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = -1.0 +margin/top = 0.0 +margin/right = 1.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="pixelize" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 9 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="whirl" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 11 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="sepia" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 13 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="negative" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 15 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="contrasted" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 17 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="normalized" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 19 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="BCS" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 21 ) +anchor/right = 1 +anchor/bottom = 1 +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 0.0 +margin/top = 3.0 +margin/right = 0.0 +margin/bottom = -3.0 +texture = ExtResource( 7 ) +expand = true + +[node name="mirage" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 23 ) +anchor/right = 1 +anchor/bottom = 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 = 0.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="old_film" type="TextureFrame" parent="effects"] + +visibility/visible = false +material/material = SubResource( 25 ) +anchor/right = 1 +anchor/bottom = 1 +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = -3.0 +margin/top = 0.0 +margin/right = 3.0 +margin/bottom = 0.0 +texture = ExtResource( 7 ) +expand = true + +[node name="picture" type="OptionButton" parent="."] + +visibility/opacity = 0.8 +focus/ignore_mouse = false +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 8.0 +margin/top = 7.0 +margin/right = 131.0 +margin/bottom = 28.0 +toggle_mode = false +flat = false +align = 0 +selected = -1 +items = [ ] + +[node name="effect" type="OptionButton" parent="."] + +visibility/opacity = 0.8 +focus/ignore_mouse = false +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 137.0 +margin/top = 7.0 +margin/right = 260.0 +margin/bottom = 28.0 +toggle_mode = false +flat = false +align = 0 +selected = -1 +items = [ ] + +[connection signal="item_selected" from="picture" to="." method="_on_picture_item_selected"] + +[connection signal="item_selected" from="effect" to="." method="_on_effect_item_selected"] + + diff --git a/demos/2d/sdf_font/engine.cfg b/demos/2d/sdf_font/engine.cfg index bf983041fa..22f5e034cb 100644 --- a/demos/2d/sdf_font/engine.cfg +++ b/demos/2d/sdf_font/engine.cfg @@ -1,5 +1,5 @@ [application] name="Signed Distance Field Font" -main_scene="res://sdf.scn" +main_scene="res://sdf.tscn" icon="res://icon.png" diff --git a/demos/2d/sdf_font/sdf.scn b/demos/2d/sdf_font/sdf.scn Binary files differdeleted file mode 100644 index 4880500d6d..0000000000 --- a/demos/2d/sdf_font/sdf.scn +++ /dev/null diff --git a/demos/2d/sdf_font/sdf.tscn b/demos/2d/sdf_font/sdf.tscn new file mode 100644 index 0000000000..a3305c2edc --- /dev/null +++ b/demos/2d/sdf_font/sdf.tscn @@ -0,0 +1,74 @@ +[gd_scene load_steps=4 format=1] + +[ext_resource path="res://font.fnt" type="Font" id=1] + +[sub_resource type="Animation" id=1] + +resource/name = "zoomin_zoomout" +length = 10.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("base:transform/scale") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 0, 5 ), "transitions":FloatArray( -2, -2 ), "values":[ Vector2( 0.5, 0.5 ), Vector2( 20, 20 ) ] } + +[sub_resource type="Animation" id=2] + +length = 15.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("base:transform/rot") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 0, 15 ), "transitions":FloatArray( 1, 1 ), "values":[ 0.0, -360.0 ] } + +[node name="node" type="Node2D"] + +[node name="base" type="Position2D" parent="."] + +transform/pos = Vector2( 376.532, 275.119 ) +transform/scale = Vector2( 0.5, 0.5 ) + +[node name="Label" type="Label" parent="base"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = -132.0 +margin/top = -34.0 +margin/right = 124.0 +margin/bottom = 64.0 +custom_fonts/font = ExtResource( 1 ) +custom_colors/font_color = Color( 0.853858, 0.771714, 0.753746, 1 ) +custom_colors/font_color_shadow = Color( 0.56592, 0.454525, 0.518426, 1 ) +text = "Signed Distance\nField Font!!" +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="zoom" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/zoomin_zoomout = SubResource( 1 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "zoomin_zoomout" + +[node name="rotate" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/rotate = SubResource( 2 ) +anims/zoomin_zoomout = SubResource( 1 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "rotate" + + diff --git a/demos/2d/shower_of_bullets/engine.cfg b/demos/2d/shower_of_bullets/engine.cfg index cad5751985..8db2ae9006 100644 --- a/demos/2d/shower_of_bullets/engine.cfg +++ b/demos/2d/shower_of_bullets/engine.cfg @@ -1,7 +1,7 @@ [application] name="Bullet Shower" -main_scene="res://shower.scn" +main_scene="res://shower.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/shower_of_bullets/shower.scn b/demos/2d/shower_of_bullets/shower.scn Binary files differdeleted file mode 100644 index 9e2181e9c6..0000000000 --- a/demos/2d/shower_of_bullets/shower.scn +++ /dev/null diff --git a/demos/2d/shower_of_bullets/shower.tscn b/demos/2d/shower_of_bullets/shower.tscn new file mode 100644 index 0000000000..9df555f96a --- /dev/null +++ b/demos/2d/shower_of_bullets/shower.tscn @@ -0,0 +1,51 @@ +[gd_scene load_steps=7 format=1] + +[ext_resource path="res://shower.gd" type="Script" id=1] +[ext_resource path="res://bullets.gd" type="Script" id=2] +[ext_resource path="res://face_happy.png" type="Texture" id=3] +[ext_resource path="res://face_sad.png" type="Texture" id=4] + +[sub_resource type="CircleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 14.0 + +[sub_resource type="SpriteFrames" id=2] + +frames = [ ExtResource( 3 ), ExtResource( 4 ) ] + +[node name="shower" type="Node2D"] + +script/script = ExtResource( 1 ) + +[node name="bullets" type="Node2D" parent="."] + +script/script = ExtResource( 2 ) + +[node name="player" type="Area2D" parent="."] + +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 + +[node name="sprite" type="AnimatedSprite" parent="player"] + +transform/scale = Vector2( 0.5, 0.5 ) +frames = SubResource( 2 ) + +[node name="collision" type="CollisionShape2D" parent="player"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[connection signal="body_enter_shape" from="player" to="." method="_on_player_body_enter_shape"] + +[connection signal="body_exit_shape" from="player" to="." method="_on_player_body_exit_shape"] + + diff --git a/demos/2d/space_shooter/asteroid.scn b/demos/2d/space_shooter/asteroid.scn Binary files differdeleted file mode 100644 index 6bca98cd30..0000000000 --- a/demos/2d/space_shooter/asteroid.scn +++ /dev/null diff --git a/demos/2d/space_shooter/asteroid.tscn b/demos/2d/space_shooter/asteroid.tscn new file mode 100644 index 0000000000..ad57f6ef7c --- /dev/null +++ b/demos/2d/space_shooter/asteroid.tscn @@ -0,0 +1,129 @@ +[gd_scene load_steps=9 format=1] + +[ext_resource path="res://asteroid.gd" type="Script" id=1] +[ext_resource path="res://meteorite.png" type="Texture" id=2] +[ext_resource path="res://sound_explode.wav" type="Sample" id=3] + +[sub_resource type="CircleShape2D" id=1] + +custom_solver_bias = 0.0 +radius = 22.0 + +[sub_resource type="Animation" id=2] + +resource/name = "explode" +length = 1.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("particles:config/emitting") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } +tracks/1/type = "value" +tracks/1/path = NodePath("sprite:visibility/visible") +tracks/1/interp = 1 +tracks/1/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } +tracks/2/type = "method" +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/keys = { "times":FloatArray( 0.7 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } + +[sub_resource type="Animation" id=3] + +length = 3.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, 3 ), "transitions":FloatArray( 1, 1 ), "values":[ 0.0, 360.0 ] } + +[sub_resource type="ColorRamp" id=4] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 1, 1, 1, 1, 1, 1, 1, 0 ) + +[sub_resource type="SampleLibrary" id=5] + +samples/sound_explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 3 ) } + +[node name="asteroid" type="Area2D"] + +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="."] + +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( 2 ) +anims/spin = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[node name="collision" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="visibility" type="VisibilityNotifier2D" parent="."] + +rect = Rect2( -10, -10, 20, 20 ) + +[node name="particles" type="Particles2D" parent="."] + +config/amount = 32 +config/lifetime = 0.5 +config/emitting = false +config/half_extents = Vector2( 20, 20 ) +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 = 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.5 +params/final_size = 0.2 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 4 ) + +[node name="sfx" type="SamplePlayer2D" parent="."] + +params/volume_db = 0.0 +params/pitch_scale = 1.0 +params/attenuation/min_distance = 1.0 +params/attenuation/max_distance = 2048.0 +params/attenuation/distance_exp = 1.0 +config/polyphony = 1 +config/samples = SubResource( 5 ) +config/pitch_random = 0.0 + +[connection signal="enter_screen" from="visibility" to="." method="_on_visibility_enter_screen"] + +[connection signal="exit_screen" from="visibility" to="." method="_on_visibility_exit_screen"] + + diff --git a/demos/2d/space_shooter/enemy1.scn b/demos/2d/space_shooter/enemy1.scn Binary files differdeleted file mode 100644 index 805071b772..0000000000 --- a/demos/2d/space_shooter/enemy1.scn +++ /dev/null diff --git a/demos/2d/space_shooter/enemy1.tscn b/demos/2d/space_shooter/enemy1.tscn new file mode 100644 index 0000000000..5fd4435382 --- /dev/null +++ b/demos/2d/space_shooter/enemy1.tscn @@ -0,0 +1,108 @@ +[gd_scene load_steps=9 format=1] + +[ext_resource path="res://enemy1.gd" type="Script" id=1] +[ext_resource path="res://enemy1.png" type="Texture" id=2] +[ext_resource path="res://explosion.tscn" type="PackedScene" id=3] +[ext_resource path="res://sound_explode.wav" type="Sample" id=4] + +[sub_resource type="ConvexPolygonShape2D" id=1] + +custom_solver_bias = 0.0 +points = Vector2Array( -25.3272, 15.4072, -31.2711, -7.28794, -1.01097, -20.7969, 24.9263, -4.58614, 30.3299, 13.2457, -2.63205, 17.5686 ) + +[sub_resource type="Animation" id=2] + +length = 1.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:visibility/visible") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } +tracks/1/type = "value" +tracks/1/path = NodePath("explosion:config/emitting") +tracks/1/interp = 1 +tracks/1/keys = { "cont":false, "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } +tracks/2/type = "method" +tracks/2/path = NodePath("..") +tracks/2/interp = 1 +tracks/2/keys = { "times":FloatArray( 0.9 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } + +[sub_resource type="Animation" id=3] + +length = 2.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 ), "transitions":FloatArray( -1.86607, -1.86607 ), "values":[ Vector2( 0, -100 ), Vector2( 0, 100 ) ] } + +[sub_resource type="SampleLibrary" id=4] + +samples/sound_explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) } + +[node name="enemy1" type="Node2D"] + +[node name="area" type="Area2D" parent="."] + +transform/pos = Vector2( 0, -100 ) +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="collision" type="CollisionPolygon2D" parent="area"] + +build_mode = 0 +polygon = Vector2Array( -31.2711, -7.28794, -1.01097, -20.7969, 24.9263, -4.58614, 30.3299, 13.2457, -2.63205, 17.5686, -25.3272, 15.4072 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="sprite" type="Sprite" parent="area"] + +texture = ExtResource( 2 ) + +[node name="explosion" parent="area" instance=ExtResource( 3 )] + +transform/rot = -91.1436 +config/explosiveness = 0.1 +params/gravity_strength = 9.8 + +[node name="anim" type="AnimationPlayer" parent="area"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/explode = SubResource( 2 ) +anims/zigzag = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[node name="visibility" type="VisibilityNotifier2D" parent="area"] + +rect = Rect2( -10, -10, 20, 20 ) + +[node name="sfx" type="SamplePlayer2D" parent="area"] + +params/volume_db = 0.0 +params/pitch_scale = 1.0 +params/attenuation/min_distance = 1.0 +params/attenuation/max_distance = 2048.0 +params/attenuation/distance_exp = 1.0 +config/polyphony = 1 +config/samples = SubResource( 4 ) +config/pitch_random = 0.0 + +[connection signal="enter_screen" from="area/visibility" to="area" method="_on_visibility_enter_screen"] + +[connection signal="exit_screen" from="area/visibility" to="area" method="_on_visibility_exit_screen"] + + diff --git a/demos/2d/space_shooter/enemy2.gd b/demos/2d/space_shooter/enemy2.gd index bfdb743103..cd06579d74 100644 --- a/demos/2d/space_shooter/enemy2.gd +++ b/demos/2d/space_shooter/enemy2.gd @@ -17,7 +17,7 @@ func _process(delta): shoot_timeout = SHOOT_INTERVAL # Instance a shot - var shot = preload("res://enemy_shot.scn").instance() + var shot = preload("res://enemy_shot.tscn").instance() # Set pos as "shoot_from" Position2D node shot.set_pos(get_node("shoot_from").get_global_pos()) # Add it to parent, so it has world coordinates diff --git a/demos/2d/space_shooter/enemy2.scn b/demos/2d/space_shooter/enemy2.scn Binary files differdeleted file mode 100644 index 644add77aa..0000000000 --- a/demos/2d/space_shooter/enemy2.scn +++ /dev/null diff --git a/demos/2d/space_shooter/enemy2.tscn b/demos/2d/space_shooter/enemy2.tscn new file mode 100644 index 0000000000..56d9f49720 --- /dev/null +++ b/demos/2d/space_shooter/enemy2.tscn @@ -0,0 +1,98 @@ +[gd_scene load_steps=8 format=1] + +[ext_resource path="res://enemy2.gd" type="Script" id=1] +[ext_resource path="res://enemy2.png" type="Texture" id=2] +[ext_resource path="res://explosion.tscn" type="PackedScene" id=3] +[ext_resource path="res://sound_explode.wav" type="Sample" id=4] + +[sub_resource type="ConvexPolygonShape2D" id=1] + +custom_solver_bias = 0.0 +points = Vector2Array( -31.9306, -11.1163, 15.748, -16.1351, 32.2383, -3.94662, 25.7856, 13.6192, -20.4591, 16.1286 ) + +[sub_resource type="Animation" id=2] + +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.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } +tracks/1/type = "value" +tracks/1/path = NodePath("sprite:visibility/visible") +tracks/1/interp = 1 +tracks/1/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } +tracks/2/type = "method" +tracks/2/path = NodePath(".") +tracks/2/interp = 1 +tracks/2/keys = { "times":FloatArray( 0.9 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } + +[sub_resource type="SampleLibrary" id=3] + +samples/sound_explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 4 ) } + +[node name="enemy2" type="Area2D"] + +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="collision" type="CollisionPolygon2D" parent="."] + +build_mode = 0 +polygon = Vector2Array( -31.9306, -11.1163, 15.748, -16.1351, 32.2383, -3.94662, 25.7856, 13.6192, -20.4591, 16.1286 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="sprite" type="Sprite" parent="."] + +texture = ExtResource( 2 ) + +[node name="explosion" parent="." instance=ExtResource( 3 )] + +transform/rot = -91.1436 +config/explosiveness = 0.1 +params/gravity_strength = 9.8 + +[node name="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/explode = SubResource( 2 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[node name="visibility" type="VisibilityNotifier2D" parent="."] + +rect = Rect2( -10, -10, 20, 20 ) + +[node name="sfx" type="SamplePlayer2D" parent="."] + +params/volume_db = 0.0 +params/pitch_scale = 1.0 +params/attenuation/min_distance = 1.0 +params/attenuation/max_distance = 2048.0 +params/attenuation/distance_exp = 1.0 +config/polyphony = 1 +config/samples = SubResource( 3 ) +config/pitch_random = 0.0 + +[node name="shoot_from" type="Position2D" parent="."] + +transform/pos = Vector2( -84.6027, 0.358482 ) + +[connection signal="enter_screen" from="visibility" to="." method="_on_visibility_enter_screen"] + +[connection signal="exit_screen" from="visibility" to="." method="_on_visibility_exit_screen"] + + diff --git a/demos/2d/space_shooter/enemy_shot.scn b/demos/2d/space_shooter/enemy_shot.scn Binary files differdeleted file mode 100644 index 353c9058f7..0000000000 --- a/demos/2d/space_shooter/enemy_shot.scn +++ /dev/null diff --git a/demos/2d/space_shooter/enemy_shot.tscn b/demos/2d/space_shooter/enemy_shot.tscn new file mode 100644 index 0000000000..da6ed6f806 --- /dev/null +++ b/demos/2d/space_shooter/enemy_shot.tscn @@ -0,0 +1,99 @@ +[gd_scene load_steps=6 format=1] + +[ext_resource path="res://enemy_shot.gd" type="Script" id=1] +[ext_resource path="res://enemy_shot.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 10, 4 ) + +[sub_resource type="ColorRamp" id=2] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 1, 0.0491249, 0.0113636, 1, 1, 1, 1, 0 ) + +[sub_resource type="Animation" id=3] + +length = 1.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("hit_splash:config/emitting") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/keys = { "times":FloatArray( 0.9 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } +tracks/2/type = "value" +tracks/2/path = NodePath("sprite:visibility/visible") +tracks/2/interp = 1 +tracks/2/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } + +[node name="enemy_shot" type="Area2D"] + +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="visibility" type="VisibilityNotifier2D" parent="."] + +transform/pos = Vector2( 1.8353, -0.0742126 ) +transform/scale = Vector2( 1.54149, 0.770745 ) +rect = Rect2( -10, -10, 20, 20 ) + +[node name="sprite" type="Sprite" parent="."] + +texture = ExtResource( 2 ) + +[node name="collision" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="hit_splash" type="Particles2D" parent="."] + +config/amount = 32 +config/lifetime = 0.5 +config/emitting = false +config/explosiveness = 0.1 +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 50.0 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 0.0 +params/initial_size = 3.0 +params/final_size = 3.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 2 ) + +[node name="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/splash = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[connection signal="exit_screen" from="visibility" to="." method="_on_visibility_exit_screen"] + + diff --git a/demos/2d/space_shooter/engine.cfg b/demos/2d/space_shooter/engine.cfg index 8047cebdd3..8563bd8aa9 100644 --- a/demos/2d/space_shooter/engine.cfg +++ b/demos/2d/space_shooter/engine.cfg @@ -1,7 +1,7 @@ [application] name="Simple Shooter" -main_scene="res://main_menu.scn" +main_scene="res://main_menu.tscn" icon="res://icon.png" [autoload] diff --git a/demos/2d/space_shooter/explosion.scn b/demos/2d/space_shooter/explosion.scn Binary files differdeleted file mode 100644 index 6fc105fac3..0000000000 --- a/demos/2d/space_shooter/explosion.scn +++ /dev/null diff --git a/demos/2d/space_shooter/explosion.tscn b/demos/2d/space_shooter/explosion.tscn new file mode 100644 index 0000000000..7c8f94be7d --- /dev/null +++ b/demos/2d/space_shooter/explosion.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://fire.png" type="Texture" id=1] + +[sub_resource type="ColorRamp" id=1] + +offsets = FloatArray( 0, 0.364725, 0.77494, 1 ) +colors = ColorArray( 1, 1, 1, 1, 1, 0, 0, 1, 0.184473, 0.181601, 0.181345, 1, 1, 1, 1, 0 ) + +[node name="explosion" type="Particles2D"] + +transform/pos = Vector2( 0.918983, -2.11041 ) +transform/rot = -91.1436 +config/amount = 32 +config/lifetime = 0.5 +config/emitting = false +config/explosiveness = 0.1 +config/texture = ExtResource( 1 ) +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 100.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 = 3.0 +params/final_size = 1.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 1 ) + + diff --git a/demos/2d/space_shooter/level.scn b/demos/2d/space_shooter/level.scn Binary files differdeleted file mode 100644 index 6d5f8005f5..0000000000 --- a/demos/2d/space_shooter/level.scn +++ /dev/null diff --git a/demos/2d/space_shooter/level.tscn b/demos/2d/space_shooter/level.tscn new file mode 100644 index 0000000000..840d66bd5a --- /dev/null +++ b/demos/2d/space_shooter/level.tscn @@ -0,0 +1,354 @@ +[gd_scene load_steps=7 format=1] + +[ext_resource path="res://tileset.tres" type="TileSet" id=1] +[ext_resource path="res://ship.tscn" type="PackedScene" id=2] +[ext_resource path="res://asteroid.tscn" type="PackedScene" id=3] +[ext_resource path="res://enemy1.tscn" type="PackedScene" id=4] +[ext_resource path="res://enemy2.tscn" type="PackedScene" id=5] +[ext_resource path="res://parallax.tscn" type="PackedScene" id=6] + +[node name="Node2D" type="Node2D"] + +[node name="TileMap" type="TileMap" parent="."] + +mode = 0 +tile_set = ExtResource( 1 ) +cell/size = Vector2( 32, 32 ) +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( 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, 33, 0, 34, 0, 35, 0, 36, 0, 37, 0, 38, 0, 39, 0, 63, 0, 64, 0, 99, 0, 100, 0, 101, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 107, 0, 108, 0, 109, 0, 110, 0, 111, 0, 112, 0, 113, 0, 114, 0, 115, 0, 116, 0, 117, 0, 118, 0, 119, 0, 120, 0, 121, 0, 122, 0, 123, 0, 124, 0, 125, 0, 126, 0, 127, 0, 128, 0, 145, 0, 184, 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, 65569, 0, 65570, 0, 65571, 0, 65572, 0, 65573, 0, 65574, 0, 65575, 0, 65599, 0, 65600, 0, 65637, 0, 65638, 0, 65639, 0, 65640, 0, 65641, 0, 65642, 0, 65643, 0, 65644, 0, 65645, 0, 65646, 0, 65647, 0, 65648, 0, 65649, 0, 65650, 0, 65651, 0, 65652, 0, 65653, 0, 65654, 0, 65655, 0, 65656, 0, 65657, 0, 65658, 0, 65659, 0, 65660, 0, 65661, 0, 65662, 0, 65663, 0, 65664, 0, 65681, 0, 65720, 0, 131094, 0, 131095, 0, 131096, 0, 131097, 0, 131098, 0, 131099, 0, 131100, 0, 131101, 0, 131102, 0, 131103, 0, 131104, 0, 131105, 0, 131106, 0, 131107, 0, 131108, 0, 131109, 0, 131135, 0, 131136, 0, 131137, 0, 131176, 0, 131177, 0, 131178, 0, 131179, 0, 131180, 0, 131181, 0, 131182, 0, 131183, 0, 131184, 0, 131185, 0, 131186, 0, 131187, 0, 131188, 0, 131189, 0, 131190, 0, 131191, 0, 131192, 0, 131193, 0, 131194, 0, 131195, 0, 131196, 0, 131197, 0, 131198, 0, 131199, 0, 131217, 0, 131256, 0, 196631, 0, 196632, 0, 196633, 0, 196634, 0, 196635, 0, 196636, 0, 196637, 0, 196638, 0, 196639, 0, 196640, 0, 196641, 0, 196642, 0, 196671, 0, 196672, 0, 196673, 0, 196716, 0, 196717, 0, 196718, 0, 196719, 0, 196720, 0, 196721, 0, 196722, 0, 196723, 0, 196724, 0, 196725, 0, 196726, 0, 196727, 0, 196728, 0, 196729, 0, 196730, 0, 196753, 0, 196792, 0, 262169, 0, 262170, 0, 262171, 0, 262172, 0, 262173, 0, 262174, 0, 262175, 0, 262207, 0, 262208, 0, 262209, 0, 262256, 0, 262257, 0, 262258, 0, 262259, 0, 262260, 0, 262261, 0, 262262, 0, 262263, 0, 262289, 0, 262328, 0, 327707, 0, 327708, 0, 327743, 0, 327744, 0, 327825, 0, 327826, 0, 327827, 0, 327828, 0, 327829, 0, 327830, 0, 327831, 0, 327832, 0, 327833, 0, 327834, 0, 327835, 0, 327836, 0, 327845, 0, 327846, 0, 327847, 0, 327848, 0, 327849, 0, 327850, 0, 327851, 0, 327852, 0, 327853, 0, 327854, 0, 327855, 0, 327856, 0, 327857, 0, 327864, 0, 327911, 0, 327912, 0, 328010, 0, 328011, 0, 328012, 0, 328013, 0, 328014, 0, 393372, 0, 393393, 0, 393400, 0, 393445, 0, 393446, 0, 393447, 0, 393448, 0, 393548, 0, 393549, 0, 393550, 0, 458908, 0, 458929, 0, 458936, 0, 458981, 0, 458982, 0, 458983, 0, 524444, 0, 524465, 0, 524472, 0, 524517, 0, 524518, 0, 589980, 0, 590001, 0, 590008, 0, 655516, 0, 655521, 0, 655522, 0, 655523, 0, 655524, 0, 655525, 0, 655526, 0, 655537, 0, 655544, 0, 655646, 0, 721041, 0, 721042, 0, 721043, 0, 721044, 0, 721045, 0, 721046, 0, 721052, 0, 721062, 0, 721073, 0, 721080, 0, 721181, 0, 721182, 0, 721183, 0, 721184, 0, 786577, 0, 786588, 0, 786598, 0, 786616, 0, 786717, 0, 786718, 0, 786719, 0, 786720, 0, 852113, 0, 852124, 0, 852134, 0, 852152, 0, 852253, 0, 852254, 0, 852255, 0, 917573, 0, 917574, 0, 917575, 0, 917576, 0, 917577, 0, 917578, 0, 917579, 0, 917580, 0, 917581, 0, 917582, 0, 917583, 0, 917584, 0, 917585, 0, 917649, 0, 917660, 0, 917670, 0, 917688, 0, 983106, 0, 983107, 0, 983108, 0, 983109, 0, 983110, 0, 983111, 0, 983112, 0, 983113, 0, 983114, 0, 983115, 0, 983116, 0, 983117, 0, 983118, 0, 983119, 0, 983120, 0, 983121, 0, 983122, 0, 983185, 0, 983206, 0, 983224, 0, 1048640, 0, 1048641, 0, 1048642, 0, 1048643, 0, 1048644, 0, 1048645, 0, 1048646, 0, 1048647, 0, 1048648, 0, 1048649, 0, 1048650, 0, 1048651, 0, 1048652, 0, 1048653, 0, 1048654, 0, 1048655, 0, 1048656, 0, 1048657, 0, 1048658, 0, 1048659, 0, 1048721, 0, 1048742, 0, 1048826, 0, 1048828, 0, 1114175, 0, 1114176, 0, 1114177, 0, 1114178, 0, 1114179, 0, 1114180, 0, 1114181, 0, 1114182, 0, 1114183, 0, 1114184, 0, 1114185, 0, 1114186, 0, 1114187, 0, 1114188, 0, 1114189, 0, 1114190, 0, 1114191, 0, 1114192, 0, 1114193, 0, 1114194, 0, 1114195, 0, 1114196, 0, 1114197, 0, 1114198, 0, 1114257, 0, 1114278, 0, 1114360, 0, 1114361, 0, 1114362, 0, 1114363, 0, 1114365, 0, 1114480, 0, 1114481, 0, 1179707, 0, 1179708, 0, 1179709, 0, 1179710, 0, 1179711, 0, 1179712, 0, 1179713, 0, 1179714, 0, 1179715, 0, 1179716, 0, 1179717, 0, 1179718, 0, 1179719, 0, 1179720, 0, 1179721, 0, 1179722, 0, 1179723, 0, 1179724, 0, 1179725, 0, 1179726, 0, 1179727, 0, 1179728, 0, 1179729, 0, 1179730, 0, 1179731, 0, 1179732, 0, 1179733, 0, 1179734, 0, 1179735, 0, 1179736, 0, 1179737, 0, 1179738, 0, 1179739, 0, 1179740, 0, 1179741, 0, 1179793, 0, 1179814, 0, 1179896, 0, 1179898, 0, 1179899, 0, 1179900, 0, 1179901, 0, 1180015, 0, 1180016, 0, 1180017, 0, 1180018, 0, 1180019, 0, 1245244, 0, 1245245, 0, 1245246, 0, 1245247, 0, 1245248, 0, 1245249, 0, 1245250, 0, 1245251, 0, 1245252, 0, 1245253, 0, 1245254, 0, 1245255, 0, 1245256, 0, 1245257, 0, 1245258, 0, 1245259, 0, 1245260, 0, 1245261, 0, 1245262, 0, 1245263, 0, 1245264, 0, 1245265, 0, 1245266, 0, 1245267, 0, 1245268, 0, 1245269, 0, 1245270, 0, 1245271, 0, 1245272, 0, 1245273, 0, 1245274, 0, 1245275, 0, 1245276, 0, 1245277, 0, 1245329, 0, 1245350, 0, 1245432, 0, 1245433, 0, 1245434, 0, 1245435, 0, 1245480, 0, 1245481, 0, 1245482, 0, 1245551, 0, 1245552, 0, 1245553, 0, 1245554, 0, 1310886, 0, 1310905, 0, 1311015, 0, 1311016, 0, 1311017, 0, 1311018, 0 ) + +[node name="rail" parent="." instance=ExtResource( 2 )] + +[node name="enemies" type="Node2D" parent="."] + +[node name="asteroid" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 1797.52, 105.736 ) +linear_damp = 0.1 + +[node name="asteroid1" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 1666.61, 304.621 ) +linear_damp = 0.1 + +[node name="asteroid2" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 1988.85, 443.086 ) +linear_damp = 0.1 + +[node name="asteroid3" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 2595.58, 103.219 ) +linear_damp = 0.1 + +[node name="asteroid4" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 3229.99, 299.586 ) +linear_damp = 0.1 + +[node name="asteroid5" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 3592.52, 541.269 ) +linear_damp = 0.1 + +[node name="asteroid6" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 4571.84, 216.508 ) +linear_damp = 0.1 + +[node name="asteroid7" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 4571.84, 284.481 ) +linear_damp = 0.1 + +[node name="asteroid8" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 4571.84, 360.007 ) +linear_damp = 0.1 + +[node name="asteroid9" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 5140.8, 108.254 ) +linear_damp = 0.1 + +[node name="asteroid10" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 5168.5, 475.814 ) +linear_damp = 0.1 + +[node name="asteroid11" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 5767.67, 113.289 ) +linear_damp = 0.1 + +[node name="asteroid12" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 6107.53, 480.849 ) +linear_damp = 0.1 + +[node name="asteroid13" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 6364.32, 105.736 ) +linear_damp = 0.1 + +[node name="asteroid14" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 6731.88, 573.997 ) +linear_damp = 0.1 + +[node name="asteroid15" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7033.99, 166.157 ) +linear_damp = 0.1 + +[node name="asteroid16" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 6424.74, 352.454 ) +linear_damp = 0.1 + +[node name="asteroid17" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7263.08, 80.5608 ) +linear_damp = 0.1 + +[node name="asteroid18" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7177.49, 541.269 ) +linear_damp = 0.1 + +[node name="asteroid19" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7066.71, 344.902 ) +linear_damp = 0.1 + +[node name="asteroid20" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7655.82, 118.324 ) +linear_damp = 0.1 + +[node name="asteroid21" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7540.01, 324.762 ) +linear_damp = 0.1 + +[node name="asteroid22" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7764.07, 566.445 ) +linear_damp = 0.1 + +[node name="asteroid23" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 7872.33, 216.508 ) +linear_damp = 0.1 + +[node name="asteroid24" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 8458.91, 95.666 ) +linear_damp = 0.1 + +[node name="asteroid25" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 8786.19, 231.613 ) +linear_damp = 0.1 + +[node name="asteroid26" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 8599.89, 551.339 ) +linear_damp = 0.1 + +[node name="asteroid27" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 8353.17, 289.516 ) +linear_damp = 0.1 + +[node name="asteroid28" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 8995.14, 95.6658 ) +linear_damp = 0.1 + +[node name="asteroid29" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 9294.73, 579.032 ) +linear_damp = 0.1 + +[node name="asteroid30" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 9392.91, 140.981 ) +linear_damp = 0.1 + +[node name="asteroid31" parent="enemies" instance=ExtResource( 3 )] + +transform/pos = Vector2( 9644.67, 281.963 ) +linear_damp = 0.1 + +[node name="enemy1" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 2920.34, 365.042 ) + +[node name="enemy2" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 3894.62, 506.024 ) + +[node name="enemy3" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 4325.12, 302.104 ) + +[node name="enemy4" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 4753.1, 506.024 ) + +[node name="enemy5" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 5158.43, 211.473 ) + +[node name="enemy6" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 5490.74, 349.937 ) + +[node name="enemy7" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 5765.15, 546.305 ) + +[node name="enemy8" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 6142.78, 244.201 ) + +[node name="enemy9" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 6701.67, 221.543 ) + +[node name="enemy10" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 6701.67, 352.455 ) + +[node name="enemy11" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 6706.71, 500.989 ) + +[node name="enemy12" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 6711.74, 566.445 ) + +[node name="enemy13" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 7157.35, 332.314 ) + +[node name="enemy14" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 7421.69, 511.059 ) + +[node name="enemy15" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 7887.43, 239.166 ) + +[node name="enemy16" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 8463.95, 382.665 ) + +[node name="enemy17" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 9065.64, 244.201 ) + +[node name="enemy18" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 8967.46, 566.445 ) + +[node name="enemy19" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 9483.55, 422.946 ) + +[node name="enemy20" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 9687.47, 234.131 ) + +[node name="enemy21" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 9815.86, 579.033 ) + +[node name="enemy22" parent="enemies" instance=ExtResource( 4 )] + +transform/pos = Vector2( 9815.86, 579.033 ) + +[node name="enemy2 2" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 4759.97, 278.527 ) +linear_damp = 0.1 + +[node name="enemy23" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 6277.15, 559.36 ) +linear_damp = 0.1 + +[node name="enemy24" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 7136.77, 100.438 ) +linear_damp = 0.1 + +[node name="enemy25" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 7766.93, 370.996 ) +linear_damp = 0.1 + +[node name="enemy26" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 7890.23, 309.35 ) +linear_damp = 0.1 + +[node name="enemy27" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 8006.67, 237.43 ) +linear_damp = 0.1 + +[node name="enemy28" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 8664.23, 257.978 ) +linear_damp = 0.1 + +[node name="enemy29" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 8660.8, 357.297 ) +linear_damp = 0.1 + +[node name="enemy30" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 8657.38, 453.191 ) +linear_damp = 0.1 + +[node name="enemy31" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 9475.9, 189.483 ) +linear_damp = 0.1 + +[node name="enemy32" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 9564.95, 234.005 ) +linear_damp = 0.1 + +[node name="enemy33" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 9674.54, 281.952 ) +linear_damp = 0.1 + +[node name="enemy34" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 9575.22, 391.545 ) +linear_damp = 0.1 + +[node name="enemy35" parent="enemies" instance=ExtResource( 5 )] + +transform/pos = Vector2( 9458.78, 446.342 ) +linear_damp = 0.1 + +[node name="parallax" parent="." instance=ExtResource( 6 )] + + diff --git a/demos/2d/space_shooter/level_tiles.res b/demos/2d/space_shooter/level_tiles.res Binary files differdeleted file mode 100644 index 8712b8c799..0000000000 --- a/demos/2d/space_shooter/level_tiles.res +++ /dev/null diff --git a/demos/2d/space_shooter/level_tiles.scn b/demos/2d/space_shooter/level_tiles.scn Binary files differdeleted file mode 100644 index 932be39a29..0000000000 --- a/demos/2d/space_shooter/level_tiles.scn +++ /dev/null diff --git a/demos/2d/space_shooter/main_menu.gd b/demos/2d/space_shooter/main_menu.gd index a7f242da7b..0c7e0de542 100644 --- a/demos/2d/space_shooter/main_menu.gd +++ b/demos/2d/space_shooter/main_menu.gd @@ -8,4 +8,4 @@ func _ready(): func _on_play_pressed(): get_node("/root/game_state").points = 0 - get_tree().change_scene("res://level.scn") + get_tree().change_scene("res://level.tscn") diff --git a/demos/2d/space_shooter/main_menu.scn b/demos/2d/space_shooter/main_menu.scn Binary files differdeleted file mode 100644 index 91b0b37b14..0000000000 --- a/demos/2d/space_shooter/main_menu.scn +++ /dev/null diff --git a/demos/2d/space_shooter/main_menu.tscn b/demos/2d/space_shooter/main_menu.tscn new file mode 100644 index 0000000000..e51791611d --- /dev/null +++ b/demos/2d/space_shooter/main_menu.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=2 format=1] + +[ext_resource path="res://main_menu.gd" type="Script" id=1] + +[node name="main_screen" 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 +script/script = ExtResource( 1 ) + +[node name="title" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 405.0 +margin/top = 86.0 +margin/right = 547.0 +margin/bottom = 99.0 +text = "S P A C E S H O O T E R" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="score" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 349.0 +margin/top = 204.0 +margin/right = 585.0 +margin/bottom = 218.0 +text = "HIGH SCORE:" +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="play" type="Button" parent="."] + +focus/ignore_mouse = false +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 412.0 +margin/top = 390.0 +margin/right = 535.0 +margin/bottom = 442.0 +toggle_mode = false +text = "PLAY" +flat = false + +[connection signal="pressed" from="play" to="." method="_on_play_pressed"] + + diff --git a/demos/2d/space_shooter/parallax.scn b/demos/2d/space_shooter/parallax.scn Binary files differdeleted file mode 100644 index 2753d16e84..0000000000 --- a/demos/2d/space_shooter/parallax.scn +++ /dev/null diff --git a/demos/2d/space_shooter/parallax.tscn b/demos/2d/space_shooter/parallax.tscn new file mode 100644 index 0000000000..0cbd0f5b19 --- /dev/null +++ b/demos/2d/space_shooter/parallax.tscn @@ -0,0 +1,201 @@ +[gd_scene load_steps=4 format=1] + +[ext_resource path="res://bg_gradient.png" type="Texture" id=1] +[ext_resource path="res://small_star.png" type="Texture" id=2] +[ext_resource path="res://big_star.png" type="Texture" id=3] + +[node name="parallax" type="ParallaxBackground"] + +layer = -1 +offset = Vector2( 0, 0 ) +rotation = 0.0 +scale = Vector2( 1, 1 ) +scroll/offset = Vector2( 0, 0 ) +scroll/base_offset = Vector2( 0, 0 ) +scroll/base_scale = Vector2( 1, 1 ) +scroll/limit_begin = Vector2( 0, 0 ) +scroll/limit_end = Vector2( 0, 0 ) +scroll/ignore_camera_zoom = true + +[node name="bg_layer" type="ParallaxLayer" parent="."] + +motion/scale = Vector2( 0.2, 1 ) +motion/mirroring = Vector2( 1024, 0 ) + +[node name="gradient" type="Sprite" parent="bg_layer"] + +transform/scale = Vector2( 128, 1 ) +texture = ExtResource( 1 ) +centered = false + +[node name="Sprite" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 73.6643, 65.0701 ) +texture = ExtResource( 2 ) + +[node name="Sprite1" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 127.685, 206.26 ) +texture = ExtResource( 2 ) + +[node name="Sprite2" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 60.1591, 255.369 ) +texture = ExtResource( 2 ) + +[node name="Sprite3" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 252.914, 142.418 ) +texture = ExtResource( 2 ) + +[node name="Sprite4" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 241.864, 335.172 ) +texture = ExtResource( 2 ) + +[node name="Sprite5" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 127.685, 455.491 ) +texture = ExtResource( 2 ) + +[node name="Sprite6" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 289.746, 547.571 ) +texture = ExtResource( 2 ) + +[node name="Sprite7" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 56.4759, 559.848 ) +texture = ExtResource( 2 ) + +[node name="Sprite8" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 487.412, 166.972 ) +texture = ExtResource( 2 ) + +[node name="Sprite9" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 358.499, 77.3474 ) +texture = ExtResource( 2 ) + +[node name="Sprite10" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 647.018, 71.2088 ) +texture = ExtResource( 2 ) + +[node name="Sprite11" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 592.997, 270.102 ) +texture = ExtResource( 2 ) + +[node name="Sprite12" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 868.011, 252.914 ) +texture = ExtResource( 2 ) + +[node name="Sprite13" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 869.238, 93.308 ) +texture = ExtResource( 2 ) + +[node name="Sprite14" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 965.002, 95.7635 ) +texture = ExtResource( 2 ) + +[node name="Sprite15" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 968.685, 559.848 ) +texture = ExtResource( 2 ) + +[node name="Sprite16" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 815.218, 470.224 ) +texture = ExtResource( 2 ) + +[node name="Sprite17" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 475.134, 530.383 ) +texture = ExtResource( 2 ) + +[node name="Sprite18" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 550.026, 421.114 ) +texture = ExtResource( 2 ) + +[node name="Sprite19" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 696.127, 574.581 ) +texture = ExtResource( 2 ) + +[node name="Sprite20" type="Sprite" parent="bg_layer"] + +transform/pos = Vector2( 990.784, 423.569 ) +texture = ExtResource( 2 ) + +[node name="bg_layer2" type="ParallaxLayer" parent="."] + +motion/scale = Vector2( 0.5, 1 ) +motion/mirroring = Vector2( 1024, 0 ) + +[node name="Sprite" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 88, 114 ) +texture = ExtResource( 3 ) + +[node name="Sprite1" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 349, 254 ) +texture = ExtResource( 3 ) + +[node name="Sprite2" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 472, 80 ) +texture = ExtResource( 3 ) + +[node name="Sprite3" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 803, 107 ) +texture = ExtResource( 3 ) + +[node name="Sprite4" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 93, 363 ) +texture = ExtResource( 3 ) + +[node name="Sprite5" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 891, 519 ) +texture = ExtResource( 3 ) + +[node name="Sprite6" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 934, 338 ) +texture = ExtResource( 3 ) + +[node name="Sprite7" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 665, 332 ) +texture = ExtResource( 3 ) + +[node name="Sprite8" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 218, 423 ) +texture = ExtResource( 3 ) + +[node name="Sprite9" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 564, 568 ) +texture = ExtResource( 3 ) + +[node name="Sprite10" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 753, 466 ) +texture = ExtResource( 3 ) + +[node name="Sprite11" type="Sprite" parent="bg_layer2"] + +transform/pos = Vector2( 77.9999, 570 ) +texture = ExtResource( 3 ) + + diff --git a/demos/2d/space_shooter/ship.gd b/demos/2d/space_shooter/ship.gd index b6c1200632..0bc9ca6b13 100644 --- a/demos/2d/space_shooter/ship.gd +++ b/demos/2d/space_shooter/ship.gd @@ -37,7 +37,7 @@ func _process(delta): if (shooting and not prev_shooting): # Just pressed - var shot = preload("res://shot.scn").instance() + var shot = preload("res://shot.tscn").instance() # Use the Position2D as reference shot.set_pos(get_node("shootfrom").get_global_pos()) # Put it two parents above, so it is not moved by us @@ -78,4 +78,4 @@ func _on_ship_area_enter(area): func _on_back_to_menu_pressed(): - get_tree().change_scene("res://main_menu.scn") + get_tree().change_scene("res://main_menu.tscn") diff --git a/demos/2d/space_shooter/ship.scn b/demos/2d/space_shooter/ship.scn Binary files differdeleted file mode 100644 index c60e2e3e3b..0000000000 --- a/demos/2d/space_shooter/ship.scn +++ /dev/null diff --git a/demos/2d/space_shooter/ship.tscn b/demos/2d/space_shooter/ship.tscn new file mode 100644 index 0000000000..be6bf6b82e --- /dev/null +++ b/demos/2d/space_shooter/ship.tscn @@ -0,0 +1,229 @@ +[gd_scene load_steps=12 format=1] + +[ext_resource path="res://rail.gd" type="Script" id=1] +[ext_resource path="res://ship.gd" type="Script" id=2] +[ext_resource path="res://ship.png" type="Texture" id=3] +[ext_resource path="res://fire.png" type="Texture" id=4] +[ext_resource path="res://explosion.tscn" type="PackedScene" id=5] +[ext_resource path="res://sound_shoot.wav" type="Sample" id=6] +[ext_resource path="res://sound_explode.wav" type="Sample" id=7] + +[sub_resource type="ConvexPolygonShape2D" id=1] + +custom_solver_bias = 0.0 +points = Vector2Array( 25.9104, 1.3603, -20.5637, 14.8656, -20.5637, -15.3227 ) + +[sub_resource type="ColorRamp" id=2] + +offsets = FloatArray( 0, 0.474062, 0.653631, 1 ) +colors = ColorArray( 0.154794, 0.413313, 0.991004, 1, 0.555474, 0.971578, 0, 1, 0.82934, 0.989088, 0.616085, 0.383915, 1, 1, 1, 0 ) + +[sub_resource type="Animation" id=3] + +length = 1.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("sprite:visibility/visible") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } +tracks/1/type = "value" +tracks/1/path = NodePath("thruster:config/emitting") +tracks/1/interp = 1 +tracks/1/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } +tracks/2/type = "value" +tracks/2/path = NodePath("explosion:config/emitting") +tracks/2/interp = 1 +tracks/2/keys = { "cont":false, "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } + +[sub_resource type="SampleLibrary" id=4] + +samples/shoot = { "db":0.0, "pitch":1.0, "sample":ExtResource( 6 ) } +samples/sound_explode = { "db":0.0, "pitch":1.0, "sample":ExtResource( 7 ) } + +[node name="rail" type="Node2D"] + +script/script = ExtResource( 1 ) + +[node name="ship" type="Area2D" parent="."] + +transform/pos = Vector2( 253.607, 282.275 ) +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( 2 ) + +[node name="sprite" type="Sprite" parent="ship"] + +texture = ExtResource( 3 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="ship"] + +build_mode = 0 +polygon = Vector2Array( -20.5637, -15.3227, 25.9104, 1.3603, -20.5637, 14.8656 ) +shape_range = Vector2( -1, -1 ) +trigger = false + +[node name="thruster" type="Particles2D" parent="ship"] + +visibility/blend_mode = 1 +transform/pos = Vector2( -26.528, -0.358481 ) +transform/rot = -91.1436 +config/amount = 32 +config/lifetime = 2.0 +config/time_scale = 5.0 +config/emitting = false +config/local_space = false +config/texture = ExtResource( 4 ) +params/direction = 0.0 +params/spread = 10.0 +params/linear_velocity = 20.0 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 0.0 +params/initial_size = 1.0 +params/final_size = 1.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 2 ) + +[node name="anim" type="AnimationPlayer" parent="ship"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/explode = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[node name="shootfrom" type="Position2D" parent="ship"] + +transform/pos = Vector2( 35.3307, 0.875969 ) + +[node name="explosion" parent="ship" instance=ExtResource( 5 )] + +transform/rot = -91.1436 +config/explosiveness = 0.1 +params/gravity_strength = 9.8 + +[node name="sfx" type="SamplePlayer" parent="ship"] + +config/polyphony = 1 +config/samples = SubResource( 4 ) +default/volume_db = 0.0 +default/pitch_scale = 1.0 +default/pan = 0.0 +default/depth = 0.0 +default/height = 0.0 +default/filter/type = 0 +default/filter/cutoff = 0.0 +default/filter/resonance = 0.0 +default/filter/gain = 0.0 +default/reverb_room = 2 +default/reverb_send = 0.0 +default/chorus_send = 0.0 + +[node name="camera" type="Camera2D" parent="."] + +anchor_mode = 0 +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="hud" type="CanvasLayer" parent="."] + +layer = 1 +offset = Vector2( 0, 0 ) +rotation = 0.0 +scale = Vector2( 1, 1 ) + +[node name="score" type="Label" parent="hud"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 15.0 +margin/top = 13.0 +margin/right = 66.0 +margin/bottom = 26.0 +text = "SCORE:" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="score_points" type="Label" parent="hud"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 70.0 +margin/top = 13.0 +margin/right = 121.0 +margin/bottom = 26.0 +text = "0" +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="back_to_menu" type="Button" parent="hud"] + +focus/ignore_mouse = false +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 911.0 +margin/top = 10.0 +margin/right = 1006.0 +margin/bottom = 31.0 +toggle_mode = false +text = "Back to Menu" +flat = false + +[node name="game_over" type="Label" parent="hud"] + +visibility/visible = false +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 482.0 +margin/top = 286.0 +margin/right = 564.0 +margin/bottom = 299.0 +text = "GAME_OVER" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[connection signal="body_enter" from="ship" to="ship" method="_on_ship_body_enter"] + +[connection signal="area_enter" from="ship" to="ship" method="_on_ship_area_enter"] + +[connection signal="pressed" from="hud/back_to_menu" to="ship" method="_on_back_to_menu_pressed"] + + diff --git a/demos/2d/space_shooter/shot.scn b/demos/2d/space_shooter/shot.scn Binary files differdeleted file mode 100644 index 9daf4ebe82..0000000000 --- a/demos/2d/space_shooter/shot.scn +++ /dev/null diff --git a/demos/2d/space_shooter/shot.tscn b/demos/2d/space_shooter/shot.tscn new file mode 100644 index 0000000000..2913eaf5b7 --- /dev/null +++ b/demos/2d/space_shooter/shot.tscn @@ -0,0 +1,103 @@ +[gd_scene load_steps=6 format=1] + +[ext_resource path="res://shot.gd" type="Script" id=1] +[ext_resource path="res://shoot.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 10, 4 ) + +[sub_resource type="ColorRamp" id=2] + +offsets = FloatArray( 0, 1 ) +colors = ColorArray( 0.238085, 0.881885, 0.983902, 1, 1, 1, 1, 0 ) + +[sub_resource type="Animation" id=3] + +length = 1.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("hit_splash:config/emitting") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.1 ), "transitions":FloatArray( 1, 1 ), "values":[ true, false ] } +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/keys = { "times":FloatArray( 1 ), "transitions":FloatArray( 1 ), "values":[ { "args":[ ], "method":"queue_free" } ] } +tracks/2/type = "value" +tracks/2/path = NodePath("sprite:visibility/visible") +tracks/2/interp = 1 +tracks/2/keys = { "cont":false, "times":FloatArray( 0 ), "transitions":FloatArray( 1 ), "values":[ false ] } + +[node name="shot" type="Area2D"] + +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="visibility" type="VisibilityNotifier2D" parent="."] + +transform/pos = Vector2( 1.8353, -0.0742126 ) +transform/scale = Vector2( 1.54149, 0.770745 ) +rect = Rect2( -10, -10, 20, 20 ) + +[node name="sprite" type="Sprite" parent="."] + +texture = ExtResource( 2 ) + +[node name="collision" type="CollisionShape2D" parent="."] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + +[node name="hit_splash" type="Particles2D" parent="."] + +config/amount = 32 +config/lifetime = 0.5 +config/emitting = false +config/explosiveness = 0.1 +params/direction = 0.0 +params/spread = 180.0 +params/linear_velocity = 50.0 +params/spin_velocity = 0.0 +params/orbit_velocity = 0.0 +params/gravity_direction = 0.0 +params/gravity_strength = 0.0 +params/radial_accel = 0.0 +params/tangential_accel = 0.0 +params/damping = 0.0 +params/initial_angle = 0.0 +params/initial_size = 3.0 +params/final_size = 3.0 +params/hue_variation = 0.0 +params/anim_speed_scale = 1.0 +params/anim_initial_pos = 0.0 +color/color_ramp = SubResource( 2 ) + +[node name="anim" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/splash = SubResource( 3 ) +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "" + +[connection signal="body_enter" from="." to="." method="_on_shot_body_enter"] + +[connection signal="area_enter" from="." to="." method="_on_shot_area_enter"] + +[connection signal="exit_screen" from="visibility" to="." method="_on_visibility_exit_screen"] + + diff --git a/demos/2d/space_shooter/tileset.tres b/demos/2d/space_shooter/tileset.tres new file mode 100644 index 0000000000..0a62a0048e --- /dev/null +++ b/demos/2d/space_shooter/tileset.tres @@ -0,0 +1,20 @@ +[gd_resource type="TileSet" load_steps=3 format=1] + +[ext_resource path="res://tile.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 16, 16 ) + +[resource] + +0/name = "block" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/region = Rect2( 0, 0, 0, 0 ) +0/occluder_offset = Vector2( 16, 16 ) +0/navigation_offset = Vector2( 16, 16 ) +0/shape_offset = Vector2( 16, 16 ) +0/shapes = [ SubResource( 1 ) ] + diff --git a/demos/2d/space_shooter/tileset_edit.tscn b/demos/2d/space_shooter/tileset_edit.tscn new file mode 100644 index 0000000000..87152a1818 --- /dev/null +++ b/demos/2d/space_shooter/tileset_edit.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://tile.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] + +custom_solver_bias = 0.0 +extents = Vector2( 16, 16 ) + +[node name="Node2D" type="Node2D"] + +[node name="block" type="Sprite" parent="."] + +texture = ExtResource( 1 ) + +[node name="StaticBody2D" 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="CollisionShape2D" type="CollisionShape2D" parent="block/StaticBody2D"] + +shape = SubResource( 1 ) +trigger = false +_update_shape_index = -1 + + diff --git a/demos/2d/splash/engine.cfg b/demos/2d/splash/engine.cfg index e461426305..e970840eae 100644 --- a/demos/2d/splash/engine.cfg +++ b/demos/2d/splash/engine.cfg @@ -1,7 +1,7 @@ [application] name="Splash Screen" -main_scene="res://splash.xml" +main_scene="res://splash.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/splash/splash.tscn b/demos/2d/splash/splash.tscn new file mode 100644 index 0000000000..5523d4c3f0 --- /dev/null +++ b/demos/2d/splash/splash.tscn @@ -0,0 +1,274 @@ +[gd_scene load_steps=20 format=1] + +[ext_resource path="res://bg.png" type="Texture" id=1] +[ext_resource path="res://bg_layer_2.png" type="Texture" id=2] +[ext_resource path="res://bg_layer_1.png" type="Texture" id=3] +[ext_resource path="res://splash_01.png" type="Texture" id=4] +[ext_resource path="res://splash_02.png" type="Texture" id=5] +[ext_resource path="res://splash_03.png" type="Texture" id=6] +[ext_resource path="res://splash_04.png" type="Texture" id=7] +[ext_resource path="res://splash_05.png" type="Texture" id=8] +[ext_resource path="res://splash_06.png" type="Texture" id=9] +[ext_resource path="res://splash_07.png" type="Texture" id=10] +[ext_resource path="res://splash_08.png" type="Texture" id=11] +[ext_resource path="res://splash_09.png" type="Texture" id=12] +[ext_resource path="res://button.png" type="Texture" id=13] +[ext_resource path="res://button_pressed.png" type="Texture" id=14] +[ext_resource path="res://freesans.fnt" type="Font" id=15] + +[sub_resource type="Animation" id=1] + +resource/name = "scroll" +length = 1.0 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath(".:rect/pos") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 0, 1 ), "transitions":FloatArray( 1, 1 ), "values":[ Vector2( 0, 0 ), Vector2( -800, 0 ) ] } + +[sub_resource type="SpriteFrames" id=2] + +frames = [ ExtResource( 4 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ) ] + +[sub_resource type="Animation" id=3] + +resource/name = "intro" +length = 3.0 +loop = false +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("logo:transform/pos") +tracks/0/interp = 1 +tracks/0/keys = { "cont":true, "times":FloatArray( 1, 1.5 ), "transitions":FloatArray( 2, 1 ), "values":[ Vector2( 412, -212.981 ), Vector2( 412, 171 ) ] } +tracks/1/type = "value" +tracks/1/path = NodePath("logo:frame") +tracks/1/interp = 1 +tracks/1/keys = { "cont":false, "times":FloatArray( 0, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3 ), "transitions":FloatArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), "values":[ 0, 0, 1, 2, 3, 4, 5, 6, 7, 8 ] } +tracks/2/type = "value" +tracks/2/path = NodePath("start:visibility/opacity") +tracks/2/interp = 1 +tracks/2/keys = { "cont":true, "times":FloatArray( 2.5, 2.8 ), "transitions":FloatArray( 1, 1 ), "values":[ 0.0, 1.0 ] } +tracks/3/type = "value" +tracks/3/path = NodePath("start:visibility/visible") +tracks/3/interp = 1 +tracks/3/keys = { "cont":false, "times":FloatArray( 0, 2.5 ), "transitions":FloatArray( 1, 1 ), "values":[ false, true ] } +tracks/4/type = "value" +tracks/4/path = NodePath("copyright:visibility/visible") +tracks/4/interp = 1 +tracks/4/keys = { "cont":false, "times":FloatArray( 0, 2.5 ), "transitions":FloatArray( 1, 1 ), "values":[ false, true ] } +tracks/5/type = "value" +tracks/5/path = NodePath("copyright:visibility/opacity") +tracks/5/interp = 1 +tracks/5/keys = { "cont":true, "times":FloatArray( 2.5, 2.8 ), "transitions":FloatArray( 1, 1 ), "values":[ 0.0, 1.0 ] } + +[sub_resource type="Animation" id=4] + +length = 0.6 +loop = true +step = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("logo:frame") +tracks/0/interp = 1 +tracks/0/keys = { "cont":false, "times":FloatArray( 0, 0.3 ), "transitions":FloatArray( 1, 1 ), "values":[ 8, 7 ] } + +[node name="splash" 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="bg" type="Control" parent="."] + +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 = 40.0 +margin/bottom = 40.0 + +[node name="1" type="TextureFrame" parent="bg"] + +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 = 40.0 +margin/bottom = 40.0 +texture = ExtResource( 1 ) + +[node name="2" type="TextureFrame" parent="bg"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 800.0 +margin/top = 0.0 +margin/right = 1600.0 +margin/bottom = 450.0 +texture = ExtResource( 1 ) + +[node name="scroll" type="AnimationPlayer" parent="bg"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/scroll = SubResource( 1 ) +playback/active = true +playback/speed = 0.04 +blend_times = [ ] +autoplay = "scroll" + +[node name="layer2" type="Control" parent="."] + +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 = 40.0 +margin/bottom = 40.0 + +[node name="1" type="TextureFrame" parent="layer2"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 0.0 +margin/top = 194.0 +margin/right = 800.0 +margin/bottom = 456.0 +texture = ExtResource( 2 ) + +[node name="2" type="TextureFrame" parent="layer2"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 800.0 +margin/top = 194.0 +margin/right = 1600.0 +margin/bottom = 456.0 +texture = ExtResource( 2 ) + +[node name="scroll" type="AnimationPlayer" parent="layer2"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/scroll = SubResource( 1 ) +playback/active = true +playback/speed = 0.1 +blend_times = [ ] +autoplay = "scroll" + +[node name="layer1" type="Control" parent="."] + +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 = 40.0 +margin/bottom = 40.0 + +[node name="1" type="TextureFrame" parent="layer1"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 0.0 +margin/top = 212.0 +margin/right = 800.0 +margin/bottom = 456.0 +texture = ExtResource( 3 ) + +[node name="2" type="TextureFrame" parent="layer1"] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 800.0 +margin/top = 212.0 +margin/right = 1600.0 +margin/bottom = 456.0 +texture = ExtResource( 3 ) + +[node name="scroll" type="AnimationPlayer" parent="layer1"] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/scroll = SubResource( 1 ) +playback/active = true +playback/speed = 0.2 +blend_times = [ ] +autoplay = "scroll" + +[node name="logo" type="AnimatedSprite" parent="."] + +transform/pos = Vector2( 412, 171 ) +frames = SubResource( 2 ) +frame = 8 + +[node name="start" type="TextureButton" parent="."] + +focus/ignore_mouse = false +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 345.0 +margin/top = 369.0 +margin/right = 494.0 +margin/bottom = 443.0 +toggle_mode = false +textures/normal = ExtResource( 13 ) +textures/pressed = ExtResource( 14 ) + +[node name="copyright" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 658.0 +margin/top = 417.0 +margin/right = 776.0 +margin/bottom = 434.0 +custom_fonts/font = ExtResource( 15 ) +text = "(c) 1994 SOGA" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="intro" type="AnimationPlayer" parent="."] + +playback/process_mode = 1 +playback/default_blend_time = 0.0 +root/root = NodePath("..") +anims/intro = SubResource( 3 ) +anims/loop = SubResource( 4 ) +next/intro = "loop" +playback/active = true +playback/speed = 1.0 +blend_times = [ ] +autoplay = "intro" + + diff --git a/demos/2d/splash/splash.xml b/demos/2d/splash/splash.xml deleted file mode 100644 index 4a36619b09..0000000000 --- a/demos/2d/splash/splash.xml +++ /dev/null @@ -1,448 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="20" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://splash_02.png" type="Texture" index="4"></ext_resource> - <ext_resource path="res://splash_01.png" type="Texture" index="3"></ext_resource> - <ext_resource path="res://splash_05.png" type="Texture" index="7"></ext_resource> - <ext_resource path="res://splash_06.png" type="Texture" index="8"></ext_resource> - <ext_resource path="res://splash_03.png" type="Texture" index="5"></ext_resource> - <ext_resource path="res://splash_04.png" type="Texture" index="6"></ext_resource> - <ext_resource path="res://splash_07.png" type="Texture" index="9"></ext_resource> - <ext_resource path="res://splash_08.png" type="Texture" index="10"></ext_resource> - <ext_resource path="res://splash_09.png" type="Texture" index="11"></ext_resource> - <ext_resource path="res://bg.png" type="Texture" index="0"></ext_resource> - <ext_resource path="res://bg_layer_2.png" type="Texture" index="1"></ext_resource> - <ext_resource path="res://bg_layer_1.png" type="Texture" index="2"></ext_resource> - <ext_resource path="res://button_pressed.png" type="Texture" index="13"></ext_resource> - <ext_resource path="res://button.png" type="Texture" index="12"></ext_resource> - <ext_resource path="res://freesans.fnt" type="Font" index="14"></ext_resource> - <resource type="Animation" path="local://1"> - <string name="resource/name"> "scroll" </string> - <real name="length"> 1 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.1 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> ".:rect/pos" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 0, 1 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <vector2> 0, 0 </vector2> - <vector2> -800, 0 </vector2> - </array> - </dictionary> - - </resource> - <resource type="SpriteFrames" path="local://2"> - <array name="frames" len="9" shared="false"> - <resource external="3"> </resource> - <resource external="4"> </resource> - <resource external="5"> </resource> - <resource external="6"> </resource> - <resource external="7"> </resource> - <resource external="8"> </resource> - <resource external="9"> </resource> - <resource external="10"> </resource> - <resource external="11"> </resource> - </array> - - </resource> - <resource type="Animation" path="local://4"> - <string name="resource/name"> "intro" </string> - <real name="length"> 3 </real> - <bool name="loop"> False </bool> - <real name="step"> 0.1 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "logo:transform/pos" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 1, 1.5 </real_array> - <string> "transitions" </string> - <real_array len="2"> 2, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <vector2> 412, -212.981 </vector2> - <vector2> 412, 171 </vector2> - </array> - </dictionary> - <string name="tracks/1/type"> "value" </string> - <node_path name="tracks/1/path"> "logo:frame" </node_path> - <int name="tracks/1/interp"> 1 </int> - <dictionary name="tracks/1/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="10"> 0, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3 </real_array> - <string> "transitions" </string> - <real_array len="10"> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 </real_array> - <string> "values" </string> - <array len="10" shared="false"> - <int> 0 </int> - <int> 0 </int> - <int> 1 </int> - <int> 2 </int> - <int> 3 </int> - <int> 4 </int> - <int> 5 </int> - <int> 6 </int> - <int> 7 </int> - <int> 8 </int> - </array> - </dictionary> - <string name="tracks/2/type"> "value" </string> - <node_path name="tracks/2/path"> "start:visibility/opacity" </node_path> - <int name="tracks/2/interp"> 1 </int> - <dictionary name="tracks/2/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 2.5, 2.8 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <real> 0 </real> - <real> 1 </real> - </array> - </dictionary> - <string name="tracks/3/type"> "value" </string> - <node_path name="tracks/3/path"> "start:visibility/visible" </node_path> - <int name="tracks/3/interp"> 1 </int> - <dictionary name="tracks/3/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="2"> 0, 2.5 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <bool> False </bool> - <bool> True </bool> - </array> - </dictionary> - <string name="tracks/4/type"> "value" </string> - <node_path name="tracks/4/path"> "copyright:visibility/visible" </node_path> - <int name="tracks/4/interp"> 1 </int> - <dictionary name="tracks/4/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="2"> 0, 2.5 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <bool> False </bool> - <bool> True </bool> - </array> - </dictionary> - <string name="tracks/5/type"> "value" </string> - <node_path name="tracks/5/path"> "copyright:visibility/opacity" </node_path> - <int name="tracks/5/interp"> 1 </int> - <dictionary name="tracks/5/keys" shared="false"> - <string> "cont" </string> - <bool> True </bool> - <string> "times" </string> - <real_array len="2"> 2.5, 2.8 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <real> 0 </real> - <real> 1 </real> - </array> - </dictionary> - - </resource> - <resource type="Animation" path="local://3"> - <string name="resource/name"> "loop" </string> - <real name="length"> 0.6 </real> - <bool name="loop"> True </bool> - <real name="step"> 0.1 </real> - <string name="tracks/0/type"> "value" </string> - <node_path name="tracks/0/path"> "logo:frame" </node_path> - <int name="tracks/0/interp"> 1 </int> - <dictionary name="tracks/0/keys" shared="false"> - <string> "cont" </string> - <bool> False </bool> - <string> "times" </string> - <real_array len="2"> 0, 0.3 </real_array> - <string> "transitions" </string> - <real_array len="2"> 1, 1 </real_array> - <string> "values" </string> - <array len="2" shared="false"> - <int> 8 </int> - <int> 7 </int> - </array> - </dictionary> - - </resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 0 </int> - <string> "conns" </string> - <int_array len="0"> </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="51"> - <string> "splash" </string> - <string> "anchor/right" </string> - <string> "anchor/bottom" </string> - <string> "focus/ignore_mouse" </string> - <string> "focus/stop_mouse" </string> - <string> "size_flags/horizontal" </string> - <string> "size_flags/vertical" </string> - <string> "__meta__" </string> - <string> "Control" </string> - <string> "bg" </string> - <string> "margin/right" </string> - <string> "margin/bottom" </string> - <string> "1" </string> - <string> "texture" </string> - <string> "TextureFrame" </string> - <string> "2" </string> - <string> "margin/left" </string> - <string> "scroll" </string> - <string> "playback/process_mode" </string> - <string> "playback/default_blend_time" </string> - <string> "root/root" </string> - <string> "anims/scroll" </string> - <string> "playback/active" </string> - <string> "playback/speed" </string> - <string> "blend_times" </string> - <string> "autoplay" </string> - <string> "AnimationPlayer" </string> - <string> "layer2" </string> - <string> "margin/top" </string> - <string> "layer1" </string> - <string> "logo" </string> - <string> "transform/pos" </string> - <string> "frames" </string> - <string> "frame" </string> - <string> "AnimatedSprite" </string> - <string> "start" </string> - <string> "toggle_mode" </string> - <string> "textures/normal" </string> - <string> "textures/pressed" </string> - <string> "TextureButton" </string> - <string> "copyright" </string> - <string> "custom_fonts/font" </string> - <string> "text" </string> - <string> "percent_visible" </string> - <string> "lines_skipped" </string> - <string> "max_lines_visible" </string> - <string> "Label" </string> - <string> "intro" </string> - <string> "anims/intro" </string> - <string> "next/intro" </string> - <string> "anims/loop" </string> - </string_array> - <string> "node_count" </string> - <int> 17 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="387"> -1, -1, 8, 0, -1, 7, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 3, 7, 4, 0, 0, 0, 8, 9, -1, 6, 10, 5, 11, 5, 3, 1, 4, 2, 5, 3, 6, 3, 0, 1, 0, 14, 12, -1, 7, 10, 5, 11, 5, 3, 2, 4, 2, 5, 3, 6, 3, 13, 6, 0, 1, 0, 14, 15, -1, 8, 16, 7, 10, 8, 11, 9, 3, 2, 4, 2, 5, 3, 6, 3, 13, 6, 0, 1, 0, 26, 17, -1, 8, 18, 0, 19, 10, 20, 11, 21, 12, 22, 2, 23, 13, 24, 14, 25, 15, 0, 0, 0, 8, 27, -1, 6, 10, 5, 11, 5, 3, 1, 4, 2, 5, 3, 6, 3, 0, 5, 0, 14, 12, -1, 8, 28, 16, 10, 7, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 18, 0, 5, 0, 14, 15, -1, 9, 16, 7, 28, 16, 10, 8, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 18, 0, 5, 0, 26, 17, -1, 8, 18, 0, 19, 10, 20, 11, 21, 12, 22, 2, 23, 19, 24, 14, 25, 15, 0, 0, 0, 8, 29, -1, 6, 10, 5, 11, 5, 3, 1, 4, 2, 5, 3, 6, 3, 0, 9, 0, 14, 12, -1, 8, 28, 20, 10, 7, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 21, 0, 9, 0, 14, 15, -1, 9, 16, 7, 28, 20, 10, 8, 11, 17, 3, 2, 4, 2, 5, 3, 6, 3, 13, 21, 0, 9, 0, 26, 17, -1, 8, 18, 0, 19, 10, 20, 11, 21, 12, 22, 2, 23, 22, 24, 14, 25, 15, 0, 0, 0, 34, 30, -1, 3, 31, 23, 32, 24, 33, 25, 0, 0, 0, 39, 35, -1, 11, 16, 26, 28, 27, 10, 28, 11, 29, 3, 1, 4, 2, 5, 3, 6, 3, 36, 1, 37, 30, 38, 31, 0, 0, 0, 46, 40, -1, 12, 16, 32, 28, 33, 10, 34, 11, 35, 3, 2, 4, 2, 5, 3, 41, 36, 42, 37, 43, 38, 44, 39, 45, 40, 0, 0, 0, 26, 47, -1, 10, 18, 0, 19, 10, 20, 11, 48, 41, 49, 42, 50, 43, 22, 2, 23, 38, 24, 14, 25, 44, 0 </int_array> - <string> "variants" </string> - <array len="45" shared="false"> - <int> 1 </int> - <bool> False </bool> - <bool> True </bool> - <int> 2 </int> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -301.424, -450.503 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 0.54036 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <real> 40 </real> - <resource external="0"> </resource> - <real> 800 </real> - <real> 1600 </real> - <real> 450 </real> - <real> 0 </real> - <node_path> ".." </node_path> - <resource resource_type="Animation" path="local://1"> </resource> - <real> 0.04 </real> - <array len="0" shared="false"> - </array> - <string> "scroll" </string> - <real> 194 </real> - <real> 456 </real> - <resource external="1"> </resource> - <real> 0.1 </real> - <real> 212 </real> - <resource external="2"> </resource> - <real> 0.2 </real> - <vector2> 412, 171 </vector2> - <resource resource_type="SpriteFrames" path="local://2"> </resource> - <int> 8 </int> - <real> 345 </real> - <real> 369 </real> - <real> 494 </real> - <real> 443 </real> - <resource external="12"> </resource> - <resource external="13"> </resource> - <real> 658 </real> - <real> 417 </real> - <real> 776 </real> - <real> 434 </real> - <resource external="14"> </resource> - <string> "(c) 1994 SOGA" </string> - <real> 1 </real> - <int> 0 </int> - <int> -1 </int> - <resource resource_type="Animation" path="local://4"> </resource> - <string> "loop" </string> - <resource resource_type="Animation" path="local://3"> </resource> - <string> "intro" </string> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/sprite_shaders/engine.cfg b/demos/2d/sprite_shaders/engine.cfg index 17bdada188..fa17a2e800 100644 --- a/demos/2d/sprite_shaders/engine.cfg +++ b/demos/2d/sprite_shaders/engine.cfg @@ -1,5 +1,5 @@ [application] name="2D Shaders for Sprites" -main_scene="res://sprite_shaders.scn" +main_scene="res://sprite_shaders.tscn" icon="res://icon.png" diff --git a/demos/2d/sprite_shaders/sprite_shaders.scn b/demos/2d/sprite_shaders/sprite_shaders.scn Binary files differdeleted file mode 100644 index b6060f8eaa..0000000000 --- a/demos/2d/sprite_shaders/sprite_shaders.scn +++ /dev/null diff --git a/demos/2d/sprite_shaders/sprite_shaders.tscn b/demos/2d/sprite_shaders/sprite_shaders.tscn new file mode 100644 index 0000000000..feb6003890 --- /dev/null +++ b/demos/2d/sprite_shaders/sprite_shaders.tscn @@ -0,0 +1,163 @@ +[gd_scene load_steps=20 format=1] + +[ext_resource path="res://cubio.png" type="Texture" id=1] + +[sub_resource type="CanvasItemShader" id=1] + +_code = { "fragment":"uniform float outline_width=2.0;\nuniform color outline_color=vec4(0,0,0,1);\n\nvec4 col = tex(TEXTURE,UV);\nvec2 ps = TEXTURE_PIXEL_SIZE;\nfloat a;\nfloat maxa=col.a;\nfloat mina=col.a;\na=tex(TEXTURE,UV+vec2(0,-outline_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(0,outline_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(-outline_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(outline_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\n\nCOLOR=mix(col,outline_color,maxa-mina);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=2] + +shader/shader = SubResource( 1 ) +shader/shading_mode = 0 +shader_param/outline_width = 2.0 +shader_param/outline_color = Color( 0, 0, 0, 1 ) + +[sub_resource type="CanvasItemShader" id=3] + +_code = { "fragment":"//this shader only works properly with premultiplied alpha blend mode\nuniform float aura_width=2.0;\nuniform color aura_color=vec4(0.4,0.7,0.3,1);\n\nvec4 col = tex(TEXTURE,UV);\nvec2 ps = TEXTURE_PIXEL_SIZE;\nfloat a;\nfloat maxa=col.a;\nfloat mina=col.a;\na=tex(TEXTURE,UV+vec2(0,-aura_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(0,aura_width)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(-aura_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\na=tex(TEXTURE,UV+vec2(aura_width,0)*ps).a;\nmaxa=max(a,maxa); \nmina=min(a,mina);\ncol.rgb*=col.a;\nCOLOR=col;//mix(col,aura_color,maxa-mina);\nfloat auraa=(maxa-mina);\n\nCOLOR.rgb+=aura_color.rgb*(maxa-mina);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=4] + +shader/shader = SubResource( 3 ) +shader/shading_mode = 0 +shader_param/aura_width = 2.0 +shader_param/aura_color = Color( 0.4, 0.7, 0.3, 1 ) + +[sub_resource type="CanvasItemShader" id=5] + +_code = { "fragment":"uniform float radius=2.0;\n\nvec4 col = tex(TEXTURE,UV);\nvec2 ps = TEXTURE_PIXEL_SIZE;\ncol+=tex(TEXTURE,UV+vec2(0,-radius)*ps);\ncol+=tex(TEXTURE,UV+vec2(0,radius)*ps);\ncol+=tex(TEXTURE,UV+vec2(-radius,0)*ps);\ncol+=tex(TEXTURE,UV+vec2(radius,0)*ps);\ncol/=5.0;\nCOLOR=col;", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=6] + +shader/shader = SubResource( 5 ) +shader/shading_mode = 0 +shader_param/radius = 4.0 + +[sub_resource type="CanvasItemShader" id=7] + +_code = { "fragment":"uniform float fattyness=2.0;\n\nvec2 ruv=(UV-vec2(0.5,0.5));\nfloat len = length(ruv);\nvec2 dir = normalize(ruv);\nlen=pow(len*2.0,fattyness)*0.5;\nruv=len*dir;\nvec4 col = tex(TEXTURE,ruv+vec2(0.5,0.5));\nCOLOR=col;", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=8] + +shader/shader = SubResource( 7 ) +shader/shading_mode = 0 +shader_param/fattyness = 2.0 + +[sub_resource type="CanvasItemShader" id=9] + +_code = { "fragment":"\nuniform float radius=5.0;\nuniform color modulate=color(0,0,0,0.7);\n\nvec2 ps = TEXTURE_PIXEL_SIZE;\n\nvec4 shadow = tex(TEXTURE,UV+vec2(-radius,-radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(-radius,0)*ps);\nshadow += tex(TEXTURE,UV+vec2(-radius,radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(0,-radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(0,radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(radius,-radius)*ps);\nshadow += tex(TEXTURE,UV+vec2(radius,0)*ps);\nshadow += tex(TEXTURE,UV+vec2(radius,radius)*ps);\nshadow/=8;\nshadow*=modulate;\n\nvec4 col = tex(TEXTURE,UV);\nCOLOR=mix(shadow,col,col.a);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=10] + +shader/shader = SubResource( 9 ) +shader/shading_mode = 0 +shader_param/radius = 5.0 +shader_param/modulate = Color( 0, 0, 0, 0.7 ) + +[sub_resource type="CanvasItemShader" id=11] + +_code = { "fragment":"\nuniform vec2 offset=vec2(8,8);\nuniform color modulate=color(0.5,0,0.1,0.5);\n\nvec2 ps = TEXTURE_PIXEL_SIZE;\n\nvec4 shadow = vec4(modulate.rgb,tex(TEXTURE,UV-offset*ps).a*modulate.a);\nvec4 col = tex(TEXTURE,UV);\n\nCOLOR=mix(shadow,col,col.a);", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=12] + +shader/shader = SubResource( 11 ) +shader/shading_mode = 0 +shader_param/offset = Vector2( 8, 8 ) +shader_param/modulate = Color( 0.5, 0, 0.1, 0.5 ) + +[sub_resource type="CanvasItemShader" id=13] + +_code = { "fragment":"\nuniform color modulate=color(0.2,0.4,1.0,0.8);\nCOLOR = vec4(modulate.rgb,tex(TEXTURE,UV).a*modulate.a);\n\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=14] + +shader/shader = SubResource( 13 ) +shader/shading_mode = 0 +shader_param/modulate = Color( 0.013125, 0.194829, 0.406815, 0.818237 ) + +[sub_resource type="CanvasItemShader" id=15] + +_code = { "fragment":"\nuniform float radius=2.0;\nuniform float amount=0.6;\nfloat r = radius;\nvec2 ps = TEXTURE_PIXEL_SIZE;\n\nvec4 col = tex(TEXTURE,UV);\n\nvec4 glow = col;\nglow += tex(TEXTURE,UV+vec2(-r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(r,r)*ps);\nr*=2.0;\nglow += tex(TEXTURE,UV+vec2(-r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(-r,r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(0,r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,-r)*ps);\nglow += tex(TEXTURE,UV+vec2(r,0)*ps);\nglow += tex(TEXTURE,UV+vec2(r,r)*ps);\n\nglow/=17.0;\nglow*=amount;\ncol.rgb*=col.a;\nCOLOR=glow+col;", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=16] + +shader/shader = SubResource( 15 ) +shader/shading_mode = 0 +shader_param/radius = 2.0 +shader_param/amount = 0.5 + +[sub_resource type="CanvasItemShader" id=17] + +_code = { "fragment":"\nuniform float amount = 20;\nvec2 uv = UV*0.05;\nfloat a = fract(sin(dot(UV ,vec2(12.9898,78.233))) * 438.5453);\nvec4 col = tex(TEXTURE,UV);\ncol.a*=pow(a,amount);\nCOLOR = col;\n\n\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=18] + +shader/shader = SubResource( 17 ) +shader/shading_mode = 0 +shader_param/amount = 2.0 + +[node name="shaders" type="Node2D"] + +[node name="normal" type="Sprite" parent="."] + +transform/pos = Vector2( 95.4559, 131.272 ) +texture = ExtResource( 1 ) + +[node name="outline" type="Sprite" parent="."] + +material/material = SubResource( 2 ) +transform/pos = Vector2( 246.456, 128.272 ) +texture = ExtResource( 1 ) + +[node name="aura" type="Sprite" parent="."] + +visibility/blend_mode = 4 +material/material = SubResource( 4 ) +transform/pos = Vector2( 398.185, 130.624 ) +texture = ExtResource( 1 ) + +[node name="blur" type="Sprite" parent="."] + +material/material = SubResource( 6 ) +transform/pos = Vector2( 548.503, 123.04 ) +texture = ExtResource( 1 ) + +[node name="fatty" type="Sprite" parent="."] + +material/material = SubResource( 8 ) +transform/pos = Vector2( 696.518, 125.393 ) +texture = ExtResource( 1 ) + +[node name="dropshadow" type="Sprite" parent="."] + +material/material = SubResource( 10 ) +transform/pos = Vector2( 97.4079, 389.709 ) +texture = ExtResource( 1 ) + +[node name="offsetshadow" type="Sprite" parent="."] + +material/material = SubResource( 12 ) +transform/pos = Vector2( 254.821, 384.238 ) +texture = ExtResource( 1 ) + +[node name="silouette" type="Sprite" parent="."] + +material/material = SubResource( 14 ) +transform/pos = Vector2( 418.854, 387.184 ) +texture = ExtResource( 1 ) + +[node name="glow" type="Sprite" parent="."] + +visibility/blend_mode = 4 +material/material = SubResource( 16 ) +transform/pos = Vector2( 563.75, 385.42 ) +texture = ExtResource( 1 ) + +[node name="dissintegrate" type="Sprite" parent="."] + +material/material = SubResource( 18 ) +transform/pos = Vector2( 708.613, 385.444 ) +texture = ExtResource( 1 ) + + diff --git a/demos/2d/tetris/engine.cfg b/demos/2d/tetris/engine.cfg index b80a736c39..db20f0b888 100644 --- a/demos/2d/tetris/engine.cfg +++ b/demos/2d/tetris/engine.cfg @@ -1,7 +1,7 @@ [application] name="Tetris" -main_scene="res://tetris.xml" +main_scene="res://tetris.tscn" icon="res://tetris.png" [display] diff --git a/demos/2d/tetris/grid.tscn b/demos/2d/tetris/grid.tscn new file mode 100644 index 0000000000..9df85e3817 --- /dev/null +++ b/demos/2d/tetris/grid.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=2 format=1] + +[ext_resource path="res://grid.gd" type="Script" id=1] + +[node name="Grid" type="Control"] + +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 = 40.0 +margin/bottom = 40.0 +script/script = ExtResource( 1 ) + +[node name="timer" type="Timer" parent="."] + +process_mode = 1 +wait_time = 1.0 +one_shot = false +autostart = false + +[node name="gameover" type="Label" parent="."] + +anchor/right = 1 +anchor/bottom = 1 +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 0.0 +margin/top = 0.0 +margin/right = 0.0 +margin/bottom = 0.0 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_colors/font_color_shadow = Color( 0, 0, 0, 1 ) +custom_constants/shadow_offset_x = 1 +custom_constants/shadow_offset_y = 1 +align = 1 +valign = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[connection signal="timeout" from="timer" to="." method="piece_move_down"] + + diff --git a/demos/2d/tetris/grid.xml b/demos/2d/tetris/grid.xml deleted file mode 100644 index 49ad4ccc41..0000000000 --- a/demos/2d/tetris/grid.xml +++ /dev/null @@ -1,209 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="2" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://grid.gd" type="Script" index="0"></ext_resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 1 </int> - <string> "conns" </string> - <int_array len="6"> 1, 0, 30, 29, 2, 0 </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="31"> - <string> "Grid" </string> - <string> "margin/right" </string> - <string> "margin/bottom" </string> - <string> "focus/ignore_mouse" </string> - <string> "focus/stop_mouse" </string> - <string> "size_flags/horizontal" </string> - <string> "size_flags/vertical" </string> - <string> "script/script" </string> - <string> "__meta__" </string> - <string> "Control" </string> - <string> "timer" </string> - <string> "process_mode" </string> - <string> "wait_time" </string> - <string> "one_shot" </string> - <string> "autostart" </string> - <string> "Timer" </string> - <string> "gameover" </string> - <string> "anchor/right" </string> - <string> "anchor/bottom" </string> - <string> "custom_colors/font_color" </string> - <string> "custom_colors/font_color_shadow" </string> - <string> "custom_constants/shadow_offset_x" </string> - <string> "custom_constants/shadow_offset_y" </string> - <string> "align" </string> - <string> "valign" </string> - <string> "percent_visible" </string> - <string> "lines_skipped" </string> - <string> "max_lines_visible" </string> - <string> "Label" </string> - <string> "piece_move_down" </string> - <string> "timeout" </string> - </string_array> - <string> "node_count" </string> - <int> 3 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="73"> -1, -1, 9, 0, -1, 8, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 3, 7, 4, 8, 5, 0, 0, 0, 15, 10, -1, 4, 11, 6, 12, 7, 13, 1, 14, 1, 0, 0, 0, 28, 16, -1, 14, 17, 6, 18, 6, 3, 2, 4, 2, 5, 3, 19, 8, 20, 9, 21, 6, 22, 6, 23, 6, 24, 6, 25, 7, 26, 10, 27, 11, 0 </int_array> - <string> "variants" </string> - <array len="12" shared="false"> - <real> 40 </real> - <bool> False </bool> - <bool> True </bool> - <int> 2 </int> - <resource external="0"> </resource> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -229.129, -80 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <int> 1 </int> - <real> 1 </real> - <color> 1, 1, 1, 1 </color> - <color> 0, 0, 0, 1 </color> - <int> 0 </int> - <int> -1 </int> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/tetris/tetris.tscn b/demos/2d/tetris/tetris.tscn new file mode 100644 index 0000000000..de81044c22 --- /dev/null +++ b/demos/2d/tetris/tetris.tscn @@ -0,0 +1,67 @@ +[gd_scene load_steps=2 format=1] + +[ext_resource path="res://grid.tscn" type="PackedScene" id=1] + +[node name="Tetris" type="Panel"] + +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 = 400.0 +margin/bottom = 400.0 + +[node name="Grid" parent="." instance=ExtResource( 1 )] + +margin/left = 40.0 +margin/top = 35.0 +margin/right = 80.0 +margin/bottom = 75.0 + +[node name="Label" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 243.0 +margin/top = 36.0 +margin/right = 283.0 +margin/bottom = 49.0 +text = "Score:" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="score" type="Label" parent="."] + +focus/ignore_mouse = true +focus/stop_mouse = true +size_flags/horizontal = 2 +margin/left = 252.0 +margin/top = 55.0 +margin/right = 293.0 +margin/bottom = 68.0 +text = "0" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="restart" type="Button" parent="."] + +focus/ignore_mouse = false +focus/stop_mouse = true +size_flags/horizontal = 2 +size_flags/vertical = 2 +margin/left = 243.0 +margin/top = 292.0 +margin/right = 303.0 +margin/bottom = 311.0 +toggle_mode = false +text = "Restart" +flat = false + +[connection signal="pressed" from="restart" to="Grid" method="restart_pressed"] + + diff --git a/demos/2d/tetris/tetris.xml b/demos/2d/tetris/tetris.xml deleted file mode 100644 index a8e47a8ae4..0000000000 --- a/demos/2d/tetris/tetris.xml +++ /dev/null @@ -1,217 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<resource_file type="PackedScene" subresource_count="2" version="2.0" version_name="Godot Engine v2.0.alpha.custom_build"> - <ext_resource path="res://grid.xml" type="PackedScene" index="0"></ext_resource> - <main_resource> - <dictionary name="_bundled" shared="false"> - <string> "conn_count" </string> - <int> 1 </int> - <string> "conns" </string> - <int_array len="6"> 4, 1, 23, 22, 2, 0 </int_array> - <string> "editable_instances" </string> - <array len="0" shared="false"> - </array> - <string> "names" </string> - <string_array len="24"> - <string> "Tetris" </string> - <string> "margin/right" </string> - <string> "margin/bottom" </string> - <string> "focus/ignore_mouse" </string> - <string> "focus/stop_mouse" </string> - <string> "size_flags/horizontal" </string> - <string> "size_flags/vertical" </string> - <string> "__meta__" </string> - <string> "Panel" </string> - <string> "Grid" </string> - <string> "margin/left" </string> - <string> "margin/top" </string> - <string> "Label" </string> - <string> "text" </string> - <string> "percent_visible" </string> - <string> "lines_skipped" </string> - <string> "max_lines_visible" </string> - <string> "score" </string> - <string> "restart" </string> - <string> "toggle_mode" </string> - <string> "flat" </string> - <string> "Button" </string> - <string> "restart_pressed" </string> - <string> "pressed" </string> - </string_array> - <string> "node_count" </string> - <int> 5 </int> - <string> "node_paths" </string> - <array len="0" shared="false"> - </array> - <string> "nodes" </string> - <int_array len="123"> -1, -1, 8, 0, -1, 7, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 3, 7, 4, 0, 0, 0, 2147483647, 9, 5, 4, 10, 6, 11, 7, 1, 8, 2, 9, 0, 0, 0, 12, 12, -1, 11, 10, 10, 11, 11, 1, 12, 2, 13, 3, 2, 4, 2, 5, 3, 13, 14, 14, 15, 15, 16, 16, 17, 0, 0, 0, 12, 17, -1, 11, 10, 18, 11, 19, 1, 20, 2, 21, 3, 2, 4, 2, 5, 3, 13, 22, 14, 15, 15, 16, 16, 17, 0, 0, 0, 21, 18, -1, 11, 10, 10, 11, 23, 1, 24, 2, 25, 3, 1, 4, 2, 5, 3, 6, 3, 19, 1, 13, 26, 20, 1, 0 </int_array> - <string> "variants" </string> - <array len="27" shared="false"> - <real> 400 </real> - <bool> False </bool> - <bool> True </bool> - <int> 2 </int> - <dictionary shared="false"> - <string> "__editor_plugin_screen__" </string> - <string> "2D" </string> - <string> "__editor_plugin_states__" </string> - <dictionary shared="false"> - <string> "2D" </string> - <dictionary shared="false"> - <string> "ofs" </string> - <vector2> -229.129, -54.344 </vector2> - <string> "snap_grid" </string> - <bool> False </bool> - <string> "snap_offset" </string> - <vector2> 0, 0 </vector2> - <string> "snap_pixel" </string> - <bool> False </bool> - <string> "snap_relative" </string> - <bool> False </bool> - <string> "snap_rotation" </string> - <bool> False </bool> - <string> "snap_rotation_offset" </string> - <real> 0 </real> - <string> "snap_rotation_step" </string> - <real> 0.261799 </real> - <string> "snap_show_grid" </string> - <bool> False </bool> - <string> "snap_step" </string> - <vector2> 10, 10 </vector2> - <string> "zoom" </string> - <real> 1.360374 </real> - </dictionary> - <string> "3D" </string> - <dictionary shared="false"> - <string> "ambient_light_color" </string> - <color> 0.15, 0.15, 0.15, 1 </color> - <string> "default_light" </string> - <bool> True </bool> - <string> "default_srgb" </string> - <bool> False </bool> - <string> "deflight_rot_x" </string> - <real> 0.942478 </real> - <string> "deflight_rot_y" </string> - <real> 0.628319 </real> - <string> "fov" </string> - <real> 45 </real> - <string> "show_grid" </string> - <bool> True </bool> - <string> "show_origin" </string> - <bool> True </bool> - <string> "viewport_mode" </string> - <int> 1 </int> - <string> "viewports" </string> - <array len="4" shared="false"> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> True </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - <dictionary shared="false"> - <string> "distance" </string> - <real> 4 </real> - <string> "listener" </string> - <bool> False </bool> - <string> "pos" </string> - <vector3> 0, 0, 0 </vector3> - <string> "use_environment" </string> - <bool> False </bool> - <string> "use_orthogonal" </string> - <bool> False </bool> - <string> "x_rot" </string> - <real> 0 </real> - <string> "y_rot" </string> - <real> 0 </real> - </dictionary> - </array> - <string> "zfar" </string> - <real> 500 </real> - <string> "znear" </string> - <real> 0.1 </real> - </dictionary> - <string> "Anim" </string> - <dictionary shared="false"> - <string> "visible" </string> - <bool> False </bool> - </dictionary> - </dictionary> - <string> "__editor_run_settings__" </string> - <dictionary shared="false"> - <string> "custom_args" </string> - <string> "-l $scene" </string> - <string> "run_mode" </string> - <int> 0 </int> - </dictionary> - </dictionary> - <resource external="0"> </resource> - <real> 40 </real> - <real> 35 </real> - <real> 80 </real> - <real> 75 </real> - <real> 243 </real> - <real> 36 </real> - <real> 283 </real> - <real> 49 </real> - <string> "Score:" </string> - <real> 1 </real> - <int> 0 </int> - <int> -1 </int> - <real> 252 </real> - <real> 55 </real> - <real> 293 </real> - <real> 68 </real> - <string> "0" </string> - <real> 292 </real> - <real> 303 </real> - <real> 311 </real> - <string> "Restart" </string> - </array> - <string> "version" </string> - <int> 2 </int> - </dictionary> - - </main_resource> -</resource_file>
\ No newline at end of file diff --git a/demos/2d/texscreen/bubbles.gd b/demos/2d/texscreen/bubbles.gd index 400da1a205..c0c7d892e6 100644 --- a/demos/2d/texscreen/bubbles.gd +++ b/demos/2d/texscreen/bubbles.gd @@ -7,5 +7,5 @@ const MAX_BUBBLES = 10 func _ready(): for i in range(MAX_BUBBLES): - var bubble = preload("res://lens.scn").instance() + var bubble = preload("res://lens.tscn").instance() add_child(bubble) diff --git a/demos/2d/texscreen/bubbles.scn b/demos/2d/texscreen/bubbles.scn Binary files differdeleted file mode 100644 index 8509b3811c..0000000000 --- a/demos/2d/texscreen/bubbles.scn +++ /dev/null diff --git a/demos/2d/texscreen/bubbles.tscn b/demos/2d/texscreen/bubbles.tscn new file mode 100644 index 0000000000..72b7874b92 --- /dev/null +++ b/demos/2d/texscreen/bubbles.tscn @@ -0,0 +1,32 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://bubbles.gd" type="Script" id=1] +[ext_resource path="res://burano.png" type="Texture" id=2] + +[node name="texscreen_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 +script/script = ExtResource( 1 ) + +[node name="burano" type="TextureFrame" parent="."] + +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( 2 ) + + diff --git a/demos/2d/texscreen/engine.cfg b/demos/2d/texscreen/engine.cfg index 92d0e98d5b..0a3f084270 100644 --- a/demos/2d/texscreen/engine.cfg +++ b/demos/2d/texscreen/engine.cfg @@ -1,7 +1,7 @@ [application] name="Glass Bubbles (Texscreen)" -main_scene="res://bubbles.scn" +main_scene="res://bubbles.tscn" icon="res://icon.png" [display] diff --git a/demos/2d/texscreen/lens.scn b/demos/2d/texscreen/lens.scn Binary files differdeleted file mode 100644 index 530a0b1eb0..0000000000 --- a/demos/2d/texscreen/lens.scn +++ /dev/null diff --git a/demos/2d/texscreen/lens.tscn b/demos/2d/texscreen/lens.tscn new file mode 100644 index 0000000000..7f449e46ae --- /dev/null +++ b/demos/2d/texscreen/lens.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=5 format=1] + +[ext_resource path="res://lens.gd" type="Script" id=1] +[ext_resource path="res://bubble.png" type="Texture" id=2] + +[sub_resource type="CanvasItemShader" id=1] + +_code = { "fragment":"vec4 normal = tex(TEXTURE,UV);\nvec2 offset = normal.xy * 2.0 - vec2(1.0);\nCOLOR.rgb=texscreen(SCREEN_UV+offset*0.03);\nCOLOR.a=normal.a;\nCOLOR.rgb*=vec3(1.0,0.8,0.7);\n", "fragment_ofs":0, "light":"", "light_ofs":0, "vertex":"", "vertex_ofs":0 } + +[sub_resource type="CanvasItemMaterial" id=2] + +shader/shader = SubResource( 1 ) +shader/shading_mode = 0 + +[node name="glass" type="BackBufferCopy"] + +transform/pos = Vector2( 482.908, 346.807 ) +transform/scale = Vector2( 1.31289, 1.34009 ) +copy_mode = 1 +rect = Rect2( -100, -100, 200, 200 ) +script/script = ExtResource( 1 ) + +[node name="lens" type="Sprite" parent="."] + +material/material = SubResource( 2 ) +transform/pos = Vector2( 1.6427, -2.90363 ) +texture = ExtResource( 2 ) + + diff --git a/demos/gui/input_mapping/controls.gd b/demos/gui/input_mapping/controls.gd index 3cee6e6871..f337353796 100644 --- a/demos/gui/input_mapping/controls.gd +++ b/demos/gui/input_mapping/controls.gd @@ -51,4 +51,6 @@ func _ready(): # We assume that the key binding that we want is the first one (0), if there are several input_event = InputMap.get_action_list(action)[0] # See note at the beginning of the script - get_node("bindings").get_node(action).get_node("Button").set_text(OS.get_scancode_string(input_event.scancode)) + var button = get_node("bindings").get_node(action).get_node("Button") + button.set_text(OS.get_scancode_string(input_event.scancode)) + button.connect("pressed", self, "wait_for_input", [action]) diff --git a/demos/gui/input_mapping/controls.scn b/demos/gui/input_mapping/controls.scn Binary files differindex 98cbbca464..7894212fb7 100644 --- a/demos/gui/input_mapping/controls.scn +++ b/demos/gui/input_mapping/controls.scn diff --git a/doc/base/classes.xml b/doc/base/classes.xml index 0a4ed7c845..b6457f0d89 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -19650,6 +19650,7 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8) <argument index="2" name="owned" type="bool" default="true"> </argument> <description> + Find a descendant of this node whose name matches [code]mask[/code] as in [method String.match] (i.e. case sensitive, but '*' matches zero or more characters and '?' matches any single character except '.'). Note that it does not match against the full path, just against individual node names. </description> </method> <method name="has_node_and_resource" qualifiers="const"> @@ -34891,7 +34892,7 @@ This method controls whether the position between two cached points is interpola <argument index="0" name="expr" type="String"> </argument> <description> - Do a simple expression matching, using ? and * wildcards. + Do a simple expression match, where '*' matches zero or more arbitrary characters and '?' matches any single character except '.'. </description> </method> <method name="matchn"> @@ -34900,7 +34901,7 @@ This method controls whether the position between two cached points is interpola <argument index="0" name="expr" type="String"> </argument> <description> - Do a simple, case insensitive, expression matching, using ? and * wildcards. + Do a simple case insensitive expression match, using ? and * wildcards (see [method match]). </description> </method> <method name="md5_buffer"> diff --git a/doc/tools/doc_merge.py b/doc/tools/doc_merge.py index 6cc7019324..b55902ce4f 100644 --- a/doc/tools/doc_merge.py +++ b/doc/tools/doc_merge.py @@ -30,7 +30,7 @@ def escape(ret): ret=ret.replace("'","'"); ret=ret.replace("\"","""); return ret - + def inc_tab(): global tab @@ -50,34 +50,34 @@ def get_tag(node,name): return tag def find_method_descr(old_class,name): - - methods = old_class.find("methods") + + methods = old_class.find("methods") if(methods!=None and len(list(methods))>0): for m in list(methods): if (m.attrib["name"]==name): description=m.find("description") if (description!=None and description.text.strip()!=""): return description.text - + return None def find_signal_descr(old_class,name): - - signals = old_class.find("signals") + + signals = old_class.find("signals") if(signals!=None and len(list(signals))>0): for m in list(signals): if (m.attrib["name"]==name): description=m.find("description") if (description!=None and description.text.strip()!=""): return description.text - + return None def find_constant_descr(old_class,name): if (old_class==None): - return None - constants = old_class.find("constants") + return None + constants = old_class.find("constants") if(constants!=None and len(list(constants))>0): for m in list(constants): if (m.attrib["name"]==name): @@ -98,31 +98,31 @@ def write_class(c): inherits=get_tag(c,"inherits") write_string(f,'<class name="'+class_name+'" '+category+inherits+'>') inc_tab() - + write_string(f,"<brief_description>") if (old_class!=None): old_brief_descr=old_class.find("brief_description") if (old_brief_descr!=None): write_string(f,escape(old_brief_descr.text.strip())) - - + + write_string(f,"</brief_description>") - + write_string(f,"<description>") if (old_class!=None): old_descr=old_class.find("description") if (old_descr!=None): write_string(f,escape(old_descr.text.strip())) - + write_string(f,"</description>") - methods = c.find("methods") + methods = c.find("methods") if(methods!=None and len(list(methods))>0): write_string(f,"<methods>") inc_tab() - + for m in list(methods): qualifiers=get_tag(m,"qualifiers") @@ -135,7 +135,7 @@ def write_class(c): write_string(f,'<return'+typ+'>'); write_string(f,'</return>'); elif (a.tag=="argument"): - + default=get_tag(a,"default") write_string(f,'<argument index="'+a.attrib["index"]+'" name="'+escape(a.attrib["name"])+'" type="'+a.attrib["type"]+'"' +default+'>'); @@ -146,20 +146,20 @@ def write_class(c): old_method_descr=find_method_descr(old_class,m.attrib["name"]) if (old_method_descr): write_string(f,escape(escape(old_method_descr.strip()))) - + write_string(f,'</description>'); - dec_tab() + dec_tab() write_string(f,"</method>") dec_tab() write_string(f,"</methods>") - signals = c.find("signals") + signals = c.find("signals") if(signals!=None and len(list(signals))>0): write_string(f,"<signals>") inc_tab() - - for m in list(signals): + + for m in list(signals): write_string(f,'<signal name="'+escape(m.attrib["name"])+'">') inc_tab() @@ -176,18 +176,18 @@ def write_class(c): if (old_signal_descr): write_string(f,escape(old_signal_descr.strip())) write_string(f,'</description>'); - dec_tab() + dec_tab() write_string(f,"</signal>") dec_tab() write_string(f,"</signals>") - constants = c.find("constants") + constants = c.find("constants") if(constants!=None and len(list(constants))>0): write_string(f,"<constants>") inc_tab() - - for m in list(constants): + + for m in list(constants): write_string(f,'<constant name="'+escape(m.attrib["name"])+'" value="'+m.attrib["value"]+'">') old_constant_descr=find_constant_descr(old_class,m.attrib["name"]) diff --git a/doc/tools/main.css b/doc/tools/main.css index a76e6bbed8..5eb3df2159 100644 --- a/doc/tools/main.css +++ b/doc/tools/main.css @@ -29,12 +29,12 @@ div.method_description { list.inh_class_list { margin-left: 30px; - + } div.inh_class_list { margin-left: 30px; - + } div.method_doc div.method { diff --git a/doc/tools/makedoku.py b/doc/tools/makedoku.py index 1ab16841b1..97819d7da3 100644 --- a/doc/tools/makedoku.py +++ b/doc/tools/makedoku.py @@ -19,14 +19,14 @@ def validate_tag(elem,tag): if (elem.tag != tag): print("Tag mismatch, expected '"+tag+"', got "+elem.tag); sys.exit(255) - + class_names=[] classes={} def make_class_list(class_list,columns): - + f=open("class_list.txt","wb") prev=0 col_max = len(class_list) / columns + 1 @@ -35,13 +35,13 @@ def make_class_list(class_list,columns): row_count = 0 last_initial = "" fit_columns=[] - + for n in range(0,columns): fit_columns+=[[]] indexers=[] last_initial="" - + idx=0 for n in class_list: col = idx/col_max @@ -52,36 +52,36 @@ def make_class_list(class_list,columns): if (n[:1]!=last_initial): indexers+=[n] last_initial=n[:1] - + row_max=0 - + for n in range(0,columns): if (len(fit_columns[n])>row_max): row_max=len(fit_columns[n]) - + for r in range(0,row_max): s="|" - for c in range(0,columns): + for c in range(0,columns): if (r>=len(fit_columns[c])): continue - + classname = fit_columns[c][r] initial=classname[0] if (classname in indexers): s+="**"+initial+"**|" else: s+=" |" - + s+="[["+classname.lower()+"|"+classname+"]]|" - + s+="\n" f.write(s) - - + + def dokuize_text(txt): - + return txt @@ -95,13 +95,13 @@ def dokuize_text(text): endq_pos=text.find("]",pos+1) if (endq_pos==-1): break - + pre_text=text[:pos] post_text=text[endq_pos+1:] tag_text=text[pos+1:endq_pos] if (tag_text in class_names): - tag_text="[["+tag_text.lower()+"|"+tag_text+"]]" + tag_text="[["+tag_text.lower()+"|"+tag_text+"]]" else: #command cmd=tag_text space_pos=tag_text.find(" ") @@ -112,7 +112,7 @@ def dokuize_text(text): elif(cmd.find("method")==0): cmd=tag_text[:space_pos] param=tag_text[space_pos+1:] - + if (param.find(".")!=-1): class_param,method_param=param.split(".") tag_text="[["+class_param.lower()+"#"+method_param+"|"+class_param+'.'+method_param+"]]" @@ -123,7 +123,7 @@ def dokuize_text(text): elif (cmd.find("url=")==0): tag_text="[["+cmd[4:]+"|" elif (cmd=="/url"): - tag_text="]]>" + tag_text="]]>" elif (cmd=="center"): tag_text="" elif (cmd=="/center"): @@ -138,25 +138,25 @@ def dokuize_text(text): tag_text="__" else: tag_text="["+tag_text+"]" - - + + text=pre_text+tag_text+post_text pos=len(pre_text)+len(tag_text) - + #tnode = ET.SubElement(parent,"div") #tnode.text=text return text - - + + def make_type(t): global class_names if (t in class_names): return "[["+t.lower()+"|"+t+"]]" return t - - + + def make_method(f,name,m,declare,event=False): - + s=" * " ret_type="void" args=list(m) @@ -169,66 +169,66 @@ def make_method(f,name,m,declare,event=False): idx=int(a.attrib["index"]) else: continue - + mdata["argidx"].append(idx) mdata[idx]=a - - - if (not event): + + + if (not event): if (-1 in mdata["argidx"]): s+=make_type(mdata[-1].attrib["type"]) - else: + else: s+="void" s+=" " - + if (declare): - + #span.attrib["class"]="funcdecl" #a=ET.SubElement(span,"a") #a.attrib["name"]=name+"_"+m.attrib["name"] #a.text=name+"::"+m.attrib["name"] s+="**"+m.attrib["name"]+"**" - else: + else: s+="[[#"+m.attrib["name"]+"|"+m.attrib["name"]+"]]" - + s+="**(**" argfound=False for a in mdata["argidx"]: arg=mdata[a] if (a<0): continue - if (a>0): + if (a>0): s+=", " else: s+=" " - + s+=make_type(arg.attrib["type"]) if ("name" in arg.attrib): s+=" "+arg.attrib["name"] else: s+=" arg"+str(a) - + if ("default" in arg.attrib): s+="="+arg.attrib["default"] - - + + argfound=True - + if (argfound): s+=" " s+="**)**" - + if ("qualifiers" in m.attrib): s+=" "+m.attrib["qualifiers"] - + f.write(s+"\n") - - + + def make_doku_class(node): name = node.attrib["name"] - + f=open(name.lower()+".txt","wb") f.write("====== "+name+" ======\n") @@ -238,26 +238,26 @@ def make_doku_class(node): f.write("**Inherits:** [["+inh.lower()+"|"+inh+"]]\\\\\n") if ("category" in node.attrib): f.write("**Category:** "+node.attrib["category"].strip()+"\\\\\n") - + briefd = node.find("brief_description") if (briefd!=None): f.write("===== Brief Description ======\n") f.write( dokuize_text(briefd.text.strip())+"\n" ) - - methods = node.find("methods") - + + methods = node.find("methods") + if(methods!=None and len(list(methods))>0): f.write("===== Member Functions ======\n") for m in list(methods): make_method(f,node.attrib["name"],m,False) - - events = node.find("signals") - if(events!=None and len(list(events))>0): + + events = node.find("signals") + if(events!=None and len(list(events))>0): f.write("===== Signals ======\n") for m in list(events): make_method(f,node.attrib["name"],m,True,True) - - members = node.find("members") + + members = node.find("members") if(members!=None and len(list(members))>0): f.write("===== Member Variables ======\n") @@ -269,33 +269,33 @@ def make_doku_class(node): if (c.text.strip()!=""): s+=" - "+c.text.strip() f.write(s+"\n") - - - - constants = node.find("constants") + + + + constants = node.find("constants") if(constants!=None and len(list(constants))>0): f.write("===== Numeric Constants ======\n") for c in list(constants): s = " * " s+="**"+c.attrib["name"]+"**" if ("value" in c.attrib): - s+=" = **"+c.attrib["value"]+"**" + s+=" = **"+c.attrib["value"]+"**" if (c.text.strip()!=""): s+=" - "+c.text.strip() f.write(s+"\n") - - + + descr=node.find("description") if (descr!=None and descr.text.strip()!=""): f.write("===== Description ======\n") f.write(dokuize_text(descr.text.strip())+"\n") - methods = node.find("methods") - + methods = node.find("methods") + if(methods!=None and len(list(methods))>0): f.write("===== Member Function Description ======\n") for m in list(methods): - + d=m.find("description") if (d==None or d.text.strip()==""): continue @@ -304,18 +304,18 @@ def make_doku_class(node): f.write("\\\\\n") f.write(dokuize_text(d.text.strip())) f.write("\n") - - - - + + + + """ div=ET.Element("div") div.attrib["class"]="class"; a=ET.SubElement(div,"a") a.attrib["name"]=node.attrib["name"] - + h3=ET.SubElement(a,"h3") h3.attrib["class"]="title class_title" h3.text=node.attrib["name"] @@ -325,63 +325,63 @@ def make_doku_class(node): div2=ET.SubElement(div,"div") div2.attrib["class"]="description class_description" div2.text=briefd.text - + if ("inherits" in node.attrib): ET.SubElement(div,"br") - div2=ET.SubElement(div,"div") + div2=ET.SubElement(div,"div") div2.attrib["class"]="inheritance"; span=ET.SubElement(div2,"span") span.text="Inherits: " - + make_type(node.attrib["inherits"],div2) - + if ("category" in node.attrib): ET.SubElement(div,"br") - - div3=ET.SubElement(div,"div") + + div3=ET.SubElement(div,"div") div3.attrib["class"]="category"; - + span=ET.SubElement(div3,"span") span.attrib["class"]="category" span.text="Category: " - + a = ET.SubElement(div3,"a") a.attrib["class"]="category_ref" a.text=node.attrib["category"] catname=a.text if (catname.rfind("/")!=-1): - catname=catname[catname.rfind("/"):] + catname=catname[catname.rfind("/"):] catname="CATEGORY_"+catname - + if (single_page): a.attrib["href"]="#"+catname else: a.attrib["href"]="category.html#"+catname - - - methods = node.find("methods") - + + + methods = node.find("methods") + if(methods!=None and len(list(methods))>0): h4=ET.SubElement(div,"h4") h4.text="Public Methods:" - method_table=ET.SubElement(div,"table") + method_table=ET.SubElement(div,"table") method_table.attrib["class"]="method_list"; for m in list(methods): # li = ET.SubElement(div2, "li") method_table.append( make_method_def(node.attrib["name"],m,False) ) - events = node.find("signals") - + events = node.find("signals") + if(events!=None and len(list(events))>0): h4=ET.SubElement(div,"h4") h4.text="Events:" - event_table=ET.SubElement(div,"table") + event_table=ET.SubElement(div,"table") event_table.attrib["class"]="method_list"; for m in list(events): @@ -389,20 +389,20 @@ def make_doku_class(node): event_table.append( make_method_def(node.attrib["name"],m,False,True) ) - members = node.find("members") + members = node.find("members") if(members!=None and len(list(members))>0): h4=ET.SubElement(div,"h4") h4.text="Public Variables:" - div2=ET.SubElement(div,"div") + div2=ET.SubElement(div,"div") div2.attrib["class"]="member_list"; - + for c in list(members): - + li = ET.SubElement(div2, "li") div3=ET.SubElement(li,"div") div3.attrib["class"]="member"; - make_type(c.attrib["type"],div3) + make_type(c.attrib["type"],div3) span=ET.SubElement(div3,"span") span.attrib["class"]="identifier member_name" span.text=" "+c.attrib["name"]+" " @@ -411,19 +411,19 @@ def make_doku_class(node): span.text=c.text - constants = node.find("constants") + constants = node.find("constants") if(constants!=None and len(list(constants))>0): h4=ET.SubElement(div,"h4") h4.text="Constants:" - div2=ET.SubElement(div,"div") + div2=ET.SubElement(div,"div") div2.attrib["class"]="constant_list"; - + for c in list(constants): li = ET.SubElement(div2, "li") div3=ET.SubElement(li,"div") div3.attrib["class"]="constant"; - + span=ET.SubElement(div3,"span") span.attrib["class"]="identifier constant_name" span.text=c.attrib["name"]+" " @@ -437,23 +437,23 @@ def make_doku_class(node): span=ET.SubElement(div3,"span") span.attrib["class"]="constant_description" span.text=c.text - + # ET.SubElement(div,"br") - - + + descr=node.find("description") if (descr!=None and descr.text.strip()!=""): h4=ET.SubElement(div,"h4") h4.text="Description:" - + make_text_def(node.attrib["name"],div,descr.text) -# div2=ET.SubElement(div,"div") +# div2=ET.SubElement(div,"div") # div2.attrib["class"]="description"; # div2.text=descr.text - - - + + + if(methods!=None or events!=None): h4=ET.SubElement(div,"h4") @@ -467,7 +467,7 @@ def make_doku_class(node): for m in iter_list: descr=m.find("description") - + if (descr==None or descr.text.strip()==""): continue; @@ -479,11 +479,11 @@ def make_doku_class(node): #anchor = ET.SubElement(div2, "a") #anchor.attrib["name"] = make_text_def(node.attrib["name"],div2,descr.text) - #div3=ET.SubElement(div2,"div") + #div3=ET.SubElement(div2,"div") #div3.attrib["class"]="description"; #div3.text=descr.text - - + + return div """ for file in input_list: @@ -501,14 +501,14 @@ for file in input_list: continue class_names.append(c.attrib["name"]) classes[c.attrib["name"]]=c - + class_names.sort() - + make_class_list(class_names,4) for cn in class_names: c=classes[cn] make_doku_class(c) - + diff --git a/doc/tools/makehtml.py b/doc/tools/makehtml.py index 34db47e424..26edda0935 100644 --- a/doc/tools/makehtml.py +++ b/doc/tools/makehtml.py @@ -43,21 +43,21 @@ def validate_tag(elem,tag): def make_html_bottom(body): #make_html_top(body,True) - ET.SubElement(body,"hr") - copyright = ET.SubElement(body,"span") + ET.SubElement(body,"hr") + copyright = ET.SubElement(body,"span") copyright.text = "Copyright 2008-2010 Codenix SRL" - + def make_html_top(body,bottom=False): if (bottom): ET.SubElement(body,"hr") - - table = ET.SubElement(body,"table") + + table = ET.SubElement(body,"table") table.attrib["class"]="top_table" tr = ET.SubElement(table,"tr") td = ET.SubElement(tr,"td") td.attrib["class"]="top_table" - + img = ET.SubElement(td,"image") img.attrib["src"]="images/logo.png" td = ET.SubElement(tr,"td") @@ -81,18 +81,18 @@ def make_html_top(body,bottom=False): a.text="Inheritance" if (not bottom): ET.SubElement(body,"hr") - - - + + + def make_html_class_list(class_list,columns): - + div=ET.Element("div") div.attrib["class"]="ClassList"; - + h1=ET.SubElement(div,"h2") h1.text="Alphabetical Class List" - + table=ET.SubElement(div,"table") table.attrib["class"]="class_table" table.attrib["width"]="100%" @@ -104,13 +104,13 @@ def make_html_class_list(class_list,columns): row_count = 0 last_initial = "" fit_columns=[] - + for n in range(0,columns): fit_columns+=[[]] indexers=[] last_initial="" - + idx=0 for n in class_list: col = int(idx/col_max) @@ -123,25 +123,25 @@ def make_html_class_list(class_list,columns): last_initial=n[:1] row_max=0 - + for n in range(0,columns): if (len(fit_columns[n])>row_max): row_max=len(fit_columns[n]) - + for r in range(0,row_max): tr = ET.SubElement(table,"tr") - for c in range(0,columns): - tdi = ET.SubElement(tr,"td") + for c in range(0,columns): + tdi = ET.SubElement(tr,"td") tdi.attrib["align"]="right" - td = ET.SubElement(tr,"td") + td = ET.SubElement(tr,"td") if (r>=len(fit_columns[c])): continue - + classname = fit_columns[c][r] print(classname) if (classname in indexers): - + span = ET.SubElement(tdi, "span") span.attrib["class"] = "class_index_letter" span.text = classname[:1].upper() @@ -161,23 +161,23 @@ def make_html_class_list(class_list,columns): csscc = ET.SubElement(cat_class_list, "link") csscc.attrib["href"] = "main.css" csscc.attrib["rel"] = "stylesheet" - csscc.attrib["type"] = "text/css" + csscc.attrib["type"] = "text/css" bodycc = ET.SubElement(cat_class_list, "body") make_html_top(bodycc) - + cat_class_parent=bodycc else: cat_class_parent=div - - - - + + + + h1=ET.SubElement(cat_class_parent,"h2") h1.text="Class List By Category" - + class_cat_table={} class_cat_list=[] - + for c in class_list: clss = classes[c] if ("category" in clss.attrib): @@ -190,9 +190,9 @@ def make_html_class_list(class_list,columns): class_cat_list.append(class_cat) class_cat_table[class_cat]=[] class_cat_table[class_cat].append(c) - + class_cat_list.sort() - + ct = ET.SubElement(cat_class_parent,"table") for cl in class_cat_list: l = class_cat_table[cl] @@ -201,7 +201,7 @@ def make_html_class_list(class_list,columns): tr.attrib["class"]="category_title" td = ET.SubElement(ct,"td") td.attrib["class"]="category_title" - + a = ET.SubElement(td,"a") a.attrib["class"]="category_title" a.text=cl @@ -221,45 +221,45 @@ def make_html_class_list(class_list,columns): bdtext=bd.text td = ET.SubElement(ct,"td") td.text=bdtext - + if (not single_page): - make_html_bottom(bodycc) + make_html_bottom(bodycc) catet_out = ET.ElementTree(cat_class_list) catet_out.write("category.html") - + if (not single_page): inh_class_list=ET.Element("html") cssic = ET.SubElement(inh_class_list, "link") cssic.attrib["href"] = "main.css" cssic.attrib["rel"] = "stylesheet" - cssic.attrib["type"] = "text/css" + cssic.attrib["type"] = "text/css" bodyic = ET.SubElement(inh_class_list, "body") make_html_top(bodyic) inh_class_parent=bodyic else: inh_class_parent=div - - - - + + + + h1=ET.SubElement(inh_class_parent,"h2") h1.text="Class List By Inheritance" - + itemlist = ET.SubElement(inh_class_parent,"list") - + class_inh_table={} def add_class(clss): if (clss.attrib["name"] in class_inh_table): return #already added parent_list=None - + if ("inherits" in clss.attrib): inhc = clss.attrib["inherits"] if (not (inhc in class_inh_table)): add_class(classes[inhc]) - + parent_list = class_inh_table[inhc].find("div") if (parent_list == None): parent_div = ET.SubElement(class_inh_table[inhc],"div") @@ -267,39 +267,39 @@ def make_html_class_list(class_list,columns): parent_div.attrib["class"]="inh_class_list" else: parent_list = parent_list.find("list") - - + + else: parent_list=itemlist - + item = ET.SubElement(parent_list,"li") # item.attrib["class"]="inh_class_list" - class_inh_table[clss.attrib["name"]]=item + class_inh_table[clss.attrib["name"]]=item make_type(clss.attrib["name"],item) - - - for c in class_list: + + + for c in class_list: add_class(classes[c]) - + if (not single_page): - make_html_bottom(bodyic) + make_html_bottom(bodyic) catet_out = ET.ElementTree(inh_class_list) catet_out.write("inheritance.html") - - - - + + + + #h1=ET.SubElement(div,"h2") #h1.text="Class List By Inheritance" - return div + return div def make_type(p_type,p_parent): if (p_type=="RefPtr"): p_type="Resource" - + if (p_type in class_names): a=ET.SubElement(p_parent,"a") a.attrib["class"]="datatype_existing" @@ -326,7 +326,7 @@ def make_text_def(class_name,parent,text): endq_pos=text.find("]",pos+1) if (endq_pos==-1): break - + pre_text=text[:pos] post_text=text[endq_pos+1:] tag_text=text[pos+1:endq_pos] @@ -346,7 +346,7 @@ def make_text_def(class_name,parent,text): elif(cmd.find("method")==0): cmd=tag_text[:space_pos] param=tag_text[space_pos+1:] - + if (not single_page and param.find(".")!=-1): class_param,method_param=param.split(".") tag_text=tag_text='<a href="'+class_param+'.html#'+class_param+"_"+method_param+'">'+class_param+'.'+method_param+'()</a>' @@ -358,22 +358,22 @@ def make_text_def(class_name,parent,text): elif (cmd.find("url=")==0): tag_text="<a href="+cmd[4:]+">" elif (cmd=="/url"): - tag_text="</a>" + tag_text="</a>" elif (cmd=="center"): - tag_text="<div align=\"center\">" + tag_text="<div align=\"center\">" elif (cmd=="/center"): tag_text="</div>" elif (cmd=="br"): - tag_text="<br/>" + tag_text="<br/>" elif (cmd=="i" or cmd=="/i" or cmd=="b" or cmd=="/b" or cmd=="u" or cmd=="/u"): tag_text="<"+tag_text+">" #html direct mapping else: tag_text="["+tag_text+"]" - - + + text=pre_text+tag_text+post_text pos=len(pre_text)+len(tag_text) - + #tnode = ET.SubElement(parent,"div") #tnode.text=text text="<div class=\"description\">"+text+"</div>" @@ -383,19 +383,19 @@ def make_text_def(class_name,parent,text): except: print("Error parsing description text: '"+text+"'") sys.exit(255) - - + + return tnode - - + + def make_method_def(name,m,declare,event=False): mdata={} - - if (not declare): + + if (not declare): div=ET.Element("tr") div.attrib["class"]="method" ret_parent=ET.SubElement(div,"td") @@ -406,13 +406,13 @@ def make_method_def(name,m,declare,event=False): div.attrib["class"]="method" ret_parent=div func_parent=div - + mdata["argidx"]=[] mdata["name"]=m.attrib["name"] qualifiers="" if ("qualifiers" in m.attrib): qualifiers=m.attrib["qualifiers"] - + args=list(m) for a in args: if (a.tag=="return"): @@ -421,11 +421,11 @@ def make_method_def(name,m,declare,event=False): idx=int(a.attrib["index"]) else: continue - + mdata["argidx"].append(idx) mdata[idx]=a - if (not event): + if (not event): if (-1 in mdata["argidx"]): make_type(mdata[-1].attrib["type"],ret_parent) mdata["argidx"].remove(-1) @@ -443,29 +443,29 @@ def make_method_def(name,m,declare,event=False): a=ET.SubElement(span,"a") a.attrib["href"]="#"+name+"_"+m.attrib["name"] a.text=m.attrib["name"] - + span=ET.SubElement(func_parent,"span") span.attrib["class"]="symbol" span.text=" (" - + for a in mdata["argidx"]: arg=mdata[a] - if (a>0): + if (a>0): span=ET.SubElement(func_parent,"span") span.text=", " else: span=ET.SubElement(func_parent,"span") span.text=" " - - + + make_type(arg.attrib["type"],func_parent) span=ET.SubElement(func_parent,"span") span.text=arg.attrib["name"] if ("default" in arg.attrib): span.text=span.text+"="+arg.attrib["default"] - - + + span=ET.SubElement(func_parent,"span") span.attrib["class"]="symbol" if (len(mdata["argidx"])): @@ -477,9 +477,9 @@ def make_method_def(name,m,declare,event=False): span=ET.SubElement(func_parent,"span") span.attrib["class"]="qualifier" span.text=" "+qualifiers - + return div - + def make_html_class(node): @@ -488,7 +488,7 @@ def make_html_class(node): a=ET.SubElement(div,"a") a.attrib["name"]=node.attrib["name"] - + h3=ET.SubElement(a,"h3") h3.attrib["class"]="title class_title" h3.text=node.attrib["name"] @@ -498,63 +498,63 @@ def make_html_class(node): div2=ET.SubElement(div,"div") div2.attrib["class"]="description class_description" div2.text=briefd.text - + if ("inherits" in node.attrib): ET.SubElement(div,"br") - div2=ET.SubElement(div,"div") + div2=ET.SubElement(div,"div") div2.attrib["class"]="inheritance"; span=ET.SubElement(div2,"span") span.text="Inherits: " - + make_type(node.attrib["inherits"],div2) - + if ("category" in node.attrib): ET.SubElement(div,"br") - - div3=ET.SubElement(div,"div") + + div3=ET.SubElement(div,"div") div3.attrib["class"]="category"; - + span=ET.SubElement(div3,"span") span.attrib["class"]="category" span.text="Category: " - + a = ET.SubElement(div3,"a") a.attrib["class"]="category_ref" a.text=node.attrib["category"] catname=a.text if (catname.rfind("/")!=-1): - catname=catname[catname.rfind("/"):] + catname=catname[catname.rfind("/"):] catname="CATEGORY_"+catname - + if (single_page): a.attrib["href"]="#"+catname else: a.attrib["href"]="category.html#"+catname - - - methods = node.find("methods") - + + + methods = node.find("methods") + if(methods!=None and len(list(methods))>0): h4=ET.SubElement(div,"h4") h4.text="Public Methods:" - method_table=ET.SubElement(div,"table") + method_table=ET.SubElement(div,"table") method_table.attrib["class"]="method_list"; for m in list(methods): # li = ET.SubElement(div2, "li") method_table.append( make_method_def(node.attrib["name"],m,False) ) - events = node.find("signals") - + events = node.find("signals") + if(events!=None and len(list(events))>0): h4=ET.SubElement(div,"h4") h4.text="Events:" - event_table=ET.SubElement(div,"table") + event_table=ET.SubElement(div,"table") event_table.attrib["class"]="method_list"; for m in list(events): @@ -562,20 +562,20 @@ def make_html_class(node): event_table.append( make_method_def(node.attrib["name"],m,False,True) ) - members = node.find("members") + members = node.find("members") if(members!=None and len(list(members))>0): h4=ET.SubElement(div,"h4") h4.text="Public Variables:" - div2=ET.SubElement(div,"div") + div2=ET.SubElement(div,"div") div2.attrib["class"]="member_list"; - + for c in list(members): - + li = ET.SubElement(div2, "li") div3=ET.SubElement(li,"div") div3.attrib["class"]="member"; - make_type(c.attrib["type"],div3) + make_type(c.attrib["type"],div3) span=ET.SubElement(div3,"span") span.attrib["class"]="identifier member_name" span.text=" "+c.attrib["name"]+" " @@ -584,19 +584,19 @@ def make_html_class(node): span.text=c.text - constants = node.find("constants") + constants = node.find("constants") if(constants!=None and len(list(constants))>0): h4=ET.SubElement(div,"h4") h4.text="Constants:" - div2=ET.SubElement(div,"div") + div2=ET.SubElement(div,"div") div2.attrib["class"]="constant_list"; - + for c in list(constants): li = ET.SubElement(div2, "li") div3=ET.SubElement(li,"div") div3.attrib["class"]="constant"; - + span=ET.SubElement(div3,"span") span.attrib["class"]="identifier constant_name" span.text=c.attrib["name"]+" " @@ -610,22 +610,22 @@ def make_html_class(node): span=ET.SubElement(div3,"span") span.attrib["class"]="constant_description" span.text=c.text - + # ET.SubElement(div,"br") - - + + descr=node.find("description") if (descr!=None and descr.text.strip()!=""): h4=ET.SubElement(div,"h4") h4.text="Description:" - + make_text_def(node.attrib["name"],div,descr.text) -# div2=ET.SubElement(div,"div") +# div2=ET.SubElement(div,"div") # div2.attrib["class"]="description"; # div2.text=descr.text - - - + + + if(methods!=None or events!=None): h4=ET.SubElement(div,"h4") @@ -639,7 +639,7 @@ def make_html_class(node): for m in iter_list: descr=m.find("description") - + if (descr==None or descr.text.strip()==""): continue; @@ -651,11 +651,11 @@ def make_html_class(node): #anchor = ET.SubElement(div2, "a") #anchor.attrib["name"] = make_text_def(node.attrib["name"],div2,descr.text) - #div3=ET.SubElement(div2,"div") + #div3=ET.SubElement(div2,"div") #div3.attrib["class"]="description"; #div3.text=descr.text - - + + return div class_names=[] @@ -676,7 +676,7 @@ for file in input_list: continue class_names.append(c.attrib["name"]) classes[c.attrib["name"]]=c - + html = ET.Element("html") css = ET.SubElement(html, "link") css.attrib["href"] = "main.css" @@ -690,7 +690,7 @@ if (not single_page): class_names.sort() - + body.append( make_html_class_list(class_names,5) ) for cn in class_names: @@ -704,9 +704,9 @@ for cn in class_names: css.attrib["rel"] = "stylesheet" css.attrib["type"] = "text/css" body2 = ET.SubElement(html2, "body" ) - make_html_top(body2) - body2.append( make_html_class(c) ); - make_html_bottom(body2) + make_html_top(body2) + body2.append( make_html_class(c) ); + make_html_bottom(body2) et_out = ET.ElementTree(html2) et_out.write(c.attrib["name"]+".html") diff --git a/doc/tools/makemd.py b/doc/tools/makemd.py index e012287b0e..38b493b0bf 100644 --- a/doc/tools/makemd.py +++ b/doc/tools/makemd.py @@ -54,7 +54,7 @@ def make_class_list(class_list, columns): row_max = 0 f.write("\n") - + for n in range(0, columns): if len(fit_columns[n]) > row_max: row_max = len(fit_columns[n]) @@ -63,7 +63,7 @@ def make_class_list(class_list, columns): for n in range(0, columns): f.write(" | |") - f.write("\n") + f.write("\n") f.write("| ") for n in range(0, columns): f.write(" --- | ------- |") diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index 6311be767c..060dbc805d 100644 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -60,7 +60,7 @@ def make_class_list(class_list, columns): row_max = 0 f.write("\n") - + for n in range(0, columns): if len(fit_columns[n]) > row_max: row_max = len(fit_columns[n]) @@ -69,7 +69,7 @@ def make_class_list(class_list, columns): for n in range(0, columns): f.write(" | |") - f.write("\n") + f.write("\n") f.write("+") for n in range(0, columns): f.write("--+-------+") @@ -265,7 +265,7 @@ def make_method( t = '- ' else: t = "" - + ret_type = 'void' args = list(m) mdata = {} @@ -332,7 +332,7 @@ def make_method( if (not declare): if (pp!=None): pp.append( (t,s) ) - else: + else: f.write("- "+t+" "+s+"\n") else: f.write(t+s+"\n") @@ -366,24 +366,24 @@ def make_rst_class(node): f.write(" **<** ") else: first=False - + f.write(make_type(inh)) inode = classes[inh] if ('inherits' in inode.attrib): inh=inode.attrib['inherits'].strip() else: inh=None - - + + f.write("\n\n") - + inherited=[] for cn in classes: - c=classes[cn] + c=classes[cn] if 'inherits' in c.attrib: if (c.attrib['inherits'].strip()==name): inherited.append(c.attrib['name']) - + if (len(inherited)): f.write('**Inherited By:** ') for i in range(len(inherited)): @@ -415,7 +415,7 @@ def make_rst_class(node): tl = len(s[1]) if (tl>longest_t): longest_t=tl - + sep="+" for i in range(longest_s+2): sep+="-" diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp index 1568d93af7..373de2bb22 100644 --- a/drivers/gles2/rasterizer_gles2.cpp +++ b/drivers/gles2/rasterizer_gles2.cpp @@ -11050,6 +11050,7 @@ void RasterizerGLES2::finish() { free(default_material); free(shadow_material); + free(shadow_material_double_sided); free(canvas_shadow_blur); free( overdraw_material ); } diff --git a/methods.py b/methods.py index 39230b6e2f..a428338499 100755 --- a/methods.py +++ b/methods.py @@ -15,19 +15,19 @@ def add_source_files(self, sources, filetype, lib_env = None, shared = False): else: for f in filetype: sources.append(self.Object(f)) - -def build_shader_header( target, source, env ): + +def build_shader_header( target, source, env ): for x in source: print x - + name = str(x) name = name[ name.rfind("/")+1: ] name = name[ name.rfind("\\")+1: ] name = name.replace(".","_") - - + + fs = open(str(x),"r") fd = open(str(x)+".h","w") fd.write("/* this file has been generated by SCons, do not edit! */\n") @@ -40,17 +40,17 @@ def build_shader_header( target, source, env ): line=line.replace("\"","\\\"") fd.write("\""+line+"\\n\"\n") line=fs.readline() - + fd.write(";\n") - + return 0 - - -def build_glsl_header( filename ): - - fs = open(filename,"r") + + +def build_glsl_header( filename ): + + fs = open(filename,"r") line=fs.readline() - + vertex_lines=[] fragment_lines=[] uniforms=[] @@ -68,21 +68,21 @@ def build_glsl_header( filename ): fragment_offset=0 while(line): - + if (line.find("[vertex]")!=-1): reading="vertex" line=fs.readline() line_offset+=1 vertex_offset=line_offset continue - + if (line.find("[fragment]")!=-1): reading="fragment" line=fs.readline() line_offset+=1 fragment_offset=line_offset continue - + if (line.find("#ifdef ")!=-1): ifdefline = line.replace("#ifdef ","").strip() if (not ifdefline in conditionals): @@ -159,49 +159,49 @@ def build_glsl_header( filename ): uline = uline.replace("attribute ",""); uline = uline.replace(";",""); uline = uline[ uline.find(" "): ].strip() - - + + if (uline.find("//")!=-1): name,bind = uline.split("//") if (bind.find("attrib:")!=-1): name=name.strip() bind=bind.replace("attrib:","").strip() attributes+=[(name,bind)] - + if (line.strip().find("out ")==0): uline = line.replace("out","").strip(); uline = uline.replace(";",""); uline = uline[ uline.find(" "): ].strip() - - + + if (uline.find("//")!=-1): name,bind = uline.split("//") if (bind.find("drawbuffer:")!=-1): name=name.strip() bind=bind.replace("drawbuffer:","").strip() fbos+=[(name,bind)] - + line=line.replace("\r","") line=line.replace("\n","") line=line.replace("\\","\\\\") line=line.replace("\"","\\\"") #line=line+"\\n\\" no need to anymore - + if (reading=="vertex"): vertex_lines+=[line] if (reading=="fragment"): fragment_lines+=[line] - + line=fs.readline() line_offset+=1 fs.close(); - + out_file = filename+".h" fd = open(out_file,"w") - + fd.write("/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */\n"); - + out_file_base = out_file out_file_base = out_file_base[ out_file_base.rfind("/")+1: ] out_file_base = out_file_base[ out_file_base.rfind("\\")+1: ] @@ -209,14 +209,14 @@ def build_glsl_header( filename ): out_file_ifdef = out_file_base.replace(".","_").upper() fd.write("#ifndef "+out_file_ifdef+"\n") fd.write("#define "+out_file_ifdef+"\n") - + out_file_class = out_file_base.replace(".glsl.h","").title().replace("_","").replace(".","")+"ShaderGL"; fd.write("\n\n"); fd.write("#include \"drivers/opengl/shader_gl.h\"\n\n\n"); fd.write("class "+out_file_class+" : public ShaderGL {\n\n"); fd.write("\t virtual String get_shader_name() const { return \""+out_file_class+"\"; }\n"); fd.write("public:\n\n"); - + if (len(conditionals)): fd.write("\tenum Conditionals {\n"); for x in conditionals: @@ -227,11 +227,11 @@ def build_glsl_header( filename ): for x in uniforms: fd.write("\t\t"+x.upper()+",\n"); fd.write("\t};\n\n"); - - fd.write("\t_FORCE_INLINE_ int get_uniform(Uniforms p_uniform) const { return _get_uniform(p_uniform); }\n\n"); + + fd.write("\t_FORCE_INLINE_ int get_uniform(Uniforms p_uniform) const { return _get_uniform(p_uniform); }\n\n"); if (len(conditionals)): - fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n"); + fd.write("\t_FORCE_INLINE_ void set_conditional(Conditionals p_conditional,bool p_enable) { _set_conditional(p_conditional,p_enable); }\n\n"); fd.write("\t#define _FU if (get_uniform(p_uniform)<0) return; ERR_FAIL_COND( get_active()!=this );\n\n "); fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n"); fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, double p_value) { _FU glUniform1f(get_uniform(p_uniform),p_value); }\n\n"); @@ -251,11 +251,11 @@ def build_glsl_header( filename ): fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b) { _FU glUniform2f(get_uniform(p_uniform),p_a,p_b); }\n\n"); fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c) { _FU glUniform3f(get_uniform(p_uniform),p_a,p_b,p_c); }\n\n"); fd.write("\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d) { _FU glUniform4f(get_uniform(p_uniform),p_a,p_b,p_c,p_d); }\n\n"); - + fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Transform& p_transform) { _FU const Transform &tr = p_transform; - + GLfloat matrix[16]={ /* build a 16x16 matrix */ tr.basis.elements[0][0], tr.basis.elements[1][0], @@ -272,15 +272,15 @@ def build_glsl_header( filename ): tr.origin.x, tr.origin.y, tr.origin.z, - 1 + 1 }; - - + + glUniformMatrix4fv(get_uniform(p_uniform),1,false,matrix); - - + + } - + """); fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const Matrix32& p_transform) { _FU @@ -315,25 +315,25 @@ def build_glsl_header( filename ): """); fd.write("""\t_FORCE_INLINE_ void set_uniform(Uniforms p_uniform, const CameraMatrix& p_matrix) { _FU - + GLfloat matrix[16]; - + for (int i=0;i<4;i++) { for (int j=0;j<4;j++) { - + matrix[i*4+j]=p_matrix.matrix[i][j]; - } + } } - + glUniformMatrix4fv(get_uniform(p_uniform),1,false,matrix); }; """); - + fd.write("\n\n#undef _FU\n\n\n"); - - + + fd.write("\tvirtual void init() {\n\n"); if (len(conditionals)): - + fd.write("\t\tstatic const char* _conditional_strings[]={\n") if (len(conditionals)): for x in conditionals: @@ -341,9 +341,9 @@ def build_glsl_header( filename ): fd.write("\t\t};\n\n"); else: fd.write("\t\tstatic const char **_conditional_strings=NULL;\n") - + if (len(uniforms)): - + fd.write("\t\tstatic const char* _uniform_strings[]={\n") if (len(uniforms)): for x in uniforms: @@ -351,18 +351,18 @@ def build_glsl_header( filename ): fd.write("\t\t};\n\n"); else: fd.write("\t\tstatic const char **_uniform_strings=NULL;\n") - + if (len(attributes)): - + fd.write("\t\tstatic AttributePair _attribute_pairs[]={\n") for x in attributes: fd.write("\t\t\t{\""+x[0]+"\","+x[1]+"},\n"); fd.write("\t\t};\n\n"); else: fd.write("\t\tstatic AttributePair *_attribute_pairs=NULL;\n") - - + + if (len(fbos)): fd.write("\t\tstatic FBOPair _fbo_pairs[]={\n") for x in fbos: @@ -404,20 +404,20 @@ def build_glsl_header( filename ): fd.write("\t\tsetup(_conditional_strings,"+str(len(conditionals))+",_uniform_strings,"+str(len(uniforms))+",_attribute_pairs,"+str(len(attributes))+",_fbo_pairs,"+str(len(fbos))+",_ubo_pairs,"+str(len(ubos))+",_texunit_pairs,"+str(len(texunits))+",_vertex_code,_fragment_code,_vertex_code_start,_fragment_code_start);\n") fd.write("\t};\n\n") - + fd.write("};\n\n"); fd.write("#endif\n\n"); fd.close(); - -def build_glsl_headers( target, source, env ): + +def build_glsl_headers( target, source, env ): for x in source: - + build_glsl_header(str(x)); - - return 0 + + return 0 @@ -1084,12 +1084,12 @@ def build_gles2_headers( target, source, env ): def update_version(): rev = "custom_build" - + if (os.getenv("BUILD_REVISION")!=None): rev=os.getenv("BUILD_REVISION") print("Using custom revision: "+rev) import version - + f=open("core/version.h","wb") f.write("#define VERSION_SHORT_NAME "+str(version.short_name)+"\n") @@ -1134,7 +1134,7 @@ def parse_cg_file(fname, uniforms, sizes, conditionals): line = fs.readline(); - + def build_cg_shader(sname): vp_uniforms = [] @@ -1172,7 +1172,7 @@ def build_cg_shader(sname): fd.write("\t};\n"); - + import glob def detect_modules(): @@ -1371,7 +1371,7 @@ def save_active_platforms(apnames,ap): str+="," str+="};\n" - + wf = x+"/logo.h" logow = open(wf,"wb") logow.write(str) diff --git a/modules/SCsub b/modules/SCsub index 9215bfd48f..f37c3a55c7 100644 --- a/modules/SCsub +++ b/modules/SCsub @@ -1,21 +1,21 @@ -Import('env')
-
-env_modules = env.Clone()
-
-Export('env_modules')
-
-env.modules_sources=[
- "register_module_types.cpp",
-]
-#env.add_source_files(env.modules_sources,"*.cpp")
-Export('env')
-
-for x in env.module_list:
- if (x in env.disabled_modules):
- continue
- env_modules.Append(CPPFLAGS=["-DMODULE_"+x.upper()+"_ENABLED"])
- SConscript(x+"/SCsub")
-
-lib = env_modules.Library("modules",env.modules_sources)
-
-env.Prepend(LIBS=[lib])
+Import('env') + +env_modules = env.Clone() + +Export('env_modules') + +env.modules_sources=[ + "register_module_types.cpp", +] +#env.add_source_files(env.modules_sources,"*.cpp") +Export('env') + +for x in env.module_list: + if (x in env.disabled_modules): + continue + env_modules.Append(CPPFLAGS=["-DMODULE_"+x.upper()+"_ENABLED"]) + SConscript(x+"/SCsub") + +lib = env_modules.Library("modules",env.modules_sources) + +env.Prepend(LIBS=[lib]) diff --git a/modules/gdscript/config.py b/modules/gdscript/config.py index f9bd7da08d..ea7e83378a 100644 --- a/modules/gdscript/config.py +++ b/modules/gdscript/config.py @@ -2,10 +2,10 @@ def can_build(platform): return True - - + + def configure(env): pass - - - + + + diff --git a/modules/gridmap/config.py b/modules/gridmap/config.py index f9bd7da08d..ea7e83378a 100644 --- a/modules/gridmap/config.py +++ b/modules/gridmap/config.py @@ -2,10 +2,10 @@ def can_build(platform): return True - - + + def configure(env): pass - - - + + + diff --git a/platform/android/detect.py b/platform/android/detect.py index d4038f6584..366ec6321d 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -5,7 +5,7 @@ import platform def is_active(): return True - + def get_name(): return "Android" @@ -56,9 +56,9 @@ def configure(env): # http://www.scons.org/wiki/LongCmdLinesOnWin32 import os if (os.name=="nt"): - + import subprocess - + def mySubProcess(cmdline,env): #print "SPAWNED : " + cmdline startupinfo = subprocess.STARTUPINFO() @@ -72,26 +72,26 @@ def configure(env): print err print "=====" return rv - + def mySpawn(sh, escape, cmd, args, env): - + newargs = ' '.join(args[1:]) cmdline = cmd + " " + newargs - + rv=0 if len(cmdline) > 32000 and cmd.endswith("ar") : cmdline = cmd + " " + args[1] + " " + args[2] + " " for i in range(3,len(args)) : rv = mySubProcess( cmdline + args[i], env ) if rv : - break - else: + break + else: rv = mySubProcess( cmdline, env ) - + return rv - + env['SPAWN'] = mySpawn - + ndk_platform=env['ndk_platform'] if env['android_arch'] not in ['armv7','armv6','x86']: @@ -114,7 +114,7 @@ def configure(env): print("Godot Android!!!!! ("+env['android_arch']+")"+neon_text) env.Append(CPPPATH=['#platform/android']) - + if env['android_arch']=='x86': env.extra_suffix=".x86"+env.extra_suffix elif env['android_arch']=='armv6': @@ -126,7 +126,7 @@ def configure(env): env.extra_suffix=".armv7"+env.extra_suffix gcc_path=env["ANDROID_NDK_ROOT"]+"/toolchains/"+env["NDK_TARGET"]+"/prebuilt/"; - + import os if (sys.platform.find("linux")==0): if (platform.architecture()[0]=='64bit' or os.path.isdir(gcc_path+"linux-x86_64/bin")): # check was not working @@ -138,8 +138,8 @@ def configure(env): env['SHLINKFLAGS'][1] = '-shared' elif (os.name=="nt"): gcc_path=gcc_path+"/windows-x86_64/bin" #this may be wrong - - + + env['ENV']['PATH'] = gcc_path+":"+env['ENV']['PATH'] if env['android_arch']=='x86': @@ -224,7 +224,7 @@ def configure(env): elif env["android_arch"]=="armv7": env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include"]) env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a"]) - + env.Append(LIBS=["gnustl_static","supc++"]) env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cpufeatures"]) diff --git a/platform/bb10/detect.py b/platform/bb10/detect.py index f134a9df19..9ab94e619a 100644 --- a/platform/bb10/detect.py +++ b/platform/bb10/detect.py @@ -6,7 +6,7 @@ import methods def is_active(): return True - + def get_name(): return "BlackBerry 10" @@ -36,7 +36,7 @@ def get_flags(): ('tools', 'no'), ('nedmalloc', 'no'), ('theora', 'no'), - + ] def configure(env): diff --git a/platform/flash/detect.py b/platform/flash/detect.py index f079f21fdd..7f558a2b75 100644 --- a/platform/flash/detect.py +++ b/platform/flash/detect.py @@ -4,7 +4,7 @@ import string def is_active(): return True - + def get_name(): return "Flash" @@ -18,7 +18,7 @@ def can_build(): def get_opts(): return [] - + def get_flags(): @@ -52,7 +52,7 @@ def configure(env): if (ccroot.find("/cygdrive")==0): unit = ccroot[ ccroot.find("/") + 1 ] ccroot=ccroot.replace("/cygdrive/"+unit,unit+":") - + env['FLASCC_ROOT'] = ccroot if env['PLATFORM'] == 'win32': import methods @@ -71,11 +71,11 @@ def configure(env): env['AR'] = ccroot+'/sdk/usr/bin/ar' env['LINK'] = ccroot+'/sdk/usr/bin/gcc' - + env['OBJSUFFIX'] = ".fl.o" env['LIBSUFFIX'] = ".fl.a" env['PROGSUFFIX'] = "_flash" - + #env["CXX"]='gcc-4' import string #include path diff --git a/platform/iphone/app_delegate.mm b/platform/iphone/app_delegate.mm index a3af8ff163..dab75e08c8 100644 --- a/platform/iphone/app_delegate.mm +++ b/platform/iphone/app_delegate.mm @@ -100,7 +100,7 @@ static int frame_count = 0; int backingHeight; glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); - + OS::VideoMode vm; vm.fullscreen = true; @@ -118,7 +118,7 @@ static int frame_count = 0; NSString *documentsDirectory = [paths objectAtIndex:0]; //NSString *documentsDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; OSIPhone::get_singleton()->set_data_dir(String::utf8([documentsDirectory UTF8String])); - + NSString *locale_code = [[[NSLocale preferredLanguages] objectAtIndex:0] substringToIndex:2]; OSIPhone::get_singleton()->set_locale(String::utf8([locale_code UTF8String])); @@ -218,7 +218,7 @@ static int frame_count = 0; [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; // disable idle timer //application.idleTimerDisabled = YES; - + //Create a full-screen window window = [[UIWindow alloc] initWithFrame:rect]; //window.autoresizesSubviews = YES; @@ -236,9 +236,9 @@ static int frame_count = 0; int backingHeight; glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); - + iphone_main(backingWidth, backingHeight, gargc, gargv); - + view_controller = [[ViewController alloc] init]; view_controller.view = glView; window.rootViewController = view_controller; @@ -248,7 +248,7 @@ static int frame_count = 0; printf("cadisaplylink: %d", glView.useCADisplayLink); glView.animationInterval = 1.0 / kRenderingFrequency; [glView startAnimation]; - + //Show the window [window makeKeyAndVisible]; @@ -261,9 +261,9 @@ static int frame_count = 0; //OSIPhone::screen_width = rect.size.width - rect.origin.x; //OSIPhone::screen_height = rect.size.height - rect.origin.y; - + mainViewController = view_controller; - + #ifdef MODULE_GAME_ANALYTICS_ENABLED printf("********************* didFinishLaunchingWithOptions\n"); if(!Globals::get_singleton()->has("mobileapptracker/advertiser_id")) @@ -274,24 +274,24 @@ static int frame_count = 0; { return; } - + String adid = GLOBAL_DEF("mobileapptracker/advertiser_id",""); String convkey = GLOBAL_DEF("mobileapptracker/conversion_key",""); - + NSString * advertiser_id = [NSString stringWithUTF8String:adid.utf8().get_data()]; NSString * conversion_key = [NSString stringWithUTF8String:convkey.utf8().get_data()]; - + // Account Configuration info - must be set [MobileAppTracker initializeWithMATAdvertiserId:advertiser_id MATConversionKey:conversion_key]; - + // Used to pass us the IFA, enables highly accurate 1-to-1 attribution. // Required for many advertising networks. [MobileAppTracker setAppleAdvertisingIdentifier:[[ASIdentifierManager sharedManager] advertisingIdentifier] advertisingTrackingEnabled:[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]]; - + #endif - + }; - (void)applicationWillTerminate:(UIApplication*)application { @@ -389,7 +389,7 @@ static int frame_count = 0; [PFPush handlePush:userInfo]; NSDictionary *aps = [userInfo objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - + NSLog(@"Push Notification Payload (app active) %@", aps); [defaults setObject:aps forKey:@"notificationInfo"]; [defaults synchronize]; diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py index 9472f05e16..c3ee098350 100644 --- a/platform/iphone/detect.py +++ b/platform/iphone/detect.py @@ -108,7 +108,7 @@ def configure(env): if env['store_kit'] == 'yes': env.Append(CPPFLAGS=['-DSTOREKIT_ENABLED']) env.Append(LINKFLAGS=['-framework', 'StoreKit']) - + if env['icloud'] == 'yes': env.Append(CPPFLAGS=['-DICLOUD_ENABLED']) @@ -117,7 +117,7 @@ def configure(env): if (env["target"]=="release"): env.Append(CCFLAGS=['-O3', '-DNS_BLOCK_ASSERTIONS=1','-Wall', '-gdwarf-2']) # removed -ffast-math - env.Append(LINKFLAGS=['-O3']) # + env.Append(LINKFLAGS=['-O3']) # elif env["target"] == "release_debug": env.Append(CCFLAGS=['-Os', '-DNS_BLOCK_ASSERTIONS=1','-Wall','-DDEBUG_ENABLED']) @@ -151,7 +151,7 @@ def configure(env): env.Append(CPPFLAGS=['-fno-exceptions']) #env['neon_enabled']=True env['S_compiler'] = '$IPHONEPATH/Developer/usr/bin/gcc' - + import methods env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } ) env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } ) diff --git a/platform/iphone/game_center.mm b/platform/iphone/game_center.mm index 3756b58699..a5b90514da 100644 --- a/platform/iphone/game_center.mm +++ b/platform/iphone/game_center.mm @@ -94,10 +94,10 @@ Error GameCenter::connect() { ret["error_description"] = [error.localizedDescription UTF8String]; GameCenter::get_singleton()->connected = false; }; - + pending_events.push_back(ret); }; - + }); return OK; @@ -156,7 +156,7 @@ Error GameCenter::award_achievement(Variant p_params) { if (params.has("show_completion_banner")) { achievement.showsCompletionBanner = params["show_completion_banner"] ? YES : NO; } - + [GKAchievement reportAchievements:@[achievement] withCompletionHandler:^(NSError *error) { Dictionary ret; @@ -189,30 +189,30 @@ void GameCenter::request_achievement_descriptions() { IntArray maximum_points; Array hidden; Array replayable; - + for (int i=0; i<[descriptions count]; i++) { GKAchievementDescription* description = [descriptions objectAtIndex:i]; - + const char* str = [description.identifier UTF8String]; names.push_back(String::utf8(str != NULL ? str : "")); - + str = [description.title UTF8String]; titles.push_back(String::utf8(str != NULL ? str : "")); - + str = [description.unachievedDescription UTF8String]; unachieved_descriptions.push_back(String::utf8(str != NULL ? str : "")); - + str = [description.achievedDescription UTF8String]; achieved_descriptions.push_back(String::utf8(str != NULL ? str : "")); - + maximum_points.push_back(description.maximumPoints); - + hidden.push_back(description.hidden == YES); - + replayable.push_back(description.replayable == YES); } - + ret["names"] = names; ret["titles"] = titles; ret["unachieved_descriptions"] = unachieved_descriptions; @@ -220,7 +220,7 @@ void GameCenter::request_achievement_descriptions() { ret["maximum_points"] = maximum_points; ret["hidden"] = hidden; ret["replayable"] = replayable; - + } else { ret["result"] = "error"; ret["error_code"] = error.code; @@ -241,19 +241,19 @@ void GameCenter::request_achievements() { ret["result"] = "ok"; StringArray names; RealArray percentages; - + for (int i=0; i<[achievements count]; i++) { GKAchievement* achievement = [achievements objectAtIndex:i]; const char* str = [achievement.identifier UTF8String]; names.push_back(String::utf8(str != NULL ? str : "")); - + percentages.push_back(achievement.percentComplete); } - + ret["names"] = names; ret["progress"] = percentages; - + } else { ret["result"] = "error"; ret["error_code"] = error.code; @@ -275,7 +275,7 @@ void GameCenter::reset_achievements() { ret["result"] = "error"; ret["error_code"] = error.code; }; - + pending_events.push_back(ret); }]; }; @@ -311,7 +311,7 @@ Error GameCenter::show_game_center(Variant p_params) { ViewController *root_controller=(ViewController *)((AppDelegate *)[[UIApplication sharedApplication] delegate]).window.rootViewController; ERR_FAIL_COND_V(!root_controller, FAILED); - + controller.gameCenterDelegate = root_controller; controller.viewState = view_state; if (view_state == GKGameCenterViewControllerStateLeaderboards) { @@ -322,14 +322,14 @@ Error GameCenter::show_game_center(Variant p_params) { controller.leaderboardIdentifier = name_str; } } - + [root_controller presentViewController: controller animated: YES completion:nil]; - - return OK; + + return OK; }; void GameCenter::game_center_closed() { - + Dictionary ret; ret["type"] = "show_game_center"; ret["result"] = "ok"; diff --git a/platform/iphone/gl_view.mm b/platform/iphone/gl_view.mm index 94fbb9e174..607352ab0b 100755 --- a/platform/iphone/gl_view.mm +++ b/platform/iphone/gl_view.mm @@ -107,7 +107,7 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s { NSString* language = [[track locale] localeIdentifier]; NSLog(@"subtitle lang: %@", language); - + if ([language isEqualToString:[NSString stringWithUTF8String:p_audio_track.utf8()]]) { AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters]; @@ -132,7 +132,7 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s { NSString* language = [[track locale] localeIdentifier]; NSLog(@"subtitle lang: %@", language); - + if ([language isEqualToString:[NSString stringWithUTF8String:p_subtitle_track.utf8()]]) { [_instance.avPlayer.currentItem selectMediaOption:track inMediaSelectionGroup: subtitlesGroup]; @@ -147,7 +147,7 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s bool _is_video_playing() { if (_instance.avPlayer.error) { - printf("Error during playback\n"); + printf("Error during playback\n"); } return (_instance.avPlayer.rate > 0 && !_instance.avPlayer.error); } @@ -257,7 +257,7 @@ static void clear_touches() { if((self = [super initWithCoder:coder])) { self = [self initGLES]; - } + } return self; } @@ -265,14 +265,14 @@ static void clear_touches() { { // Get our backing layer CAEAGLLayer *eaglLayer = (CAEAGLLayer*) self.layer; - + // Configure it so that it is opaque, does not retain the contents of the backbuffer when displayed, and uses RGBA8888 color. eaglLayer.opaque = YES; eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil]; - + // Create our EAGLContext, and if successful make it current and create our framebuffer. context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; @@ -281,7 +281,7 @@ static void clear_touches() { [self release]; return nil; } - + // Default the animation interval to 1/60th of a second. animationInterval = 1.0 / 60.0; return self; @@ -327,17 +327,17 @@ static void clear_touches() { glGenFramebuffersOES(1, &viewFramebuffer); glGenRenderbuffersOES(1, &viewRenderbuffer); - + glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); // This call associates the storage for the current render buffer with the EAGLDrawable (our CAEAGLLayer) // allowing us to draw into a buffer that will later be rendered to screen whereever the layer is (which corresponds with our view). [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(id<EAGLDrawable>)self.layer]; glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer); - + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); - + // For this sample, we also need a depth buffer, so we'll create and attach one via another renderbuffer. glGenRenderbuffersOES(1, &depthRenderbuffer); glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer); @@ -371,7 +371,7 @@ static void clear_touches() { viewFramebuffer = 0; glDeleteRenderbuffersOES(1, &viewRenderbuffer); viewRenderbuffer = 0; - + if(depthRenderbuffer) { glDeleteRenderbuffersOES(1, &depthRenderbuffer); @@ -461,21 +461,21 @@ static void clear_touches() { // Make sure that you are drawing to the current context [EAGLContext setCurrentContext:context]; - + // If our drawing delegate needs to have the view setup, then call -setupView: and flag that it won't need to be called again. if(!delegateSetup) { [delegate setupView:self]; delegateSetup = YES; } - + glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer); [delegate drawView:self]; - + glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); [context presentRenderbuffer:GL_RENDERBUFFER_OES]; - + #ifdef DEBUG_ENABLED GLenum err = glGetError(); if(err) @@ -487,9 +487,9 @@ static void clear_touches() { { NSArray* tlist = [[event allTouches] allObjects]; for (unsigned int i=0; i< [tlist count]; i++) { - + if ( [touches containsObject:[tlist objectAtIndex:i]] ) { - + UITouch* touch = [tlist objectAtIndex:i]; if (touch.phase != UITouchPhaseBegan) continue; @@ -506,9 +506,9 @@ static void clear_touches() { NSArray* tlist = [[event allTouches] allObjects]; for (unsigned int i=0; i< [tlist count]; i++) { - + if ( [touches containsObject:[tlist objectAtIndex:i]] ) { - + UITouch* touch = [tlist objectAtIndex:i]; if (touch.phase != UITouchPhaseMoved) continue; @@ -527,9 +527,9 @@ static void clear_touches() { { NSArray* tlist = [[event allTouches] allObjects]; for (unsigned int i=0; i< [tlist count]; i++) { - + if ( [touches containsObject:[tlist objectAtIndex:i]] ) { - + UITouch* touch = [tlist objectAtIndex:i]; if (touch.phase != UITouchPhaseEnded) continue; @@ -543,7 +543,7 @@ static void clear_touches() { } - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { - + OSIPhone::get_singleton()->touches_cancelled(); clear_touches(); }; @@ -652,12 +652,12 @@ static void clear_touches() { - (void)dealloc { [self stopAnimation]; - + if([EAGLContext currentContext] == context) { [EAGLContext setCurrentContext:nil]; } - + [context release]; context = nil; @@ -673,8 +673,8 @@ static void clear_touches() { video_found_error = true; } - if(_instance.avPlayer.status == AVPlayerStatusReadyToPlay && - _instance.avPlayerItem.status == AVPlayerItemStatusReadyToPlay && + if(_instance.avPlayer.status == AVPlayerStatusReadyToPlay && + _instance.avPlayerItem.status == AVPlayerItemStatusReadyToPlay && CMTIME_COMPARE_INLINE(video_current_time, ==, kCMTimeZero)) { //NSLog(@"time: %@", video_current_time); @@ -703,7 +703,7 @@ static void clear_touches() { /* - (void)moviePlayBackDidFinish:(NSNotification*)notification { - + NSNumber* reason = [[notification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey]; switch ([reason intValue]) { diff --git a/platform/iphone/icloud.mm b/platform/iphone/icloud.mm index 449670667f..0b3efe41fc 100644 --- a/platform/iphone/icloud.mm +++ b/platform/iphone/icloud.mm @@ -49,7 +49,7 @@ void ICloud::_bind_methods() { ObjectTypeDB::bind_method(_MD("get_key_value"),&ICloud::get_key_value); ObjectTypeDB::bind_method(_MD("synchronize_key_values"),&ICloud::synchronize_key_values); ObjectTypeDB::bind_method(_MD("get_all_key_values"),&ICloud::get_all_key_values); - + ObjectTypeDB::bind_method(_MD("get_pending_event_count"),&ICloud::get_pending_event_count); ObjectTypeDB::bind_method(_MD("pop_pending_event"),&ICloud::pop_pending_event); }; @@ -83,7 +83,7 @@ Variant nsobject_to_variant(NSObject* object) { if ([data length] > 0) { ret.resize([data length]); { - ByteArray::Write w = ret.write(); + ByteArray::Write w = ret.write(); copymem(w.ptr(), [data bytes], [data length]); } } @@ -101,14 +101,14 @@ Variant nsobject_to_variant(NSObject* object) { else if ([object isKindOfClass:[NSDictionary class]]) { Dictionary result; NSDictionary* dic = (NSDictionary*)object; - - + + NSArray* keys = [dic allKeys]; int count = [keys count]; for (int i=0; i < count; ++i) { NSObject* k = [ keys objectAtIndex:i]; NSObject* v = [dic objectForKey:k]; - + result[nsobject_to_variant(k)] = nsobject_to_variant(v); } return result; @@ -121,29 +121,29 @@ Variant nsobject_to_variant(NSObject* object) { NSNumber* num = (NSNumber*)object; if(strcmp([num objCType], @encode(BOOL)) == 0) { return Variant((int)[num boolValue]); - } + } else if(strcmp([num objCType], @encode(char)) == 0) { return Variant((int)[num charValue]); - } + } else if(strcmp([num objCType], @encode(int)) == 0) { return Variant([num intValue]); - } + } else if(strcmp([num objCType], @encode(unsigned int)) == 0) { return Variant((int)[num unsignedIntValue]); - } + } else if(strcmp([num objCType], @encode(long long)) == 0) { return Variant((int)[num longValue]); - } + } else if(strcmp([num objCType], @encode(float)) == 0) { return Variant([num floatValue]); - } + } else if(strcmp([num objCType], @encode(double)) == 0) { return Variant((float)[num doubleValue]); } } else if ([object isKindOfClass:[NSDate class]]) { //this is a type that icloud supports...but how did you submit it in the first place? - //I guess this is a type that *might* show up, if you were, say, trying to make your game + //I guess this is a type that *might* show up, if you were, say, trying to make your game //compatible with existing cloud data written by another engine's version of your game WARN_PRINT("NSDate unsupported, returning null Variant") return Variant(); @@ -177,13 +177,13 @@ NSObject* variant_to_nsobject(Variant v) { for (unsigned int i = 0; i < keys.size(); ++i) { NSString* key = [[[NSString alloc] initWithUTF8String:((String)(keys[i])).utf8().get_data()] autorelease]; NSObject* value = variant_to_nsobject(dic[keys[i]]); - + if (key == NULL || value == NULL) { return NULL; } - + [result setObject:value forKey:key]; - } + } return result; } else if (v.get_type() == Variant::ARRAY) { @@ -213,13 +213,13 @@ NSObject* variant_to_nsobject(Variant v) { Error ICloud::remove_key(Variant p_param) { String param = p_param; NSString* key = [[[NSString alloc] initWithUTF8String:param.utf8().get_data()] autorelease]; - + NSUbiquitousKeyValueStore *store = [NSUbiquitousKeyValueStore defaultStore]; - + if (![[store dictionaryRepresentation] objectForKey:key]) { return ERR_INVALID_PARAMETER; } - + [store removeObjectForKey:key]; return OK; } @@ -228,26 +228,26 @@ Error ICloud::remove_key(Variant p_param) { Variant ICloud::set_key_values(Variant p_params) { Dictionary params = p_params; Array keys = params.keys(); - + Array error_keys; - + for (unsigned int i = 0; i < keys.size(); ++i) { String variant_key = keys[i]; Variant variant_value = params[variant_key]; - + NSString* key = [[[NSString alloc] initWithUTF8String:variant_key.utf8().get_data()] autorelease]; if (key == NULL) { error_keys.push_back(variant_key); continue; } - + NSObject* value = variant_to_nsobject(variant_value); - + if (value == NULL) { error_keys.push_back(variant_key); continue; } - + NSUbiquitousKeyValueStore *store = [NSUbiquitousKeyValueStore defaultStore]; [store setObject:value forKey:key]; } @@ -257,37 +257,37 @@ Variant ICloud::set_key_values(Variant p_params) { Variant ICloud::get_key_value(Variant p_param) { String param = p_param; - + NSString* key = [[[NSString alloc] initWithUTF8String:param.utf8().get_data()] autorelease]; NSUbiquitousKeyValueStore *store = [NSUbiquitousKeyValueStore defaultStore]; - + if (![[store dictionaryRepresentation] objectForKey:key]) { return Variant(); } - + Variant result = nsobject_to_variant([[store dictionaryRepresentation] objectForKey:key]); - + return result; } Variant ICloud::get_all_key_values() { Dictionary result; - + NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore]; NSDictionary* store_dictionary = [store dictionaryRepresentation]; - + NSArray* keys = [store_dictionary allKeys]; int count = [keys count]; for (int i=0; i < count; ++i) { NSString* k = [ keys objectAtIndex:i]; NSObject* v = [store_dictionary objectForKey:k]; - + const char* str = [k UTF8String]; if (str != NULL) { result[String::utf8(str)] = nsobject_to_variant(v); } } - + return result; } @@ -320,7 +320,7 @@ ICloud::ICloud() { ERR_FAIL_COND(instance != NULL); instance = this; //connected = false; - + [ //[NSNotificationCenter defaultCenter] addObserverForName: @"notify" [NSNotificationCenter defaultCenter] addObserverForName: NSUbiquitousKeyValueStoreDidChangeExternallyNotification @@ -337,7 +337,7 @@ ICloud::ICloud() { //Array result_values; Dictionary keyValues; String reason = ""; - + if (change == NSUbiquitousKeyValueStoreServerChange) { reason = "server"; } @@ -350,27 +350,27 @@ ICloud::ICloud() { else if (change == NSUbiquitousKeyValueStoreAccountChange) { reason = "account"; } - + ret["reason"] = reason; - - + + NSUbiquitousKeyValueStore *store = [NSUbiquitousKeyValueStore defaultStore]; - + NSArray * keys = [userInfo objectForKey:NSUbiquitousKeyValueStoreChangedKeysKey]; for (NSString* key in keys) { const char* str = [key UTF8String]; if (str == NULL) { continue; } - + NSObject* object = [store objectForKey:key]; - + //figure out what kind of object it is Variant value = nsobject_to_variant(object); - + keyValues[String::utf8(str)] = value; } - + ret["changed_values"] = keyValues; pending_events.push_back(ret); } diff --git a/platform/iphone/in_app_store.mm b/platform/iphone/in_app_store.mm index fec007b7b6..a2efe2711b 100644 --- a/platform/iphone/in_app_store.mm +++ b/platform/iphone/in_app_store.mm @@ -179,35 +179,35 @@ Error InAppStore::request_product_info(Variant p_params) { ret["result"] = "ok"; ret["product_id"] = pid; ret["transaction_id"] = transactionId; - + NSData* receipt = nil; int sdk_version = 6; - + if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0){ - + NSURL *receiptFileURL = nil; NSBundle *bundle = [NSBundle mainBundle]; if ([bundle respondsToSelector:@selector(appStoreReceiptURL)]) { - + // Get the transaction receipt file path location in the app bundle. receiptFileURL = [bundle appStoreReceiptURL]; - + // Read in the contents of the transaction file. receipt = [NSData dataWithContentsOfURL:receiptFileURL]; sdk_version = 7; - + } else { // Fall back to deprecated transaction receipt, // which is still available in iOS 7. - + // Use SKPaymentTransaction's transactionReceipt. receipt = transaction.transactionReceipt; } - + }else{ receipt = transaction.transactionReceipt; } - + NSString* receipt_to_send = nil; if (receipt != nil) { @@ -217,16 +217,16 @@ Error InAppStore::request_product_info(Variant p_params) { receipt_ret["receipt"] = String::utf8(receipt_to_send != nil ? [receipt_to_send UTF8String] : ""); receipt_ret["sdk"] = sdk_version; ret["receipt"] = receipt_ret; - + InAppStore::get_singleton()->_post_event(ret); - + if (auto_finish_transactions){ [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; } else{ [pending_transactions setObject:transaction forKey:transaction.payment.productIdentifier]; } - + #ifdef MODULE_FUSEBOXX_ENABLED printf("Registering transaction on Fuseboxx!\n"); [FuseSDK registerInAppPurchase: transaction]; @@ -251,7 +251,7 @@ Error InAppStore::request_product_info(Variant p_params) { default: printf("status default %i!\n", (int)transaction.transactionState); - + break; }; }; @@ -322,7 +322,7 @@ InAppStore::InAppStore() { void InAppStore::finish_transaction(String product_id){ NSString* prod_id = [NSString stringWithCString:product_id.utf8().get_data() encoding:NSUTF8StringEncoding]; - + if ([pending_transactions objectForKey:prod_id]){ [[SKPaymentQueue defaultQueue] finishTransaction:[pending_transactions objectForKey:prod_id]]; [pending_transactions removeObjectForKey:prod_id]; diff --git a/platform/isim/detect.py b/platform/isim/detect.py index 0adbd9f413..809b0ac368 100644 --- a/platform/isim/detect.py +++ b/platform/isim/detect.py @@ -4,10 +4,10 @@ import sys def is_active(): return False - + def get_name(): return "iSIM" - + def can_build(): diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 0a6c8b1457..ae33a43f0d 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -4,7 +4,7 @@ import string def is_active(): return True - + def get_name(): return "JavaScript" @@ -95,7 +95,7 @@ def configure(env): env.Append(LINKFLAGS=['-s','ASM_JS=1']) env.Append(LINKFLAGS=['-O2']) #env.Append(LINKFLAGS=['-g4']) - + #print "CCCOM is:", env.subst('$CCCOM') #print "P: ", env['p'], " Platofrm: ", env['platform'] diff --git a/platform/nacl/detect.py b/platform/nacl/detect.py index f8849cfd25..eedb29746a 100644 --- a/platform/nacl/detect.py +++ b/platform/nacl/detect.py @@ -3,7 +3,7 @@ import sys def is_active(): return True - + def get_name(): return "NaCl" diff --git a/platform/osx/detect.py b/platform/osx/detect.py index f7cf5111f5..1f176dc22a 100644 --- a/platform/osx/detect.py +++ b/platform/osx/detect.py @@ -5,7 +5,7 @@ import sys def is_active(): return True - + def get_name(): return "OSX" diff --git a/platform/osx/dir_access_osx.mm b/platform/osx/dir_access_osx.mm index 29f8fda663..20dc1df8f4 100644 --- a/platform/osx/dir_access_osx.mm +++ b/platform/osx/dir_access_osx.mm @@ -47,9 +47,9 @@ DirAccess *DirAccessOSX::create_fs() { } bool DirAccessOSX::list_dir_begin() { - + list_dir_end(); //close any previous dir opening! - + // char real_current_dir_name[2048]; //is this enough?! //getcwd(real_current_dir_name,2048); @@ -63,7 +63,7 @@ bool DirAccessOSX::list_dir_begin() { } bool DirAccessOSX::file_exists(String p_file) { - + GLOBAL_LOCK_FUNCTION @@ -207,7 +207,7 @@ Error DirAccessOSX::make_dir(String p_dir) { GLOBAL_LOCK_FUNCTION p_dir=fix_path(p_dir); - + char real_current_dir_name[2048]; getcwd(real_current_dir_name,2048); chdir(current_dir.utf8().get_data()); //ascii since this may be unicode or wathever the host os wants @@ -326,7 +326,7 @@ size_t DirAccessOSX::get_space_left() { #else #warning THIS IS BROKEN return 0; -#endif +#endif }; diff --git a/platform/osx/godot_osx.mm b/platform/osx/godot_osx.mm index 0c32016216..02a1382b1a 100644 --- a/platform/osx/godot_osx.mm +++ b/platform/osx/godot_osx.mm @@ -50,7 +50,7 @@ static NSString *getApplicationName(void) dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle()); if (dict) appName = [dict objectForKey: @"CFBundleName"]; - + if (![appName length]) appName = [[NSProcessInfo processInfo] processName]; @@ -67,10 +67,10 @@ static void setApplicationMenu(void) NSMenuItem *menuItem; NSString *title; NSString *appName; - + appName = getApplicationName(); appleMenu = [[NSMenu alloc] initWithTitle:@""]; - + /* Add menu items */ title = [@"About " stringByAppendingString:appName]; [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; @@ -90,7 +90,7 @@ static void setApplicationMenu(void) title = [@"Quit " stringByAppendingString:appName]; [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; - + /* Put menu into the menubar */ menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; [menuItem setSubmenu:appleMenu]; @@ -112,17 +112,17 @@ static void setupWindowMenu(void) NSMenuItem *menuItem; windowMenu = [[NSMenu alloc] initWithTitle:@"Window"]; - + /* "Minimize" item */ menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"]; [windowMenu addItem:menuItem]; [menuItem release]; - + /* Put menu into the menubar */ windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""]; [windowMenuItem setSubmenu:windowMenu]; [[NSApp mainMenu] addItem:windowMenuItem]; - + /* Tell the application object that this is now the window menu */ [NSApp setWindowsMenu:windowMenu]; @@ -139,7 +139,7 @@ static void CustomApplicationMain (int argc, char **argv) /* Ensure the application object is initialised */ [NSApplication sharedApplication]; - + /* Set up the menubar */ [NSApp setMainMenu:[[NSMenu alloc] init]]; setApplicationMenu(); @@ -147,10 +147,10 @@ static void CustomApplicationMain (int argc, char **argv) main = [[main alloc] init]; [NSApp setDelegate:main]; - + /* Start the main event loop */ [NSApp run]; - + [main release]; [pool release]; } diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 4b339af6d4..6af2f347aa 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -892,7 +892,7 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi NULL, keyboardLayoutChanged, kTISNotifySelectedKeyboardInputSourceChanged, NULL, CFNotificationSuspensionBehaviorDeliverImmediately); - + window_delegate = [[GodotWindowDelegate alloc] init]; // Don't use accumulation buffer support; it's not accelerated @@ -1170,7 +1170,7 @@ void OS_OSX::warp_mouse_pos(const Point2& p_to) { mouse_y = p_to.y; } else{ //set OS position - + /* this code has not been tested, please be a kind soul and fix it if it fails! */ //local point in window coords diff --git a/platform/server/detect.py b/platform/server/detect.py index 15c5982b14..e6fab2043b 100644 --- a/platform/server/detect.py +++ b/platform/server/detect.py @@ -1,11 +1,11 @@ import os -import sys +import sys def is_active(): return True - + def get_name(): return "Server" @@ -16,20 +16,20 @@ def can_build(): return False return True # enabled - + def get_opts(): return [ ('use_llvm','Use llvm compiler','no'), ('force_32_bits','Force 32 bits binary','no') ] - + def get_flags(): return [ ('builtin_zlib', 'no'), ] - + def configure(env): diff --git a/platform/windows/detect.py b/platform/windows/detect.py index 1ad0f164d2..689cad8343 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -1,4 +1,4 @@ -# +# # tested on | Windows native | Linux cross-compilation # ------------------------+-------------------+--------------------------- # MSVS C++ 2010 Express | WORKS | n/a @@ -24,11 +24,11 @@ # ( example : "C:/Mingw-w32", "C:/Mingw-w64" ) # # - if you want to compile faster using the "-j" option, don't forget -# to install the appropriate version of the Pywin32 python extension +# to install the appropriate version of the Pywin32 python extension # available from : http://sourceforge.net/projects/pywin32/files/ # -# - before running scons, you must add into the environment path -# the path to the "/bin" directory of the Mingw version you want +# - before running scons, you must add into the environment path +# the path to the "/bin" directory of the Mingw version you want # to use : # # set PATH=C:/Mingw-w32/bin;%PATH% @@ -37,9 +37,9 @@ # - Mingw-w32 only compiles 32bits. # - Mingw-w64 only compiles 64bits. # -# - it is possible to add them both at the same time into the PATH env, -# if you also define the MINGW32_PREFIX and MINGW64_PREFIX environment -# variables. +# - it is possible to add them both at the same time into the PATH env, +# if you also define the MINGW32_PREFIX and MINGW64_PREFIX environment +# variables. # For instance, you could store that set of commands into a .bat script # that you would run just before scons : # @@ -61,14 +61,14 @@ # # - it is possible to manually override prefixes by defining # the MINGW32_PREFIX and MINGW64_PREFIX environment variables. -# +# ##### # Notes about Mingw under Windows : # -# - this is the MinGW version from http://mingw.org/ +# - this is the MinGW version from http://mingw.org/ # - install it into a path that does not contain spaces # ( example : "C:/MinGW" ) -# - several DirectX headers might be missing. You can copy them into +# - several DirectX headers might be missing. You can copy them into # the C:/MinGW/include" directory from this page : # https://code.google.com/p/mingw-lib/source/browse/trunk/working/avcodec_to_widget_5/directx_include/ # - before running scons, add the path to the "/bin" directory : @@ -84,7 +84,7 @@ # - confirm it works well with other Visual Studio versions. # - update the wiki about the pywin32 extension required for the "-j" option under Windows. # - update the wiki to document MINGW32_PREFIX and MINGW64_PREFIX -# +# import os @@ -93,16 +93,16 @@ import sys def is_active(): return True - + def get_name(): return "Windows" def can_build(): - + if (os.name=="nt"): #building natively on windows! if (os.getenv("VSINSTALLDIR")): - return True + return True else: print("\nMSVC not detected, attempting Mingw.") mingw32 = "" @@ -111,7 +111,7 @@ def can_build(): mingw32 = os.getenv("MINGW32_PREFIX") if ( os.getenv("MINGW64_PREFIX") ) : mingw64 = os.getenv("MINGW64_PREFIX") - + test = "gcc --version > NUL 2>&1" if os.system(test)!= 0 and os.system(mingw32+test)!=0 and os.system(mingw64+test)!=0 : print("- could not detect gcc.") @@ -119,27 +119,27 @@ def can_build(): return False else: print("- gcc detected.") - + return True - + if (os.name=="posix"): mingw = "i586-mingw32msvc-" mingw64 = "x86_64-w64-mingw32-" mingw32 = "i686-w64-mingw32-" - + if (os.getenv("MINGW32_PREFIX")): mingw32=os.getenv("MINGW32_PREFIX") mingw = mingw32 if (os.getenv("MINGW64_PREFIX")): mingw64=os.getenv("MINGW64_PREFIX") - + test = "gcc --version &>/dev/null" if (os.system(mingw+test) == 0 or os.system(mingw64+test) == 0 or os.system(mingw32+test) == 0): return True - + return False - + def get_opts(): mingw="" @@ -149,10 +149,10 @@ def get_opts(): mingw = "i586-mingw32msvc-" mingw32 = "i686-w64-mingw32-" mingw64 = "x86_64-w64-mingw32-" - + if os.system(mingw32+"gcc --version &>/dev/null") != 0 : mingw32 = mingw - + if (os.getenv("MINGW32_PREFIX")): mingw32=os.getenv("MINGW32_PREFIX") mingw = mingw32 @@ -164,14 +164,14 @@ def get_opts(): ('mingw_prefix','Mingw Prefix',mingw32), ('mingw_prefix_64','Mingw Prefix 64 bits',mingw64), ] - + def get_flags(): return [ ('freetype','builtin'), #use builtin freetype ('openssl','builtin'), #use builtin openssl ] - + def build_res_file( target, source, env ): cmdbase = "" @@ -245,7 +245,7 @@ def configure(env): env.Append(CCFLAGS=['/DGLEW_ENABLED']) LIBS=['winmm','opengl32','dsound','kernel32','ole32','oleaut32','user32','gdi32', 'IPHLPAPI','Shlwapi', 'wsock32', 'shell32','advapi32','dinput8','dxguid'] env.Append(LINKFLAGS=[p+env["LIBSUFFIX"] for p in LIBS]) - + env.Append(LIBPATH=[os.getenv("WindowsSdkDir")+"/Lib"]) if (os.getenv("DXSDK_DIR")): DIRECTX_PATH=os.getenv("DXSDK_DIR") @@ -304,7 +304,7 @@ def configure(env): # sys.exit(255) if (env["target"]=="release"): - + env.Append(CCFLAGS=['-msse2']) if (env["bits"]=="64"): @@ -319,7 +319,7 @@ def configure(env): env.Append(CCFLAGS=['-O2','-DDEBUG_ENABLED']) elif (env["target"]=="debug"): - + env.Append(CCFLAGS=['-g', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED']) if (env["freetype"]!="no"): @@ -366,4 +366,4 @@ def configure(env): env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } ) env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } ) - + diff --git a/platform/winrt/detect.py b/platform/winrt/detect.py index 7439f0cd55..86028d3af8 100644 --- a/platform/winrt/detect.py +++ b/platform/winrt/detect.py @@ -2,13 +2,13 @@ import os -import sys +import sys import string def is_active(): return True - + def get_name(): return "WinRT" @@ -16,12 +16,12 @@ def can_build(): if (os.name=="nt"): #building natively on windows! if (os.getenv("VSINSTALLDIR")): - return True + return True return False - + def get_opts(): return [] - + def get_flags(): return [] diff --git a/platform/x11/detect.py b/platform/x11/detect.py index 6b147db130..6b3f7147ef 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -1,12 +1,12 @@ import os -import sys +import sys import platform def is_active(): return True - + def get_name(): return "X11" @@ -20,11 +20,11 @@ def can_build(): return False # no x11 on mac for now errorval=os.system("pkg-config --version > /dev/null") - + if (errorval): print("pkg-config not found.. x11 disabled.") return False - + x11_error=os.system("pkg-config x11 --modversion > /dev/null ") if (x11_error): print("X11 not found.. x11 disabled.") @@ -39,7 +39,7 @@ def can_build(): if (x11_error): print("xcursor not found.. x11 disabled.") return False - + x11_error=os.system("pkg-config xinerama --modversion > /dev/null ") if (x11_error): print("xinerama not found.. x11 disabled.") @@ -47,7 +47,7 @@ def can_build(): return True # X11 enabled - + def get_opts(): return [ @@ -60,7 +60,7 @@ def get_opts(): ('new_wm_api', 'Use experimental window management API','no'), ('debug_release', 'Add debug symbols to release version','no'), ] - + def get_flags(): return [ @@ -68,7 +68,7 @@ def get_flags(): ("openssl", "yes"), #("theora","no"), ] - + def configure(env): diff --git a/platform/x11/joystick_linux.cpp b/platform/x11/joystick_linux.cpp index 0615f33f96..2793cc5734 100644 --- a/platform/x11/joystick_linux.cpp +++ b/platform/x11/joystick_linux.cpp @@ -89,6 +89,8 @@ joystick_linux::joystick_linux(InputDefault *in) joystick_linux::~joystick_linux() { exit_udev = true; Thread::wait_to_finish(joy_thread); + memdelete(joy_thread); + memdelete(joy_mutex); close_joystick(); } diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp index cc2e5c0d72..dc038f010c 100644 --- a/scene/2d/physics_body_2d.cpp +++ b/scene/2d/physics_body_2d.cpp @@ -544,7 +544,10 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { set_global_transform(state->get_transform()); linear_velocity=state->get_linear_velocity(); angular_velocity=state->get_angular_velocity(); - sleeping=state->is_sleeping(); + if(sleeping!=state->is_sleeping()) { + sleeping=state->is_sleeping(); + emit_signal(SceneStringNames::get_singleton()->sleeping_state_changed); + } if (get_script_instance()) get_script_instance()->call("_integrate_forces",state); set_block_transform_notify(false); // want it back @@ -934,6 +937,7 @@ void RigidBody2D::_bind_methods() { ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape"))); ADD_SIGNAL( MethodInfo("body_enter",PropertyInfo(Variant::OBJECT,"body"))); ADD_SIGNAL( MethodInfo("body_exit",PropertyInfo(Variant::OBJECT,"body"))); + ADD_SIGNAL( MethodInfo("sleeping_state_changed")); BIND_CONSTANT( MODE_STATIC ); BIND_CONSTANT( MODE_KINEMATIC ); diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp index 1a2665b6ad..bc637eed44 100644 --- a/scene/3d/physics_body.cpp +++ b/scene/3d/physics_body.cpp @@ -419,7 +419,10 @@ void RigidBody::_direct_state_changed(Object *p_state) { set_global_transform(state->get_transform()); linear_velocity=state->get_linear_velocity(); angular_velocity=state->get_angular_velocity(); - sleeping=state->is_sleeping(); + if(sleeping!=state->is_sleeping()) { + sleeping=state->is_sleeping(); + emit_signal(SceneStringNames::get_singleton()->sleeping_state_changed); + } if (get_script_instance()) get_script_instance()->call("_integrate_forces",state); set_ignore_transform_notification(false); @@ -811,6 +814,7 @@ void RigidBody::_bind_methods() { ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape"))); ADD_SIGNAL( MethodInfo("body_enter",PropertyInfo(Variant::OBJECT,"body"))); ADD_SIGNAL( MethodInfo("body_exit",PropertyInfo(Variant::OBJECT,"body"))); + ADD_SIGNAL( MethodInfo("sleeping_state_changed")); BIND_CONSTANT( MODE_STATIC ); BIND_CONSTANT( MODE_KINEMATIC ); diff --git a/scene/gui/progress_bar.cpp b/scene/gui/progress_bar.cpp index fc0e7be34f..02da8ff27e 100644 --- a/scene/gui/progress_bar.cpp +++ b/scene/gui/progress_bar.cpp @@ -35,7 +35,9 @@ Size2 ProgressBar::get_minimum_size() const { Ref<Font> font = get_font("font"); Size2 ms=bg->get_minimum_size()+bg->get_center_size(); - ms.height=MAX(ms.height,bg->get_minimum_size().height+font->get_height()); + if (percent_visible) { + ms.height=MAX(ms.height,bg->get_minimum_size().height+font->get_height()); + } return ms; } diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index c9dd2dacf9..d48b8995eb 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -44,7 +44,7 @@ static bool _is_text_char(CharType c) { static bool _is_symbol(CharType c) { - return c!='_' && ((c>='!' && c<='/') || (c>=':' && c<='@') || (c>='[' && c<='`') || (c>='{' && c<='~') || c=='\t'); + return c!='_' && ((c>='!' && c<='/') || (c>=':' && c<='@') || (c>='[' && c<='`') || (c>='{' && c<='~') || c=='\t' || c==' '); } static bool _is_char(CharType c) { @@ -671,6 +671,7 @@ void TextEdit::_notification(int p_what) { bool prev_is_number = false; bool in_keyword=false; bool in_word = false; + bool in_function_name = false; Color keyword_color; // check if line contains highlighted word @@ -790,11 +791,28 @@ void TextEdit::_notification(int p_what) { } } + if (!in_function_name && in_word && !in_keyword) { + + int k = j; + while(k < str.length() && !_is_symbol(str[k]) && str[k] != '\t' && str[k] != ' ') { + k++; + } + + if (str[k] == '(') { + in_function_name = true; + } + } + + if (is_symbol) { + in_function_name = false; + } if (in_region>=0) color=color_regions[in_region].color; else if (in_keyword) color=keyword_color; + else if (in_function_name) + color=cache.function_color; else if (is_symbol) color=symbol_color; else if (is_number) @@ -890,7 +908,12 @@ void TextEdit::_notification(int p_what) { if (cursor.column==j && cursor.line==line) { cursor_pos = Point2i( char_ofs+char_margin, ofs_y ); - VisualServer::get_singleton()->canvas_item_add_rect(ci,Rect2(cursor_pos, Size2i(1,get_row_height())),cache.font_color); + if (insert_mode) { + cursor_pos.y += get_row_height(); + VisualServer::get_singleton()->canvas_item_add_rect(ci,Rect2(cursor_pos, Size2i(char_w,1)),cache.font_color); + } else { + VisualServer::get_singleton()->canvas_item_add_rect(ci,Rect2(cursor_pos, Size2i(1,get_row_height())),cache.font_color); + } } @@ -901,8 +924,13 @@ void TextEdit::_notification(int p_what) { if (cursor.column==str.length() && cursor.line==line && (char_ofs+char_margin)>=xmargin_beg) { cursor_pos=Point2i( char_ofs+char_margin, ofs_y ); - VisualServer::get_singleton()->canvas_item_add_rect(ci,Rect2(cursor_pos, Size2i(1,get_row_height())),cache.font_color); - + if (insert_mode) { + cursor_pos.y += get_row_height(); + int char_w = cache.font->get_char_size(' ').width; + VisualServer::get_singleton()->canvas_item_add_rect(ci,Rect2(cursor_pos, Size2i(char_w,1)),cache.font_color); + } else { + VisualServer::get_singleton()->canvas_item_add_rect(ci,Rect2(cursor_pos, Size2i(1,get_row_height())),cache.font_color); + } } } @@ -1104,7 +1132,7 @@ void TextEdit::_consume_pair_symbol(CharType ch) { int new_column,new_line; - _begin_compex_operation(); + begin_complex_operation(); _insert_text(get_selection_from_line(), get_selection_from_column(), ch_single, &new_line, &new_column); @@ -1117,7 +1145,7 @@ void TextEdit::_consume_pair_symbol(CharType ch) { get_selection_to_column() + to_col_offset, ch_single_pair, &new_line,&new_column); - _end_compex_operation(); + end_complex_operation(); cursor_set_line(get_selection_to_line()); cursor_set_column(get_selection_to_column() + to_col_offset); @@ -1568,7 +1596,22 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { if(auto_brace_completion_enabled && _is_pair_symbol(chr[0])) { _consume_pair_symbol(chr[0]); } else { + + // remove the old character if in insert mode + if (insert_mode) { + begin_complex_operation(); + + // make sure we don't try and remove empty space + if (cursor.column < get_line(cursor.line).length()) { + _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1); + } + } + _insert_text_at_cursor(chr); + + if (insert_mode) { + end_complex_operation(); + } } } @@ -1597,8 +1640,10 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { k.mod.shift=false; } - // stuff to do when selection is active.. + // save here for insert mode, just in case it is cleared in the following section + bool had_selection = selection.active; + // stuff to do when selection is active.. if (selection.active) { if (readonly) @@ -1641,10 +1686,10 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { cursor_set_line(selection.from_line); cursor_set_column(selection.from_column); - _begin_compex_operation(); + begin_complex_operation(); _remove_text(selection.from_line,selection.from_column,selection.to_line,selection.to_column); _insert_text_at_cursor(txt); - _end_compex_operation(); + end_complex_operation(); selection.active=true; selection.from_column=sel_column; selection.from_line=sel_line; @@ -1702,6 +1747,7 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { } if (clear) { + begin_complex_operation(); selection.active=false; update(); _remove_text(selection.from_line,selection.from_column,selection.to_line,selection.to_column); @@ -2335,6 +2381,12 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { } } */ + if (k.scancode==KEY_INSERT) { + set_insert_mode(!insert_mode); + accept_event(); + return; + } + if (!scancode_handled && !k.mod.command) { //for german kbds if (k.unicode>=32) { @@ -2342,6 +2394,16 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { if (readonly) break; + // remove the old character if in insert mode and no selection + if (insert_mode && !had_selection) { + begin_complex_operation(); + + // make sure we don't try and remove empty space + if (cursor.column < get_line(cursor.line).length()) { + _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1); + } + } + const CharType chr[2] = {(CharType)k.unicode, 0}; if (completion_hint!="" && k.unicode==')') { @@ -2353,6 +2415,13 @@ void TextEdit::_input_event(const InputEvent& p_input_event) { _insert_text_at_cursor(chr); } + if (insert_mode && !had_selection) { + end_complex_operation(); + } + + if (selection.active != had_selection) { + end_complex_operation(); + } accept_event(); } else { @@ -2979,6 +3048,7 @@ void TextEdit::_update_caches() { cache.font_color=get_color("font_color"); cache.font_selected_color=get_color("font_selected_color"); cache.keyword_color=get_color("keyword_color"); + cache.function_color=get_color("function_color"); cache.number_color=get_color("number_color"); cache.selection_color=get_color("selection_color"); cache.mark_color=get_color("mark_color"); @@ -3543,12 +3613,12 @@ void TextEdit::clear_undo_history() { } -void TextEdit::_begin_compex_operation() { +void TextEdit::begin_complex_operation() { _push_current_op(); next_operation_is_complex=true; } -void TextEdit::_end_compex_operation() { +void TextEdit::end_complex_operation() { _push_current_op(); ERR_FAIL_COND(undo_stack.size() == 0); @@ -3595,6 +3665,15 @@ bool TextEdit::is_drawing_tabs() const{ return draw_tabs; } +void TextEdit::set_insert_mode(bool p_enabled) { + insert_mode = p_enabled; + update(); +} + +bool TextEdit::is_insert_mode() const { + return insert_mode; +} + uint32_t TextEdit::get_version() const { return current_op.version; } @@ -4087,6 +4166,7 @@ TextEdit::TextEdit() { auto_brace_completion_enabled=false; brace_matching_enabled=false; auto_indent=false; + insert_mode = false; } TextEdit::~TextEdit() diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index e7e6760379..467c49f51b 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -77,6 +77,7 @@ class TextEdit : public Control { Color font_selected_color; Color keyword_color; Color number_color; + Color function_color; Color selection_color; Color mark_color; Color breakpoint_color; @@ -220,6 +221,7 @@ class TextEdit : public Control { bool brace_matching_enabled; bool auto_indent; bool cut_copy_line; + bool insert_mode; uint64_t last_dblclk; @@ -263,8 +265,6 @@ class TextEdit : public Control { void _cursor_changed_emit(); void _text_changed_emit(); - void _begin_compex_operation(); - void _end_compex_operation(); void _push_current_op(); /* super internal api, undo/redo builds on it */ @@ -316,6 +316,9 @@ public: //void delete_char(); //void delete_line(); + void begin_complex_operation(); + void end_complex_operation(); + void set_text(String p_text); void insert_text_at_cursor(const String& p_text); void insert_at(const String& p_text, int at); @@ -389,6 +392,9 @@ public: void set_draw_tabs(bool p_draw); bool is_drawing_tabs() const; + void set_insert_mode(bool p_enabled); + bool is_insert_mode() const; + void add_keyword_color(const String& p_keyword,const Color& p_color); void add_color_region(const String& p_begin_key=String(),const String& p_end_key=String(),const Color &p_color=Color(),bool p_line_only=false); void set_symbol_color(const Color& p_color); diff --git a/scene/main/timer.cpp b/scene/main/timer.cpp index 73458e03c0..7d9bbd7f4f 100644 --- a/scene/main/timer.cpp +++ b/scene/main/timer.cpp @@ -121,6 +121,20 @@ void Timer::stop() { autostart=false; } + +void Timer::set_active(bool p_active) { + if (active == p_active) + return; + + active = p_active; + _set_process(processing); + +} + +bool Timer::is_active() const { + return active; +} + float Timer::get_time_left() const { return time_left >0 ? time_left : 0; @@ -157,9 +171,10 @@ Timer::TimerProcessMode Timer::get_timer_process_mode() const{ void Timer::_set_process(bool p_process, bool p_force) { switch (timer_process_mode) { - case TIMER_PROCESS_FIXED: set_fixed_process(p_process); break; - case TIMER_PROCESS_IDLE: set_process(p_process); break; + case TIMER_PROCESS_FIXED: set_fixed_process(p_process && active); break; + case TIMER_PROCESS_IDLE: set_process(p_process && active); break; } + processing = p_process; } void Timer::_bind_methods() { @@ -176,6 +191,9 @@ void Timer::_bind_methods() { ObjectTypeDB::bind_method(_MD("start"),&Timer::start); ObjectTypeDB::bind_method(_MD("stop"),&Timer::stop); + ObjectTypeDB::bind_method(_MD("set_active", "active"), &Timer::set_active); + ObjectTypeDB::bind_method(_MD("is_active"), &Timer::is_active); + ObjectTypeDB::bind_method(_MD("get_time_left"),&Timer::get_time_left); ObjectTypeDB::bind_method(_MD("set_timer_process_mode", "mode"), &Timer::set_timer_process_mode); @@ -198,5 +216,7 @@ Timer::Timer() { autostart=false; wait_time=1; one_shot=false; - time_left=-1; + time_left = -1; + processing = false; + active = true; } diff --git a/scene/main/timer.h b/scene/main/timer.h index 0baea76fad..688be6e4f2 100644 --- a/scene/main/timer.h +++ b/scene/main/timer.h @@ -38,6 +38,8 @@ class Timer : public Node { float wait_time; bool one_shot; bool autostart; + bool processing; + bool active; double time_left; protected: @@ -62,6 +64,8 @@ public: void start(); void stop(); + void set_active(bool p_active); + bool is_active() const; float get_time_left() const; diff --git a/scene/scene_string_names.cpp b/scene/scene_string_names.cpp index 57bde00de4..f47b61001c 100644 --- a/scene/scene_string_names.cpp +++ b/scene/scene_string_names.cpp @@ -48,6 +48,7 @@ SceneStringNames::SceneStringNames() { item_rect_changed=StaticCString::create("item_rect_changed"); size_flags_changed=StaticCString::create("size_flags_changed"); minimum_size_changed=StaticCString::create("minimum_size_changed"); + sleeping_state_changed=StaticCString::create("sleeping_state_changed"); finished=StaticCString::create("finished"); animation_changed=StaticCString::create("animation_changed"); diff --git a/scene/scene_string_names.h b/scene/scene_string_names.h index b2c0e9abf0..fc45351c33 100644 --- a/scene/scene_string_names.h +++ b/scene/scene_string_names.h @@ -62,6 +62,7 @@ public: StringName exit_tree; StringName size_flags_changed; StringName minimum_size_changed; + StringName sleeping_state_changed; StringName idle; StringName iteration; StringName update; diff --git a/tools/Godot.app/Contents/Info.plist b/tools/Godot.app/Contents/Info.plist index e2a6489782..2b58162ae8 100755 --- a/tools/Godot.app/Contents/Info.plist +++ b/tools/Godot.app/Contents/Info.plist @@ -19,11 +19,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>2.0.1</string> + <string>2.1-dev</string> <key>CFBundleSignature</key> <string>godot</string> <key>CFBundleVersion</key> - <string>2.0.1</string> + <string>2.1-dev</string> <key>NSHumanReadableCopyright</key> <string>© 2007-2016 Juan Linietsky, Ariel Manzur</string> <key>LSMinimumSystemVersion</key> diff --git a/tools/addheader/addheader.py b/tools/addheader/addheader.py index 0252eb396d..d040d8b5d6 100644 --- a/tools/addheader/addheader.py +++ b/tools/addheader/addheader.py @@ -38,7 +38,7 @@ while (fname!=""): l = fr.readline() bc=False fsingle = fname.strip() - + if (fsingle.find("/")!=-1): fsingle=fsingle[fsingle.rfind("/")+1:] rep_fl="$filename" @@ -51,19 +51,19 @@ while (fname!=""): elif (len_fl<len_fi): for x in range(len_fi-len_fl): rep_fl+=" " - if (header.find(rep_fl)!=-1): + if (header.find(rep_fl)!=-1): text=header.replace(rep_fl,rep_fi) else: text=header.replace("$filename",fsingle) - - + + while (l!=""): if ((l.find("//")!=0 and l.find("/*")!=0 and l.strip()!="") or bc): text+=l bc=True l=fr.readline() - fr.close() + fr.close() fr=open(fname.strip(),"wb") fr.write(text) fr.close() diff --git a/tools/bmfhdr/makehdr.py b/tools/bmfhdr/makehdr.py index c09c59c55d..0f6f453004 100644 --- a/tools/bmfhdr/makehdr.py +++ b/tools/bmfhdr/makehdr.py @@ -4,7 +4,7 @@ import sys if (len(sys.argv)!=2): print("Pass me a .fnt argument!") - + f = open(sys.argv[1],"rb") name = sys.argv[1].lower().replace(".fnt","") @@ -24,7 +24,7 @@ while(l!=""): l=f.readline() continue t = l[0:fs] - + dv = l[fs+1:].split(" ") d = {} for x in dv: @@ -32,12 +32,12 @@ while(l!=""): continue s = x.split("=") d[ s[0] ] = s[1] - - + + if (t=="common"): font_height=d["lineHeight"] font_ascent=d["base"] - + if (t=="char"): font_chars.append(d["id"]) font_chars.append(d["x"]) @@ -48,11 +48,11 @@ while(l!=""): font_chars.append(d["yoffset"]) font_chars.append(d["xadvance"]) font_cc+=1 - - - + + + l = f.readline() - + print("static const int _bi_font_"+name+"_height="+str(font_height)+";") print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";") @@ -60,11 +60,11 @@ print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";") cstr="static const int _bi_font_"+name+"_characters={" for i in range(len(font_chars)): - c=font_chars[i] + c=font_chars[i] if (i>0): cstr+=", " cstr+=c - + cstr+=("};") - + print(cstr)
\ No newline at end of file diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp index 02b0e9447a..6d033a5c25 100644 --- a/tools/editor/editor_node.cpp +++ b/tools/editor/editor_node.cpp @@ -2076,8 +2076,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) { Node *scene = editor_data.get_edited_scene_root(); if (scene && scene->get_filename()!="") { - //_save_scene(scene->get_filename()); - _save_scene_with_preview(scene->get_filename()); + // save in background if in the script editor + if (_get_current_main_editor() == EDITOR_SCRIPT) { + _save_scene(scene->get_filename()); + } else { + _save_scene_with_preview(scene->get_filename()); + } return; }; // fallthrough to save_as diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp index b86e4cc51f..a7c01e0f6f 100644 --- a/tools/editor/editor_settings.cpp +++ b/tools/editor/editor_settings.cpp @@ -397,6 +397,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { set("text_editor/keyword_color",Color::html("ffffb3")); set("text_editor/base_type_color",Color::html("a4ffd4")); set("text_editor/engine_type_color",Color::html("83d3ff")); + set("text_editor/function_color",Color::html("66a2ce")); set("text_editor/comment_color",Color::html("983d1b")); set("text_editor/string_color",Color::html("ef6ebe")); set("text_editor/number_color",Color::html("EB9532")); @@ -413,6 +414,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["text_editor/tab_size"]=PropertyInfo(Variant::INT,"text_editor/tab_size",PROPERTY_HINT_RANGE,"1, 64, 1"); // size of 0 crashes. set("text_editor/draw_tabs", true); + set("text_editor/show_line_numbers", true); + set("text_editor/idle_parse_delay",2); set("text_editor/create_signal_callbacks",true); set("text_editor/autosave_interval_secs",0); diff --git a/tools/editor/icons/make_icons.py b/tools/editor/icons/make_icons.py index 9752fef6fe..e06cbac720 100644 --- a/tools/editor/icons/make_icons.py +++ b/tools/editor/icons/make_icons.py @@ -10,29 +10,29 @@ f.write("#include \"editor_icons.h\"\n\n") f.write("#include \"scene/resources/theme.h\"\n\n") for x in pixmaps: - + var_str=x[:-4]+"_png"; - + f.write("static const unsigned char "+ var_str +"[]={\n"); - + pngf=open(x,"rb"); - + b=pngf.read(1); while(len(b)==1): f.write(hex(ord(b))) b=pngf.read(1); if (len(b)==1): f.write(",") - + f.write("\n};\n\n\n"); pngf.close(); - + f.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png) {\n") f.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n") f.write("\ttexture->create_from_image( Image(p_png),ImageTexture::FLAG_FILTER );\n") f.write("\treturn texture;\n") f.write("}\n\n") - + f.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n") diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp index 4772583c55..1b059f3d27 100644 --- a/tools/editor/plugins/script_editor_plugin.cpp +++ b/tools/editor/plugins/script_editor_plugin.cpp @@ -294,6 +294,7 @@ void ScriptTextEditor::_load_theme_settings() { get_text_edit()->add_color_override("current_line_color",EDITOR_DEF("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15))); get_text_edit()->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15))); get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2))); + get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8))); Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2)); @@ -1070,6 +1071,7 @@ void ScriptEditor::_menu_option(int p_option) { if (scr.is_null()) return; + tx->begin_complex_operation(); if (tx->is_selection_active()) { int from_line = tx->get_selection_from_line(); @@ -1101,6 +1103,7 @@ void ScriptEditor::_menu_option(int p_option) { swap_lines(tx, line_id, next_id); } + tx->end_complex_operation(); tx->update(); } break; @@ -1111,6 +1114,7 @@ void ScriptEditor::_menu_option(int p_option) { if (scr.is_null()) return; + tx->begin_complex_operation(); if (tx->is_selection_active()) { int from_line = tx->get_selection_from_line(); @@ -1142,6 +1146,7 @@ void ScriptEditor::_menu_option(int p_option) { swap_lines(tx, line_id, next_id); } + tx->end_complex_operation(); tx->update(); } break; @@ -1152,7 +1157,7 @@ void ScriptEditor::_menu_option(int p_option) { if (scr.is_null()) return; - + tx->begin_complex_operation(); if (tx->is_selection_active()) { int begin = tx->get_selection_from_line(); @@ -1191,6 +1196,7 @@ void ScriptEditor::_menu_option(int p_option) { tx->set_line(begin, line_text); } } + tx->end_complex_operation(); tx->update(); //tx->deselect(); @@ -1202,6 +1208,7 @@ void ScriptEditor::_menu_option(int p_option) { if (scr.is_null()) return; + tx->begin_complex_operation(); if (tx->is_selection_active()) { int begin = tx->get_selection_from_line(); @@ -1220,6 +1227,7 @@ void ScriptEditor::_menu_option(int p_option) { line_text = '\t' + line_text; tx->set_line(begin, line_text); } + tx->end_complex_operation(); tx->update(); //tx->deselect(); @@ -1251,11 +1259,16 @@ void ScriptEditor::_menu_option(int p_option) { return; - + tx->begin_complex_operation(); if (tx->is_selection_active()) { int begin = tx->get_selection_from_line(); int end = tx->get_selection_to_line(); + + // End of selection ends on the first column of the last line, ignore it. + if(tx->get_selection_to_column() == 0) + end -= 1; + for (int i = begin; i <= end; i++) { String line_text = tx->get_line(i); @@ -1278,6 +1291,7 @@ void ScriptEditor::_menu_option(int p_option) { line_text = "#" + line_text; tx->set_line(begin, line_text); } + tx->end_complex_operation(); tx->update(); //tx->deselect(); @@ -1933,6 +1947,7 @@ void ScriptEditor::edit(const Ref<Script>& p_script) { ste->get_text_edit()->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/auto_brace_complete")); ste->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); ste->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); + ste->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); ste->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); ste->get_text_edit()->set_callhint_settings( EditorSettings::get_singleton()->get("text_editor/put_callhint_tooltip_below_current_line"), @@ -2073,6 +2088,7 @@ void ScriptEditor::_editor_settings_changed() { ste->get_text_edit()->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/scroll_past_end_of_file")); ste->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); ste->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); + ste->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); ste->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); } @@ -2702,7 +2718,7 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) { EDITOR_DEF("text_editor/script_temperature_history_size",15); EDITOR_DEF("text_editor/script_temperature_hot_color",Color(1,0,0,0.3)); EDITOR_DEF("text_editor/script_temperature_cold_color",Color(0,0,1,0.3)); - EDITOR_DEF("text_editor/group_help_pages",false); + EDITOR_DEF("text_editor/group_help_pages",true); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"external_editor/exec_path",PROPERTY_HINT_GLOBAL_FILE)); EDITOR_DEF("external_editor/exec_flags",""); diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp index 79ff78ca0d..c78b3086ea 100644 --- a/tools/editor/plugins/spatial_editor_plugin.cpp +++ b/tools/editor/plugins/spatial_editor_plugin.cpp @@ -51,7 +51,31 @@ #define GIZMO_SCALE_DEFAULT 0.15 -//void SpatialEditorViewport::_update_camera(); +void SpatialEditorViewport::_update_camera() { + if (orthogonal) { + Size2 size = get_size(); + Size2 vpsize = Point2(cursor.distance*size.get_aspect(), cursor.distance / size.get_aspect()); + //camera->set_orthogonal(size.width*cursor.distance,get_znear(),get_zfar()); + camera->set_orthogonal(2 * cursor.distance, 0.1, 8192); + } + else + camera->set_perspective(get_fov(), get_znear(), get_zfar()); + + Transform camera_transform; + camera_transform.translate(cursor.pos); + camera_transform.basis.rotate(Vector3(0, 1, 0), cursor.y_rot); + camera_transform.basis.rotate(Vector3(1, 0, 0), cursor.x_rot); + + if (orthogonal) + camera_transform.translate(0, 0, 4096); + else + camera_transform.translate(0, 0, cursor.distance); + + if (camera->get_global_transform() != camera_transform) { + camera->set_global_transform(camera_transform); + update_transform_gizmo_view(); + } +} String SpatialEditorGizmo::get_handle_name(int p_idx) const { @@ -819,7 +843,6 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { } } - switch(p_event.type) { case InputEvent::MOUSE_BUTTON: { @@ -1204,11 +1227,9 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { } } break; case InputEvent::MOUSE_MOTION: { - const InputEventMouseMotion &m=p_event.mouse_motion; _edit.mouse_pos=Point2(p_event.mouse_motion.x,p_event.mouse_motion.y); - - + if (spatial_editor->get_selected()) { @@ -1244,7 +1265,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme"); NavigationMode nav_mode = NAVIGATION_NONE; - + if (_edit.gizmo.is_valid()) { Plane plane=Plane(_edit.gizmo_initial_pos,_get_camera_normal()); @@ -1558,6 +1579,26 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) { if (m.mod.alt) nav_mode = NAVIGATION_PAN; } + }else{ + // Handle trackpad (no external mouse) use case + int mod = 0; + if (m.mod.shift) + mod=KEY_SHIFT; + if (m.mod.alt) + mod=KEY_ALT; + if (m.mod.control) + mod=KEY_CONTROL; + if (m.mod.meta) + mod=KEY_META; + + if(mod){ + if (mod == _get_key_modifier("3d_editor/pan_modifier")) + nav_mode = NAVIGATION_PAN; + else if (mod == _get_key_modifier("3d_editor/zoom_modifier")) + nav_mode = NAVIGATION_ZOOM; + else if (mod == _get_key_modifier("3d_editor/orbit_modifier")) + nav_mode = NAVIGATION_ORBIT; + } } switch(nav_mode) { @@ -1770,6 +1811,10 @@ void SpatialEditorViewport::_notification(int p_what) { bool visible=is_visible(); set_process(visible); + + if (visible) + _update_camera(); + call_deferred("update_transform_gizmo_view"); } @@ -1791,28 +1836,7 @@ void SpatialEditorViewport::_notification(int p_what) { } */ - if (orthogonal) { - Size2 size=get_size(); - Size2 vpsize = Point2(cursor.distance*size.get_aspect(),cursor.distance/size.get_aspect()); - //camera->set_orthogonal(size.width*cursor.distance,get_znear(),get_zfar()); - camera->set_orthogonal(2*cursor.distance,0.1,8192); - } else - camera->set_perspective(get_fov(),get_znear(),get_zfar()); - - Transform camera_transform; - camera_transform.translate( cursor.pos ); - camera_transform.basis.rotate(Vector3(0,1,0),cursor.y_rot); - camera_transform.basis.rotate(Vector3(1,0,0),cursor.x_rot); - - if (orthogonal) - camera_transform.translate(0,0,4096); - else - camera_transform.translate(0,0,cursor.distance); - - if (camera->get_global_transform()!=camera_transform) { - camera->set_global_transform( camera_transform ); - update_transform_gizmo_view(); - } + _update_camera(); Map<Node*,Object*> &selection = editor_selection->get_selection(); @@ -1915,7 +1939,6 @@ void SpatialEditorViewport::_notification(int p_what) { surface->connect("mouse_enter",this,"_smouseenter"); preview_camera->set_icon(get_icon("Camera","EditorIcons")); _init_gizmo_instance(index); - } if (p_what==NOTIFICATION_EXIT_TREE) { @@ -3579,6 +3602,17 @@ void SpatialEditor::_unhandled_key_input(InputEvent p_event) { case KEY_E: _menu_item_pressed(MENU_TOOL_ROTATE); break; case KEY_R: _menu_item_pressed(MENU_TOOL_SCALE); break; + case KEY_Z: { + if (k.mod.shift || k.mod.control || k.mod.command) + break; + + if (view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_DISPLAY_WIREFRAME))) { + _menu_item_pressed(MENU_VIEW_DISPLAY_NORMAL); + } else { + _menu_item_pressed(MENU_VIEW_DISPLAY_WIREFRAME); + } + } break; + #if 0 #endif } diff --git a/tools/export/blender25/godot_export_manager.py b/tools/export/blender25/godot_export_manager.py index 582d76f94f..a249611c71 100644 --- a/tools/export/blender25/godot_export_manager.py +++ b/tools/export/blender25/godot_export_manager.py @@ -41,9 +41,9 @@ class godot_export_manager(bpy.types.Panel): bl_space_type = 'PROPERTIES' bl_region_type = 'WINDOW' bl_context = "scene" - + bpy.types.Scene.godot_export_on_save = BoolProperty(default=False) - + ### draw function for all ui elements def draw(self, context): layout = self.layout @@ -51,56 +51,56 @@ class godot_export_manager(bpy.types.Panel): scene = bpy.data.scenes[0] ob = context.object scene = context.scene - + row = layout.row() col = row.column() col.prop(scene,"godot_export_on_save",text="Export Groups on save") - + row = layout.row() col = row.column(align=True) op = col.operator("scene.godot_add_objects_to_group",text="Add selected objects to Group",icon="COPYDOWN") - + op = col.operator("scene.godot_delete_objects_from_group",text="Delete selected objects from Group",icon="PASTEDOWN") - - - + + + row = layout.row() col = row.column() col.label(text="Export Groups:") - - + + row = layout.row() col = row.column() - + col.template_list("UI_List_Godot","dummy",scene, "godot_export_groups", scene, "godot_export_groups_index",rows=1,maxrows=10,type='DEFAULT') - + col = row.column(align=True) col.operator("scene.godot_add_export_group",text="",icon="ZOOMIN") col.operator("scene.godot_delete_export_group",text="",icon="ZOOMOUT") col.operator("scene.godot_export_all_groups",text="",icon="EXPORT") - - if len(scene.godot_export_groups) > 0: + + if len(scene.godot_export_groups) > 0: row = layout.row() col = row.column() group = scene.godot_export_groups[scene.godot_export_groups_index] col.prop(group,"name",text="Group Name") col.prop(group,"export_name",text="Export Name") col.prop(group,"export_path",text="Export Filepath") - + row = layout.row() col = row.column() row = layout.row() col = row.column() col.label(text="Export Settings:") - + col = col.row(align=True) col.prop(group,"apply_loc",toggle=True,icon="MAN_TRANS") col.prop(group,"apply_rot",toggle=True,icon="MAN_ROT") col.prop(group,"apply_scale",toggle=True,icon="MAN_SCALE") - + row = layout.row() col = row.column() - + col.prop(group,"use_include_particle_duplicates") col.prop(group,"use_mesh_modifiers") col.prop(group,"use_tangent_arrays") @@ -120,25 +120,25 @@ class UI_List_Godot(bpy.types.UIList): ob = data slot = item col = layout.row(align=True) - + col.label(text=item.name,icon="GROUP") col.prop(item,"active",text="") - + op = col.operator("scene.godot_select_group_objects",text="",emboss=False,icon="RESTRICT_SELECT_OFF") op.idx = index op = col.operator("scene.godot_export_group",text="",emboss=False,icon="EXPORT") op.idx = index - + class add_objects_to_group(bpy.types.Operator): bl_idname = "scene.godot_add_objects_to_group" bl_label = "Add Objects to Group" bl_description = "Adds the selected Objects to the active group below." - + undo = BoolProperty(default=True) - + def execute(self,context): scene = context.scene - + objects_str = "" if len(scene.godot_export_groups) > 0: for i,object in enumerate(context.selected_objects): @@ -148,57 +148,57 @@ class add_objects_to_group(bpy.types.Operator): if i == 0: objects_str += object.name else: - objects_str += ", "+object.name - - + objects_str += ", "+object.name + + self.report({'INFO'}, objects_str + " added to group." ) if self.undo: bpy.ops.ed.undo_push(message="Objects added to group") else: - self.report({'WARNING'}, "Create a group first." ) + self.report({'WARNING'}, "Create a group first." ) return{'FINISHED'} class del_objects_from_group(bpy.types.Operator): bl_idname = "scene.godot_delete_objects_from_group" bl_label = "Delete Objects from Group" bl_description = "Delets the selected Objects from the active group below." - + def execute(self,context): scene = context.scene - + if len(scene.godot_export_groups) > 0: - + selected_objects = [] for object in context.selected_objects: selected_objects.append(object.name) - + objects_str = "" j = 0 for i,node in enumerate(scene.godot_export_groups[scene.godot_export_groups_index].nodes): if node.name in selected_objects: scene.godot_export_groups[scene.godot_export_groups_index].nodes.remove(i) - + if j == 0: objects_str += object.name else: - objects_str += ", "+object.name + objects_str += ", "+object.name j+=1 - - - self.report({'INFO'}, objects_str + " deleted from group." ) + + + self.report({'INFO'}, objects_str + " deleted from group." ) bpy.ops.ed.undo_push(message="Objects deleted from group") else: - self.report({'WARNING'}, "There is no group to delete from." ) + self.report({'WARNING'}, "There is no group to delete from." ) return{'FINISHED'} class select_group_objects(bpy.types.Operator): bl_idname = "scene.godot_select_group_objects" bl_label = "Select Group Objects" bl_description = "Will select all group Objects in the scene." - + idx = IntProperty() - + def execute(self,context): scene = context.scene for object in context.scene.objects: @@ -208,12 +208,12 @@ class select_group_objects(bpy.types.Operator): bpy.data.objects[node.name].select = True context.scene.objects.active = bpy.data.objects[node.name] return{'FINISHED'} - + class export_groups_autosave(bpy.types.Operator): bl_idname = "scene.godot_export_groups_autosave" bl_label = "Export All Groups" bl_description = "Exports all groups to Collada." - + def execute(self,context): scene = context.scene if scene.godot_export_on_save: @@ -221,57 +221,57 @@ class export_groups_autosave(bpy.types.Operator): if scene.godot_export_groups[i].active: bpy.ops.scene.godot_export_group(idx=i) self.report({'INFO'}, "All Groups exported." ) - bpy.ops.ed.undo_push(message="Export all Groups") + bpy.ops.ed.undo_push(message="Export all Groups") return{'FINISHED'} - + class export_all_groups(bpy.types.Operator): bl_idname = "scene.godot_export_all_groups" bl_label = "Export All Groups" bl_description = "Exports all groups to Collada." - + def execute(self,context): scene = context.scene - + for i in range(0,len(scene.godot_export_groups)): bpy.ops.scene.godot_export_group(idx=i,export_all=True) - + self.report({'INFO'}, "All Groups exported." ) - return{'FINISHED'} - - + return{'FINISHED'} + + class export_group(bpy.types.Operator): bl_idname = "scene.godot_export_group" bl_label = "Export Group" bl_description = "Exports the active group to destination folder as Collada file." - + idx = IntProperty(default=0) export_all = BoolProperty(default=False) - + def copy_object_recursive(self,ob,parent,single_user = True): new_ob = bpy.data.objects[ob.name].copy() if single_user or ob.type=="ARMATURE": new_mesh_data = new_ob.data.copy() new_ob.data = new_mesh_data bpy.context.scene.objects.link(new_ob) - + if ob != parent: new_ob.parent = parent else: - new_ob.parent = None - - for child in ob.children: + new_ob.parent = None + + for child in ob.children: self.copy_object_recursive(child,new_ob,single_user) - new_ob.select = True + new_ob.select = True return new_ob - + def delete_object(self,ob): if ob != None: for child in ob.children: self.delete_object(child) bpy.context.scene.objects.unlink(ob) - bpy.data.objects.remove(ob) - + bpy.data.objects.remove(ob) + def convert_group_to_node(self,group): if group.dupli_group != None: for object in group.dupli_group.objects: @@ -281,48 +281,48 @@ class export_group(bpy.types.Operator): object.matrix_local = Matrix() object.matrix_local *= group.matrix_local object.matrix_local *= matrix - - self.delete_object(group) - + + self.delete_object(group) + def execute(self,context): - + scene = context.scene group = context.scene.godot_export_groups - + if not group[self.idx].active and self.export_all: return{'FINISHED'} - + for i,object in enumerate(group[self.idx].nodes): if object.name in bpy.data.objects: pass else: group[self.idx].nodes.remove(i) bpy.ops.ed.undo_push(message="Clear not existent Group Nodes.") - + path = group[self.idx].export_path if (path.find("//")==0 or path.find("\\\\")==0): #if relative, convert to absolute path = bpy.path.abspath(path) path = path.replace("\\","/") - - ### if path exists and group export name is set the group will be exported + + ### if path exists and group export name is set the group will be exported if os.path.exists(path) and group[self.idx].export_name != "": - + context.scene.layers = [True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True] - - + + if group[self.idx].export_name.endswith(".dae"): path = os.path.join(path,group[self.idx].export_name) - else: + else: path = os.path.join(path,group[self.idx].export_name+".dae") - - hide_select = [] + + hide_select = [] for object in context.scene.objects: hide_select.append(object.hide_select) object.hide_select = False object.select = False context.scene.objects.active = None - + ### make particle duplicates, parent and select them nodes_to_be_added = [] if group[self.idx].use_include_particle_duplicates: @@ -341,79 +341,79 @@ class export_group(bpy.types.Operator): context.scene.objects.active = None for object in nodes_to_be_added: object.select = True - + ### select all other nodes from the group for i,object in enumerate(group[self.idx].nodes): if bpy.data.objects[object.name].type == "EMPTY": self.convert_group_to_node(bpy.data.objects[object.name]) - else: + else: bpy.data.objects[object.name].select = True - + bpy.ops.object.transform_apply(location=group[self.idx].apply_loc, rotation=group[self.idx].apply_rot, scale=group[self.idx].apply_scale) - bpy.ops.export_scene.dae(check_existing=True, filepath=path, filter_glob="*.dae", object_types=group[self.idx].object_types, use_export_selected=group[self.idx].use_export_selected, use_mesh_modifiers=group[self.idx].use_mesh_modifiers, use_tangent_arrays=group[self.idx].use_tangent_arrays, use_triangles=group[self.idx].use_triangles, use_copy_images=group[self.idx].use_copy_images, use_active_layers=group[self.idx].use_active_layers, use_anim=group[self.idx].use_anim, use_anim_action_all=group[self.idx].use_anim_action_all, use_anim_skip_noexp=group[self.idx].use_anim_skip_noexp, use_anim_optimize=group[self.idx].use_anim_optimize, anim_optimize_precision=group[self.idx].anim_optimize_precision, use_metadata=group[self.idx].use_metadata) - - self.report({'INFO'}, '"'+group[self.idx].name+'"' + " Group exported." ) + bpy.ops.export_scene.dae(check_existing=True, filepath=path, filter_glob="*.dae", object_types=group[self.idx].object_types, use_export_selected=group[self.idx].use_export_selected, use_mesh_modifiers=group[self.idx].use_mesh_modifiers, use_tangent_arrays=group[self.idx].use_tangent_arrays, use_triangles=group[self.idx].use_triangles, use_copy_images=group[self.idx].use_copy_images, use_active_layers=group[self.idx].use_active_layers, use_anim=group[self.idx].use_anim, use_anim_action_all=group[self.idx].use_anim_action_all, use_anim_skip_noexp=group[self.idx].use_anim_skip_noexp, use_anim_optimize=group[self.idx].use_anim_optimize, anim_optimize_precision=group[self.idx].anim_optimize_precision, use_metadata=group[self.idx].use_metadata) + + self.report({'INFO'}, '"'+group[self.idx].name+'"' + " Group exported." ) msg = "Export Group "+group[self.idx].name - + bpy.ops.ed.undo_push(message="") bpy.ops.ed.undo() bpy.ops.ed.undo_push(message=msg) - + else: - self.report({'INFO'}, "Define Export Name and Export Path." ) + self.report({'INFO'}, "Define Export Name and Export Path." ) return{'FINISHED'} class add_export_group(bpy.types.Operator): bl_idname = "scene.godot_add_export_group" bl_label = "Adds a new export Group" bl_description = "Creates a new Export Group with the selected Objects assigned to it." - + def execute(self,context): scene = context.scene - + item = scene.godot_export_groups.add() item.name = "New Group" for object in context.selected_objects: node = item.nodes.add() node.name = object.name - scene.godot_export_groups_index = len(scene.godot_export_groups)-1 + scene.godot_export_groups_index = len(scene.godot_export_groups)-1 bpy.ops.ed.undo_push(message="Create New Export Group") return{'FINISHED'} - + class del_export_group(bpy.types.Operator): bl_idname = "scene.godot_delete_export_group" bl_label = "Delets the selected export Group" bl_description = "Delets the active Export Group." - + def invoke(self, context, event): - wm = context.window_manager + wm = context.window_manager return wm.invoke_confirm(self,event) - + def execute(self,context): scene = context.scene - + scene.godot_export_groups.remove(scene.godot_export_groups_index) if scene.godot_export_groups_index > 0: scene.godot_export_groups_index -= 1 bpy.ops.ed.undo_push(message="Delete Export Group") - return{'FINISHED'} + return{'FINISHED'} class godot_node_list(bpy.types.PropertyGroup): name = StringProperty() - + class godot_export_groups(bpy.types.PropertyGroup): name = StringProperty(name="Group Name") export_name = StringProperty(name="scene_name") nodes = CollectionProperty(type=godot_node_list) export_path = StringProperty(subtype="DIR_PATH") active = BoolProperty(default=True,description="Export Group") - + object_types = EnumProperty(name="Object Types",options={'ENUM_FLAG'},items=(('EMPTY', "Empty", ""),('CAMERA', "Camera", ""),('LAMP', "Lamp", ""),('ARMATURE', "Armature", ""),('MESH', "Mesh", ""),('CURVE', "Curve", ""),),default={'EMPTY', 'CAMERA', 'LAMP', 'ARMATURE', 'MESH','CURVE'}) - + apply_scale = BoolProperty(name="Apply Scale",description="Apply Scale before export.",default=False) apply_rot = BoolProperty(name="Apply Rotation",description="Apply Rotation before export.",default=False) apply_loc = BoolProperty(name="Apply Location",description="Apply Location before export.",default=False) - + use_export_selected = BoolProperty(name="Selected Objects",description="Export only selected objects (and visible in active layers if that applies).",default=True) use_mesh_modifiers = BoolProperty(name="Apply Modifiers",description="Apply modifiers to mesh objects (on a copy!).",default=True) use_tangent_arrays = BoolProperty(name="Tangent Arrays",description="Export Tangent and Binormal arrays (for normalmapping).",default=False) @@ -431,7 +431,7 @@ class godot_export_groups(bpy.types.PropertyGroup): use_metadata = BoolProperty(name="Use Metadata",default=True,options={'HIDDEN'}) use_include_particle_duplicates = BoolProperty(name="Include Particle Duplicates",default=True) -def register(): +def register(): bpy.utils.register_class(godot_export_manager) bpy.utils.register_class(godot_node_list) bpy.utils.register_class(godot_export_groups) @@ -465,7 +465,7 @@ def unregister(): @persistent def auto_export(dummy): bpy.ops.scene.godot_export_groups_autosave() - + bpy.app.handlers.save_post.append(auto_export) if __name__ == "__main__": diff --git a/tools/export/blender25/io_scene_dae/__init__.py b/tools/export/blender25/io_scene_dae/__init__.py index 182ec21e63..a1a0eabbbe 100644 --- a/tools/export/blender25/io_scene_dae/__init__.py +++ b/tools/export/blender25/io_scene_dae/__init__.py @@ -59,7 +59,7 @@ class ExportDAE(bpy.types.Operator, ExportHelper): # List of operator properties, the attributes will be assigned # to the class instance from the operator settings before calling. - + object_types = EnumProperty( name="Object Types", options={'ENUM_FLAG'}, diff --git a/tools/export/blender25/io_scene_dae/export_dae.py b/tools/export/blender25/io_scene_dae/export_dae.py index 370dc359b5..cdd845e384 100644 --- a/tools/export/blender25/io_scene_dae/export_dae.py +++ b/tools/export/blender25/io_scene_dae/export_dae.py @@ -171,38 +171,38 @@ class DaeExporter: def export_image(self,image): if (image in self.image_cache): return self.image_cache[image] - + imgpath = image.filepath if (imgpath.find("//")==0 or imgpath.find("\\\\")==0): #if relative, convert to absolute imgpath = bpy.path.abspath(imgpath) #path is absolute, now do something! - + if (self.config["use_copy_images"]): #copy image basedir = os.path.dirname(self.path)+"/images" if (not os.path.isdir(basedir)): os.makedirs(basedir) - + if os.path.isfile(imgpath): dstfile=basedir+"/"+os.path.basename(imgpath) - + if (not os.path.isfile(dstfile)): shutil.copy(imgpath,dstfile) imgpath="images/"+os.path.basename(imgpath) else: ### if file is not found save it as png file in the destination folder - img_tmp_path = image.filepath + img_tmp_path = image.filepath if img_tmp_path.endswith((".bmp",".rgb",".png",".jpeg",".jpg",".jp2",".tga",".cin",".dpx",".exr",".hdr",".tif")): image.filepath = basedir+"/"+os.path.basename(img_tmp_path) - else: + else: image.filepath = basedir+"/"+image.name+".png" - + dstfile=basedir+"/"+os.path.basename(image.filepath) - + if (not os.path.isfile(dstfile)): - + image.save() imgpath="images/"+os.path.basename(image.filepath) image.filepath = img_tmp_path @@ -211,15 +211,15 @@ class DaeExporter: #export relative, always, no one wants absolute paths. try: imgpath = os.path.relpath(imgpath,os.path.dirname(self.path)).replace("\\","/") # export unix compatible always - + except: pass #fails sometimes, not sure why - + imgid = self.new_id("image") print("FOR: "+imgpath) - + # if (not os.path.isfile(imgpath)): # print("NOT FILE?") # if imgpath.endswith((".bmp",".rgb",".png",".jpeg",".jpg",".jp2",".tga",".cin",".dpx",".exr",".hdr",".tif")): @@ -956,7 +956,7 @@ class DaeExporter: self.writel(S_NODES,il,'<instance_controller url="#'+meshdata["morph_id"]+'">') close_controller=True elif (armature==None): - self.writel(S_NODES,il,'<instance_geometry url="#'+meshdata["id"]+'">') + self.writel(S_NODES,il,'<instance_geometry url="#'+meshdata["id"]+'">') if (len(meshdata["material_assign"])>0): @@ -1520,7 +1520,7 @@ class DaeExporter: tmp_bone_mat.append(Matrix(bone.matrix_basis)) bone.matrix_basis = Matrix() tmp_mat.append([Matrix(s.matrix_local),tmp_bone_mat]) - + self.writel(S_ANIM,0,'<library_animations>') @@ -1561,11 +1561,11 @@ class DaeExporter: if (not y in allowed_skeletons): allowed_skeletons.append(y) y.animation_data.action=x; - + y.matrix_local = tmp_mat[i][0] for j,bone in enumerate(s.pose.bones): bone.matrix_basis = Matrix() - + #print("allowed skeletons "+str(allowed_skeletons)) @@ -1600,9 +1600,9 @@ class DaeExporter: else: self.export_animation(self.scene.frame_start,self.scene.frame_end) - - - + + + self.writel(S_ANIM,0,'</library_animations>') def export(self): @@ -1684,7 +1684,7 @@ class DaeExporter: self.valid_nodes=[] self.armature_for_morph={} self.used_bones=[] - self.wrongvtx_report=False + self.wrongvtx_report=False diff --git a/tools/glwrapper/makewrapper.py b/tools/glwrapper/makewrapper.py index cde976d5f9..2e5f06be12 100644 --- a/tools/glwrapper/makewrapper.py +++ b/tools/glwrapper/makewrapper.py @@ -4,27 +4,27 @@ import sys if (len(sys.argv)<2): print("usage: makewrapper.py <headers>") sys.exit(255) - + functions=[] types=[] constants=[] - + READ_FUNCTIONS=0 READ_TYPES=1 READ_CONSTANTS=2 - + read_what=READ_TYPES - + for x in (range(len(sys.argv)-1)): f=open(sys.argv[x+1],"r") - + while(True): - + line=f.readline() if (line==""): break - + line=line.replace("\n","").strip() """ if (line.find("[types]")!=-1): @@ -37,7 +37,7 @@ for x in (range(len(sys.argv)-1)): read_what=READ_FUNCTIONS continue """ - + if (line.find("#define")!=-1): if (line.find("0x")==-1 and line.find("GL_VERSION")==-1): continue @@ -51,48 +51,48 @@ for x in (range(len(sys.argv)-1)): if (line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("NV")!=-1): continue - line=line.replace("APIENTRY","") - line=line.replace("GLAPI","") - + line=line.replace("APIENTRY","") + line=line.replace("GLAPI","") + glpos=line.find(" gl") if (glpos==-1): - + glpos=line.find("\tgl") if (glpos==-1): continue - + ret=line[:glpos].strip(); - + line=line[glpos:].strip() namepos=line.find("(") - + if (namepos==-1): continue - + name=line[:namepos].strip() line=line[namepos:] - + argpos=line.rfind(")") if (argpos==-1): continue - + args=line[1:argpos] - + funcdata={} funcdata["ret"]=ret funcdata["name"]=name funcdata["args"]=args - + functions.append(funcdata) print(funcdata) - - - + + + #print(types) #print(constants) #print(functions) - - + + f=open("glwrapper.h","w") f.write("#ifndef GL_WRAPPER\n") @@ -109,10 +109,10 @@ header_code="""\ #error glATI.h included before glwrapper.h #endif -#define __gl_h_ -#define __GL_H__ -#define __glext_h_ -#define __GLEXT_H_ +#define __gl_h_ +#define __GL_H__ +#define __glext_h_ +#define __GLEXT_H_ #define __gl_ATI_h_ #define GL_TRUE 1 @@ -138,7 +138,7 @@ f.write("#define GLWRP_APIENTRY \n") f.write("#endif\n\n"); for x in types: f.write(x+"\n") - + f.write("\n\n") for x in constants: @@ -153,24 +153,24 @@ for x in functions: f.write("\n\n") f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n"); f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n") - + f.write("#ifdef __cplusplus\n}\n#endif\n") f.write("#endif\n\n") - + f=open("glwrapper.c","w") f.write("\n\n") f.write("#include \"glwrapper.h\"\n") f.write("\n\n") - + for x in functions: f.write(x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+")=NULL;\n") - + f.write("\n\n") f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) ) {\n") f.write("\n") - + for x in functions: f.write("\t__wrapper_"+x["name"]+"=("+x["ret"]+" GLWRP_APIENTRY (*)("+x["args"]+"))wrapperFunc(\""+x["name"]+"\");\n") @@ -180,5 +180,4 @@ f.write("\n\n") - -
\ No newline at end of file + diff --git a/tools/html_fs/godotfs.js b/tools/html_fs/godotfs.js index 93cc30556b..2c59344cf5 100644 --- a/tools/html_fs/godotfs.js +++ b/tools/html_fs/godotfs.js @@ -50,7 +50,7 @@ Module.expectedDataFileDownloads++; function handleError(error) { console.error('package error:', error); }; - + var fetched = null, fetchedCallback = null; fetchRemotePackage('data.pck', function(data) { if (fetchedCallback) { @@ -60,7 +60,7 @@ Module.expectedDataFileDownloads++; fetched = data; } }, handleError); - + function runWithFS() { function assert(check, msg) { @@ -113,13 +113,13 @@ function assert(check, msg) { var PACKAGE_NAME = 'data.pck'; var REMOTE_PACKAGE_NAME = 'data.pck'; var PACKAGE_UUID = 'b39761ce-0348-4959-9b16-302ed8e1592e'; - + function processPackageData(arrayBuffer) { Module.finishedDataFileDownloads++; assert(arrayBuffer, 'Loading data file failed.'); var byteArray = new Uint8Array(arrayBuffer); var curr; - + // Reuse the bytearray from the XHR as the source for file reads. DataRequest.prototype.byteArray = byteArray; DataRequest.prototype.requests["/data.pck"].onload(); @@ -127,9 +127,9 @@ function assert(check, msg) { }; Module['addRunDependency']('datafile_datapack'); - + if (!Module.preloadResults) Module.preloadResults = {}; - + Module.preloadResults[PACKAGE_NAME] = {fromCache: false}; if (fetched) { processPackageData(fetched); @@ -137,7 +137,7 @@ function assert(check, msg) { } else { fetchedCallback = processPackageData; } - + } if (Module['calledRun']) { runWithFS(); diff --git a/tools/memsort.py b/tools/memsort.py index 8ecccae8bd..d2e4fe0226 100644 --- a/tools/memsort.py +++ b/tools/memsort.py @@ -33,4 +33,3 @@ while(l!=""): for x in sum: print(x.strip()+"("+str(cnt[x])+"):\n: "+str(sum[x])) -
\ No newline at end of file diff --git a/tools/scripts/makeargs.py b/tools/scripts/makeargs.py index 6f7afa6328..8c5539c5fe 100644 --- a/tools/scripts/makeargs.py +++ b/tools/scripts/makeargs.py @@ -40,7 +40,7 @@ text=""" visual_server->m_func($argp);\\ }\\ } - + #define FUNC$num(m_func,$argt)\\ virtual void m_func($argtp) { \\ @@ -59,8 +59,8 @@ text=""" visual_server->m_func($argp);\\ }\\ } - - + + """ @@ -81,7 +81,7 @@ for i in range(1,8): t = text.replace("$argtp",tp).replace("$argp",p).replace("$argt",t).replace("$num",str(i)) print(t) - + |