Browse Source

Merge pull request #341 from Calinou/handle-multiple-resolutions

Handle multiple resolutions in most demos
Aaron Franke 5 years ago
parent
commit
aca3ea4749
100 changed files with 398 additions and 152 deletions
  1. 14 9
      2d/finite_state_machine/Demo.tscn
  2. 4 4
      2d/finite_state_machine/debug/ControlsPanel.tscn
  3. 1 4
      2d/finite_state_machine/debug/Explanations.tscn
  4. 0 1
      2d/finite_state_machine/debug/StatesStackDiplayer.tscn
  5. 1 4
      2d/finite_state_machine/debug/states_stack_displayer.gd
  6. 0 5
      2d/finite_state_machine/debug/top_level_ui.gd
  7. 0 1
      2d/finite_state_machine/default_env.tres
  8. 5 0
      2d/finite_state_machine/icon.png.import
  9. 5 0
      2d/finite_state_machine/player/body.png.import
  10. 1 1
      2d/finite_state_machine/player/player_controller.gd
  11. 5 0
      2d/finite_state_machine/player/shadow.png.import
  12. 2 2
      2d/finite_state_machine/player/states/combat/stagger.gd
  13. 5 0
      2d/finite_state_machine/player/weapon/sword.png.import
  14. 1 3
      2d/finite_state_machine/project.godot
  15. 0 0
      2d/grid_based_movement/Game.tscn
  16. 0 1
      2d/grid_based_movement/default_env.tres
  17. 3 0
      2d/grid_based_movement/icon.png.import
  18. 3 0
      2d/grid_based_movement/pawns/sprites/character.png.import
  19. 3 0
      2d/grid_based_movement/pawns/sprites/character_grey.png.import
  20. 3 0
      2d/grid_based_movement/pawns/sprites/star.png.import
  21. 2 0
      2d/grid_based_movement/project.godot
  22. 3 0
      2d/grid_based_movement/tilesets/grid/actor.png.import
  23. 3 0
      2d/grid_based_movement/tilesets/grid/object.png.import
  24. 3 0
      2d/grid_based_movement/tilesets/grid/obstacle.png.import
  25. 3 0
      2d/grid_based_movement/tilesets/grid_lines/grid_lines.png.import
  26. 14 5
      2d/hdr/beach_cave.tscn
  27. 3 0
      2d/hdr/icon.png.import
  28. 4 1
      2d/hdr/ocean_beach.png.import
  29. 3 0
      2d/hdr/ocean_cave.png.import
  30. 6 0
      2d/hdr/project.godot
  31. 9 0
      2d/hexagonal_map/project.godot
  32. 2 2
      2d/hexagonal_map/troll.gd
  33. 0 1
      2d/hexagonal_map/troll.tscn
  34. 0 1
      2d/isometric/dungeon.tscn
  35. 5 3
      2d/isometric/icon.png.import
  36. 5 3
      2d/isometric/isotiles.png.import
  37. 9 0
      2d/isometric/project.godot
  38. 5 3
      2d/isometric/troll.png.import
  39. 5 3
      2d/kinematic_character/circle.png.import
  40. 0 0
      2d/kinematic_character/colworld.tscn
  41. 5 3
      2d/kinematic_character/icon.png.import
  42. 5 3
      2d/kinematic_character/long_obstacle.png.import
  43. 5 3
      2d/kinematic_character/obstacle.png.import
  44. 12 12
      2d/kinematic_character/player.gd
  45. 5 3
      2d/kinematic_character/player.png.import
  46. 0 1
      2d/kinematic_character/player.tscn
  47. 5 3
      2d/kinematic_character/princess.png.import
  48. 6 0
      2d/kinematic_character/project.godot
  49. 0 0
      2d/kinematic_collision/colworld.tscn
  50. 3 0
      2d/kinematic_collision/icon.png.import
  51. 3 0
      2d/kinematic_collision/obstacle.png.import
  52. 3 0
      2d/kinematic_collision/player.png.import
  53. 9 0
      2d/kinematic_collision/project.godot
  54. 3 0
      2d/light2d_as_mask/burano.png.import
  55. 3 0
      2d/light2d_as_mask/icon.png.import
  56. 6 0
      2d/light2d_as_mask/lightmask.tscn
  57. 5 0
      2d/light2d_as_mask/project.godot
  58. 3 0
      2d/light2d_as_mask/splat.png.import
  59. 5 3
      2d/lights_and_shadows/bg.png.import
  60. 5 3
      2d/lights_and_shadows/caster.png.import
  61. 5 3
      2d/lights_and_shadows/icon.png.import
  62. 5 3
      2d/lights_and_shadows/light.png.import
  63. 4 1
      2d/lights_and_shadows/light_shadows.tscn
  64. 2 0
      2d/lights_and_shadows/project.godot
  65. 5 3
      2d/lights_and_shadows/spot.png.import
  66. 3 0
      2d/navigation/character.png.import
  67. 3 0
      2d/navigation/icon.png.import
  68. 4 0
      2d/navigation/level.tscn
  69. 3 0
      2d/navigation/map.png.import
  70. 2 2
      2d/navigation/navigation.gd
  71. 6 0
      2d/navigation/project.godot
  72. 4 0
      2d/navigation_astar/Game.tscn
  73. 0 1
      2d/navigation_astar/default_env.tres
  74. 3 0
      2d/navigation_astar/icon.png.import
  75. 1 1
      2d/navigation_astar/pathfind_astar.gd
  76. 5 0
      2d/navigation_astar/project.godot
  77. 3 0
      2d/navigation_astar/sprites/character.png.import
  78. 3 0
      2d/navigation_astar/sprites/obstacle.png.import
  79. 3 0
      2d/navigation_astar/sprites/path_end.png.import
  80. 3 0
      2d/navigation_astar/sprites/path_start.png.import
  81. 5 3
      2d/particles/fire_particle.png.import
  82. 5 3
      2d/particles/icon.png.import
  83. 5 3
      2d/particles/mask.png.import
  84. 3 0
      2d/particles/particles.tscn
  85. 9 0
      2d/particles/project.godot
  86. 5 3
      2d/particles/smoke_particle.png.import
  87. 5 3
      2d/particles/spark_particle2.png.import
  88. 6 4
      2d/pong/ball.png.import
  89. 5 3
      2d/pong/icon.png.import
  90. 6 4
      2d/pong/left_pallete.png.import
  91. 2 2
      2d/pong/paddle.gd
  92. 11 0
      2d/pong/pong.tscn
  93. 3 0
      2d/pong/project.godot
  94. 6 4
      2d/pong/right_pallete.png.import
  95. 6 4
      2d/pong/separator.png.import
  96. 3 3
      2d/role_playing_game/Game.gd
  97. 12 6
      2d/role_playing_game/Game.tscn
  98. 0 1
      2d/role_playing_game/default_env.tres
  99. 2 0
      2d/role_playing_game/project.godot
  100. 1 1
      2d/role_playing_game/screens/combat/Combat.gd

+ 14 - 9
2d/finite_state_machine/Demo.tscn

@@ -1,20 +1,25 @@
 [gd_scene load_steps=5 format=2]
 
-[ext_resource path="res://player/Player.tscn" type="PackedScene" id=1]
-[ext_resource path="res://debug/StatesStackDiplayer.tscn" type="PackedScene" id=2]
-[ext_resource path="res://debug/ControlsPanel.tscn" type="PackedScene" id=3]
-[ext_resource path="res://debug/Explanations.tscn" type="PackedScene" id=4]
+[ext_resource path="res://debug/ControlsPanel.tscn" type="PackedScene" id=1]
+[ext_resource path="res://debug/Explanations.tscn" type="PackedScene" id=2]
+[ext_resource path="res://debug/StatesStackDiplayer.tscn" type="PackedScene" id=3]
+[ext_resource path="res://player/Player.tscn" type="PackedScene" id=4]
 
 [node name="Demo" type="Node"]
 
-[node name="Player" parent="." instance=ExtResource( 1 )]
-editor/display_folded = true
+[node name="Player" parent="." instance=ExtResource( 4 )]
 
-[node name="StatesStackDiplayer" parent="." instance=ExtResource( 2 )]
+[node name="Explanations" parent="." instance=ExtResource( 2 )]
 
-[node name="ControlsPanel" parent="." instance=ExtResource( 3 )]
+[node name="Control" type="Control" parent="."]
+anchor_right = 1.0
+anchor_bottom = 1.0
+__meta__ = {
+"_edit_use_anchors_": false
+}
 
-[node name="Explanations" parent="." instance=ExtResource( 4 )]
+[node name="StatesStackDiplayer" parent="Control" instance=ExtResource( 3 )]
 
+[node name="ControlsPanel" parent="Control" instance=ExtResource( 1 )]
 
 [editable path="Player"]

+ 4 - 4
2d/finite_state_machine/debug/ControlsPanel.tscn

@@ -1,6 +1,5 @@
-[gd_scene load_steps=3 format=2]
+[gd_scene load_steps=2 format=2]
 
-[ext_resource path="res://debug/top_level_ui.gd" type="Script" id=1]
 [ext_resource path="res://fonts/source_code_pro_explanations.tres" type="DynamicFont" id=2]
 
 [node name="ControlsPanel" type="Panel"]
@@ -8,7 +7,9 @@ anchor_left = 1.0
 anchor_right = 1.0
 margin_left = -220.0
 margin_bottom = 170.0
-script = ExtResource( 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
 
 [node name="Keys" type="Label" parent="."]
 anchor_right = 1.0
@@ -38,4 +39,3 @@ X
 Space
 Shift"
 align = 2
-

+ 1 - 4
2d/finite_state_machine/debug/Explanations.tscn

@@ -1,8 +1,7 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=3 format=2]
 
 [ext_resource path="res://fonts/source_code_pro_explanations_bold.tres" type="DynamicFont" id=1]
 [ext_resource path="res://fonts/source_code_pro_explanations.tres" type="DynamicFont" id=2]
-[ext_resource path="res://debug/top_level_ui.gd" type="Script" id=3]
 
 [node name="Explanations" type="RichTextLabel"]
 anchor_right = 1.0
@@ -35,8 +34,6 @@ States are common in games. You can use the pattern to:
 3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do.
 
 You can read more about States in the excellent Game Programming Patterns ebook."
-script = ExtResource( 3 )
 __meta__ = {
 "_edit_lock_": true
 }
-

+ 0 - 1
2d/finite_state_machine/debug/StatesStackDiplayer.tscn

@@ -46,4 +46,3 @@ margin_bottom = 170.0
 custom_fonts/font = SubResource( 1 )
 text = "1.
 2."
-

+ 1 - 4
2d/finite_state_machine/debug/states_stack_displayer.gd

@@ -1,9 +1,6 @@
 extends Panel
 
-onready var fsm_node = get_node("../Player/StateMachine")
-
-func _ready():
-	set_as_toplevel(true)
+onready var fsm_node = get_node("../../Player/StateMachine")
 
 func _process(delta):
 	var states_names = ''

+ 0 - 5
2d/finite_state_machine/debug/top_level_ui.gd

@@ -1,5 +0,0 @@
-tool
-extends Control
-
-func _ready():
-	set_as_toplevel(true)

+ 0 - 1
2d/finite_state_machine/default_env.tres

@@ -11,4 +11,3 @@ ground_curve = 0.01
 [resource]
 background_mode = 2
 background_sky = SubResource( 1 )
-

+ 5 - 0
2d/finite_state_machine/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
@@ -14,6 +17,7 @@ dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -23,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 0
2d/finite_state_machine/player/body.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/body.png-313f6363670a5852a7b7126ab476d8b1.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
@@ -14,6 +17,7 @@ dest_files=[ "res://.import/body.png-313f6363670a5852a7b7126ab476d8b1.stex" ]
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -23,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 1 - 1
2d/finite_state_machine/player/player_controller.gd

@@ -1,5 +1,5 @@
 """
-The Player is a KinematicBody2D, in other words a physics-driven object. 
+The Player is a KinematicBody2D, in other words a physics-driven object.
 It can move, collide with the world...
 It HAS a state machine, but the body and the state machine are separate.
 """

+ 5 - 0
2d/finite_state_machine/player/shadow.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/shadow.png-493c4635eca1ce8bdece629560617dc7.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
@@ -14,6 +17,7 @@ dest_files=[ "res://.import/shadow.png-493c4635eca1ce8bdece629560617dc7.stex" ]
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -23,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 2 - 2
2d/finite_state_machine/player/states/combat/stagger.gd

@@ -1,6 +1,6 @@
 """
 The stagger state end with the stagger animation from the AnimationPlayer
-The animation only affects the Body Sprite"s modulate property so 
+The animation only affects the Body Sprite's modulate property so
 it could stack with other animations if we had two AnimationPlayer nodes
 """
 extends "res://state_machine/state.gd"
@@ -11,5 +11,5 @@ func enter():
 	owner.get_node("AnimationPlayer").play("stagger")
 
 func _on_animation_finished(anim_name):
-	assert anim_name == "stagger"
+	assert(anim_name == "stagger")
 	emit_signal("finished", "previous")

+ 5 - 0
2d/finite_state_machine/player/weapon/sword.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
@@ -14,6 +17,7 @@ dest_files=[ "res://.import/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.stex" ]
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -23,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 1 - 3
2d/finite_state_machine/project.godot

@@ -23,10 +23,8 @@ config/icon="res://icon.png"
 
 window/size/width=1280
 window/size/height=720
-window/size/test_width=1280
-window/size/test_height=720
 window/stretch/mode="2d"
-window/stretch/aspect="keep"
+window/stretch/aspect="expand"
 
 [gdnative]
 

File diff suppressed because it is too large
+ 0 - 0
2d/grid_based_movement/Game.tscn


+ 0 - 1
2d/grid_based_movement/default_env.tres

@@ -11,4 +11,3 @@ ground_curve = 0.01
 [resource]
 background_mode = 2
 background_sky = SubResource( 1 )
-

+ 3 - 0
2d/grid_based_movement/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/grid_based_movement/pawns/sprites/character.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/character.png-98ed16816c5b464731c4fa68fe5b8613.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/grid_based_movement/pawns/sprites/character_grey.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/character_grey.png-a95d64c2e947e85f04dd1c6474e46965.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/grid_based_movement/pawns/sprites/star.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/star.png-4f164f82cf41ace82182660f1be8e68d.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 2 - 0
2d/grid_based_movement/project.godot

@@ -23,6 +23,8 @@ config/icon="res://icon.png"
 
 window/size/width=1280
 window/size/height=720
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 
 [rendering]
 

+ 3 - 0
2d/grid_based_movement/tilesets/grid/actor.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/actor.png-6a88af8a7bcb079732153877dfb0db8b.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/grid_based_movement/tilesets/grid/object.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/object.png-3e89ebfb3424e8759914732b2b0130c1.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/grid_based_movement/tilesets/grid/obstacle.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/obstacle.png-9f01dd1d06d7b99515918b65b46bd6c1.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/grid_based_movement/tilesets/grid_lines/grid_lines.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/grid_lines.png-beef853b47aa830c8383e5f6cc4d03ce.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 14 - 5
2d/hdr/beach_cave.tscn

@@ -27,6 +27,8 @@ modulate = Color( 2, 2, 2, 1 )
 self_modulate = Color( 2, 2, 2, 1 )
 texture = ExtResource( 2 )
 centered = false
+region_enabled = true
+region_rect = Rect2( 0, 0, 3840, 720 )
 
 [node name="cave" type="Sprite" parent="."]
 self_modulate = Color( 0.233166, 0.221219, 0.23582, 1 )
@@ -37,11 +39,18 @@ centered = false
 [node name="environment" type="WorldEnvironment" parent="."]
 environment = SubResource( 1 )
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 540, 360 )
+current = true
+
 [node name="Label" type="Label" parent="."]
-margin_right = 40.0
-margin_bottom = 13.0
+margin_left = 10.0
+margin_top = 10.0
+margin_right = 135.0
+margin_bottom = 24.0
 size_flags_horizontal = 2
 size_flags_vertical = 0
-custom_colors/font_color = Color( 0.213955, 0.205626, 0.20313, 1 )
-text = "Drag  Left and Right"
-
+text = "Drag Left and Right"
+__meta__ = {
+"_edit_use_anchors_": false
+}

+ 3 - 0
2d/hdr/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 4 - 1
2d/hdr/ocean_beach.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
@@ -16,7 +19,7 @@ compress/lossy_quality=0.7
 compress/hdr_mode=0
 compress/bptc_ldr=0
 compress/normal_map=0
-flags/repeat=0
+flags/repeat=2
 flags/filter=true
 flags/mipmaps=false
 flags/anisotropic=false

+ 3 - 0
2d/hdr/ocean_cave.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 6 - 0
2d/hdr/project.godot

@@ -24,6 +24,8 @@ run/name=""
 
 window/size/width=1080
 window/size/height=720
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 
 [gdnative]
 
@@ -32,3 +34,7 @@ singletons=[  ]
 [rasterizer]
 
 blur_buffer_size=128
+
+[rendering]
+
+environment/default_clear_color=Color( 0.05, 0.0453, 0.0265, 1 )

+ 9 - 0
2d/hexagonal_map/project.godot

@@ -20,6 +20,11 @@ run/main_scene="res://map.tscn"
 config/icon="res://icon.png"
 run/name=""
 
+[display]
+
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
+
 [gdnative]
 
 singletons=[  ]
@@ -46,3 +51,7 @@ move_up={
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
  ]
 }
+
+[rendering]
+
+environment/default_clear_color=Color( 0.172549, 0.219608, 0.129412, 1 )

+ 2 - 2
2d/hexagonal_map/troll.gd

@@ -9,7 +9,7 @@ const MOTION_SPEED = 160 # Pixels/second
 
 func _physics_process(_delta):
 	var motion = Vector2()
-	
+
 	if Input.is_action_pressed("move_up"):
 		motion += Vector2(0, -1)
 	if Input.is_action_pressed("move_bottom"):
@@ -18,7 +18,7 @@ func _physics_process(_delta):
 		motion += Vector2(-1, 0)
 	if Input.is_action_pressed("move_right"):
 		motion += Vector2(1, 0)
-	
+
 	motion = motion.normalized() * MOTION_SPEED
 
 	move_and_slide(motion)

+ 0 - 1
2d/hexagonal_map/troll.tscn

@@ -18,4 +18,3 @@ shape = SubResource( 1 )
 
 [node name="Camera2D" type="Camera2D" parent="."]
 current = true
-

+ 0 - 1
2d/isometric/dungeon.tscn

@@ -24,4 +24,3 @@ tile_data = PoolIntArray( -917493, 2, -1200553578, -917492, 2, -1200553578, -917
 
 [node name="troll" parent="walls" instance=ExtResource( 2 )]
 position = Vector2( 368.142, 347.007 )
-

+ 5 - 3
2d/isometric/icon.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://icon.png"
-source_md5="c79c9ad7eaca57f9b61f2e8b06d7a2ea"
-
 dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
-dest_md5="557cc789bada50b97252b4b076d9396d"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/isometric/isotiles.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://isotiles.png"
-source_md5="497da3b55d87ebab4df56dba2a0804ed"
-
 dest_files=[ "res://.import/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex" ]
-dest_md5="e81f39117efaa23b86988b64a3523f31"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 9 - 0
2d/isometric/project.godot

@@ -19,6 +19,11 @@ config/name="Isometric Game"
 run/main_scene="res://dungeon.tscn"
 config/icon="res://icon.png"
 
+[display]
+
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
+
 [gdnative]
 
 singletons=[  ]
@@ -54,3 +59,7 @@ move_up={
 [rasterizer]
 
 use_pixel_snap=true
+
+[rendering]
+
+environment/default_clear_color=Color( 0.0784314, 0.105882, 0.145098, 1 )

+ 5 - 3
2d/isometric/troll.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://troll.png"
-source_md5="76a37c47b1f09115f714d6635ab50fb4"
-
 dest_files=[ "res://.import/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex" ]
-dest_md5="aded3a6d7973cb880144e84f0b3ec505"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/kinematic_character/circle.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/circle.png-10953cad44a8947fbdd4128a631e9e52.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://circle.png"
-source_md5="c01cd5674a625756c3df259f76d5295a"
-
 dest_files=[ "res://.import/circle.png-10953cad44a8947fbdd4128a631e9e52.stex" ]
-dest_md5="e4ec5acd02941f2f2150d836824a5d51"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

File diff suppressed because it is too large
+ 0 - 0
2d/kinematic_character/colworld.tscn


+ 5 - 3
2d/kinematic_character/icon.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://icon.png"
-source_md5="a2c4d258e30d0a978df50141f46c78fc"
-
 dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
-dest_md5="144813cb6d9a20bff16078a45fa2d990"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/kinematic_character/long_obstacle.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/long_obstacle.png-1b33440a15b4db156b2a9ec7e9a2a80e.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://long_obstacle.png"
-source_md5="3c79b1a7d3ef80a28347634c36f0b2e1"
-
 dest_files=[ "res://.import/long_obstacle.png-1b33440a15b4db156b2a9ec7e9a2a80e.stex" ]
-dest_md5="4956558400a4bac181bc00346aaaacdf"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/kinematic_character/obstacle.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://obstacle.png"
-source_md5="5963aa5f0000565f5472e152003bfaf3"
-
 dest_files=[ "res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex" ]
-dest_md5="e4a785f1d55f2585bce48ea5d56b3124"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 12 - 12
2d/kinematic_character/player.gd

@@ -27,13 +27,13 @@ var prev_jump_pressed = false
 func _physics_process(delta):
 	# Create forces
 	var force = Vector2(0, GRAVITY)
-	
+
 	var walk_left = Input.is_action_pressed("move_left")
 	var walk_right = Input.is_action_pressed("move_right")
 	var jump = Input.is_action_pressed("jump")
-	
+
 	var stop = true
-	
+
 	if walk_left:
 		if velocity.x <= WALK_MIN_SPEED and velocity.x > -WALK_MAX_SPEED:
 			force.x -= WALK_FORCE
@@ -42,34 +42,34 @@ func _physics_process(delta):
 		if velocity.x >= -WALK_MIN_SPEED and velocity.x < WALK_MAX_SPEED:
 			force.x += WALK_FORCE
 			stop = false
-	
+
 	if stop:
 		var vsign = sign(velocity.x)
 		var vlen = abs(velocity.x)
-		
+
 		vlen -= STOP_FORCE * delta
 		if vlen < 0:
 			vlen = 0
-		
+
 		velocity.x = vlen * vsign
-	
+
 	# Integrate forces to velocity
-	velocity += force * delta	
+	velocity += force * delta
 	# Integrate velocity into motion and move
 	velocity = move_and_slide(velocity, Vector2(0, -1))
-	
+
 	if is_on_floor():
 		on_air_time = 0
-		
+
 	if jumping and velocity.y > 0:
 		# If falling, no longer jumping
 		jumping = false
-	
+
 	if on_air_time < JUMP_MAX_AIRBORNE_TIME and jump and not prev_jump_pressed and not jumping:
 		# Jump must also be allowed to happen if the character left the floor a little bit ago.
 		# Makes controls more snappy.
 		velocity.y = -JUMP_SPEED
 		jumping = true
-	
+
 	on_air_time += delta
 	prev_jump_pressed = jump

+ 5 - 3
2d/kinematic_character/player.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/player.png-2dd0af52de4b213777cd8c9df94c0978.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://player.png"
-source_md5="540f7f0d3b239b1d8c349f4be4d2d253"
-
 dest_files=[ "res://.import/player.png-2dd0af52de4b213777cd8c9df94c0978.stex" ]
-dest_md5="4112e6a5c36d38d07edebbfbd416c9fa"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 0 - 1
2d/kinematic_character/player.tscn

@@ -15,4 +15,3 @@ texture = ExtResource( 2 )
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
 position = Vector2( -0.315559, 0.157784 )
 shape = SubResource( 1 )
-

+ 5 - 3
2d/kinematic_character/princess.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/princess.png-9b4caf2cfe324ae3734249d5b559d39d.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://princess.png"
-source_md5="0cc2f9e0359e84dd37950556613a1778"
-
 dest_files=[ "res://.import/princess.png-9b4caf2cfe324ae3734249d5b559d39d.stex" ]
-dest_md5="856066b52354a42ff12d3b5608755e56"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 6 - 0
2d/kinematic_character/project.godot

@@ -23,6 +23,8 @@ config/icon="res://icon.png"
 
 window/size/width=530
 window/size/height=495
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 stretch/aspect="keep"
 stretch/mode="2d"
 
@@ -61,3 +63,7 @@ move_up={
 [memory]
 
 multithread/thread_rid_pool_prealloc=60
+
+[rendering]
+
+environment/default_clear_color=Color( 0.156, 0.1325, 0.25, 1 )

File diff suppressed because it is too large
+ 0 - 0
2d/kinematic_collision/colworld.tscn


+ 3 - 0
2d/kinematic_collision/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/kinematic_collision/obstacle.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/kinematic_collision/player.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/player.png-2dd0af52de4b213777cd8c9df94c0978.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 9 - 0
2d/kinematic_collision/project.godot

@@ -19,6 +19,11 @@ config/name="Kinematic Collision"
 run/main_scene="res://colworld.tscn"
 config/icon="res://icon.png"
 
+[display]
+
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
+
 [gdnative]
 
 singletons=[  ]
@@ -45,3 +50,7 @@ move_up={
 "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
  ]
 }
+
+[rendering]
+
+environment/default_clear_color=Color( 0.219608, 0.145098, 0.145098, 1 )

+ 3 - 0
2d/light2d_as_mask/burano.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/light2d_as_mask/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 6 - 0
2d/light2d_as_mask/lightmask.tscn

@@ -51,6 +51,9 @@ anchor_right = 1.0
 anchor_bottom = 1.0
 size_flags_horizontal = 2
 size_flags_vertical = 2
+__meta__ = {
+"_edit_use_anchors_": false
+}
 
 [node name="burano" type="TextureRect" parent="."]
 material = SubResource( 1 )
@@ -79,3 +82,6 @@ mode = 2
 autoplay = "maskmotion"
 anims/maskmotion = SubResource( 2 )
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 512, 300 )
+current = true

+ 5 - 0
2d/light2d_as_mask/project.godot

@@ -19,6 +19,11 @@ config/name="Using Lights as Mask"
 run/main_scene="res://lightmask.tscn"
 config/icon="res://icon.png"
 
+[display]
+
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
+
 [gdnative]
 
 singletons=[  ]

+ 3 - 0
2d/light2d_as_mask/splat.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/splat.png-a41a35966004eec2e8a20d517d1ec4bb.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 5 - 3
2d/lights_and_shadows/bg.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/bg.png-24bff804693ee063127ad100e04c5185.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://bg.png"
-source_md5="767fe4b38b7f307c268da6beb72ca732"
-
 dest_files=[ "res://.import/bg.png-24bff804693ee063127ad100e04c5185.stex" ]
-dest_md5="c5f047c8b98d363519d5da3be2119651"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/lights_and_shadows/caster.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/caster.png-67727cb056b9e0209664a84f1653a25a.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://caster.png"
-source_md5="461a6647dafae1304d7a21178246bb9d"
-
 dest_files=[ "res://.import/caster.png-67727cb056b9e0209664a84f1653a25a.stex" ]
-dest_md5="102ac34dffa3ad96f81d7c422c9ff96d"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/lights_and_shadows/icon.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://icon.png"
-source_md5="b522cb048c2d4713c630a1fd00254467"
-
 dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
-dest_md5="fca2fbe38bffc4d500dcbb63e1985d25"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/lights_and_shadows/light.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/light.png-06e94102f0cce323cff7daad56cf3030.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://light.png"
-source_md5="d36597a1d2ddc06b8d0d22650a176149"
-
 dest_files=[ "res://.import/light.png-06e94102f0cce323cff7daad56cf3030.stex" ]
-dest_md5="4358f9620206dfaf70c1c9c703c7cbc0"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 4 - 1
2d/lights_and_shadows/light_shadows.tscn

@@ -72,7 +72,7 @@ color = Color( 0.27451, 0.27451, 0.27451, 1 )
 
 [node name="bg" type="Sprite" parent="."]
 position = Vector2( 401.251, 301.906 )
-scale = Vector2( 6.39454, 4.82665 )
+scale = Vector2( 128, 128 )
 texture = ExtResource( 1 )
 
 [node name="casters" type="Node2D" parent="."]
@@ -237,3 +237,6 @@ anims/motion = SubResource( 3 )
 anims/motion2 = SubResource( 4 )
 anims/motion3 = SubResource( 7 )
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 400, 300 )
+current = true

+ 2 - 0
2d/lights_and_shadows/project.godot

@@ -22,6 +22,8 @@ config/icon="res://icon.png"
 [display]
 
 window/size/width=800
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 stretch/aspect="keep"
 stretch/mode="2d"
 

+ 5 - 3
2d/lights_and_shadows/spot.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/spot.png-36b4dfbff4efeea17ec3137d266ffc4a.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://spot.png"
-source_md5="8d1a5fb652c178423018bac9e0f5acf0"
-
 dest_files=[ "res://.import/spot.png-36b4dfbff4efeea17ec3137d266ffc4a.stex" ]
-dest_md5="39755819eccb4f1e0c301b93be79590a"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 3 - 0
2d/navigation/character.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/character.png-7a996d3b758d22c506b76a7c15391284.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/navigation/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 4 - 0
2d/navigation/level.tscn

@@ -24,3 +24,7 @@ position = Vector2( 228.464, 132.594 )
 scale = Vector2( 0.5, 0.5 )
 texture = ExtResource( 3 )
 offset = Vector2( 0, -26 )
+
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 400, 300 )
+current = true

+ 3 - 0
2d/navigation/map.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/map.png-9eea34967fae34f4388f4a32a16da936.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 2 - 2
2d/navigation/navigation.gd

@@ -31,12 +31,12 @@ func move_along_path(distance):
 	var last_point = $Character.position
 	while path.size():
 		var distance_between_points = last_point.distance_to(path[0])
-		
+
 		# the position to move to falls between two points
 		if distance <= distance_between_points:
 			$Character.position = last_point.linear_interpolate(path[0], distance / distance_between_points)
 			return
-		
+
 		# the position is past the end of the segment
 		distance -= distance_between_points
 		last_point = path[0]

+ 6 - 0
2d/navigation/project.godot

@@ -22,6 +22,8 @@ config/icon="res://icon.png"
 [display]
 
 window/size/width=800
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 stretch/aspect="keep"
 stretch/mode="2d"
 
@@ -36,3 +38,7 @@ click={
 "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
  ]
 }
+
+[rendering]
+
+environment/default_clear_color=Color( 0.160784, 0.172549, 0.278431, 1 )

+ 4 - 0
2d/navigation_astar/Game.tscn

@@ -14,9 +14,13 @@ tile_data = PoolIntArray( 65537, 0, 0, 65541, 0, 0, 65545, 0, 0, 65550, 0, 0, 19
 script = ExtResource( 2 )
 
 [node name="Character" type="Position2D" parent="."]
+position = Vector2( 32, 32 )
 script = ExtResource( 3 )
 
 [node name="Sprite" type="Sprite" parent="Character"]
 position = Vector2( 7, 0 )
 texture = ExtResource( 4 )
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 512, 300 )
+current = true

+ 0 - 1
2d/navigation_astar/default_env.tres

@@ -11,4 +11,3 @@ ground_curve = 0.01
 [resource]
 background_mode = 2
 background_sky = SubResource( 1 )
-

+ 3 - 0
2d/navigation_astar/icon.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 1 - 1
2d/navigation_astar/pathfind_astar.gd

@@ -183,4 +183,4 @@ func _set_path_end_position(value):
 	set_cell(value.x, value.y, 2)
 	path_end_position = value
 	if path_start_position != value:
-		_recalculate_path()
+		_recalculate_path()

+ 5 - 0
2d/navigation_astar/project.godot

@@ -19,6 +19,11 @@ config/name="Grid-based pathfinding with Astar"
 run/main_scene="res://Game.tscn"
 config/icon="res://icon.png"
 
+[display]
+
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
+
 [input]
 
 click={

+ 3 - 0
2d/navigation_astar/sprites/character.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/character.png-eb70ac48a5acf508c4b7740ea4ac4fae.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/navigation_astar/sprites/obstacle.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/obstacle.png-0258c5f5ce65bfa0dd8610adeb784f54.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/navigation_astar/sprites/path_end.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/path_end.png-02b79e25892cd8d863bd44c3c5a1720e.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 3 - 0
2d/navigation_astar/sprites/path_start.png.import

@@ -3,6 +3,9 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/path_start.png-475bd0b469629aa8779d506c5134e5c2.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 

+ 5 - 3
2d/particles/fire_particle.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/fire_particle.png-282b12927cd5b1f6d9c0bfb485d448ae.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://fire_particle.png"
-source_md5="b0ff2970ad1b00d2ce4ed6f02e01d7c5"
-
 dest_files=[ "res://.import/fire_particle.png-282b12927cd5b1f6d9c0bfb485d448ae.stex" ]
-dest_md5="eea50c6eceabd139f99b8f771003811d"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/particles/icon.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://icon.png"
-source_md5="79bb491eb2c0a0753f965ac0b3106349"
-
 dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
-dest_md5="cbc9a406040e47df12d4494a9431028f"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/particles/mask.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/mask.png-b945516e6475612c1c4c3b4f8dd0bdc6.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://mask.png"
-source_md5="3214952ea3431758b892aabdbde38b08"
-
 dest_files=[ "res://.import/mask.png-b945516e6475612c1c4c3b4f8dd0bdc6.stex" ]
-dest_md5="6823b6e7db665ffc74987b968f7eaf3b"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=true
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=false

+ 3 - 0
2d/particles/particles.tscn

@@ -252,3 +252,6 @@ visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 )
 process_material = SubResource( 28 )
 texture = ExtResource( 3 )
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 512, 300 )
+current = true

+ 9 - 0
2d/particles/project.godot

@@ -19,6 +19,15 @@ config/name="Particle Systems"
 run/main_scene="res://particles.tscn"
 config/icon="res://icon.png"
 
+[display]
+
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
+
 [gdnative]
 
 singletons=[  ]
+
+[rendering]
+
+environment/default_clear_color=Color( 0, 0, 0, 1 )

+ 5 - 3
2d/particles/smoke_particle.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/smoke_particle.png-2af9cbaa4a935c239d404ea2402bff45.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://smoke_particle.png"
-source_md5="1b1db1ed68bccbfb6cc968edd82d3590"
-
 dest_files=[ "res://.import/smoke_particle.png-2af9cbaa4a935c239d404ea2402bff45.stex" ]
-dest_md5="b15a735d1026591cfe0adf0961cd978d"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/particles/spark_particle2.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/spark_particle2.png-c01711346d42a0d9675f292248ead315.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://spark_particle2.png"
-source_md5="907b52c0c7e2668357863bd01721e813"
-
 dest_files=[ "res://.import/spark_particle2.png-c01711346d42a0d9675f292248ead315.stex" ]
-dest_md5="a13abc4e2d2feac9c7fe76af899b5ff4"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=false
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 6 - 4
2d/pong/ball.png.import

@@ -3,29 +3,31 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/ball.png-9a4ca347acb7532f6ae347744a6b04f7.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://ball.png"
-source_md5="4219e9084f5485c8d1812297700f317d"
-
 dest_files=[ "res://.import/ball.png-9a4ca347acb7532f6ae347744a6b04f7.stex" ]
-dest_md5="c23684a1fd10063a69ecc18f7ccca4c3"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
-flags/filter=true
+flags/filter=false
 flags/mipmaps=false
 flags/anisotropic=false
 flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 5 - 3
2d/pong/icon.png.import

@@ -3,20 +3,21 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://icon.png"
-source_md5="9be177e863d37787c0836d64924b3503"
-
 dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
-dest_md5="6339016da0f704252e68ba6dd6477388"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
 flags/filter=true
@@ -26,6 +27,7 @@ flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 6 - 4
2d/pong/left_pallete.png.import

@@ -3,29 +3,31 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/left_pallete.png-bc33611074a0f886142e37c77bd2545a.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://left_pallete.png"
-source_md5="df76627349499ad47ebf48a7ca947cca"
-
 dest_files=[ "res://.import/left_pallete.png-bc33611074a0f886142e37c77bd2545a.stex" ]
-dest_md5="f286e993cb5a7b7513004045afcc4313"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
-flags/filter=true
+flags/filter=false
 flags/mipmaps=false
 flags/anisotropic=false
 flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 2 - 2
2d/pong/paddle.gd

@@ -5,13 +5,13 @@ const MOVE_SPEED = 100
 
 func _process(delta):
 	var which = get_name()
-	
+
 	# move up and down based on input
 	if Input.is_action_pressed(which+"_move_up") and position.y > 0:
 		position.y -= MOVE_SPEED * delta
 	if Input.is_action_pressed(which+"_move_down") and position.y < get_viewport_rect().size.y:
 		position.y += MOVE_SPEED * delta
-		
+
 
 func _on_area_entered( area ):
 	if area.get_name() == "ball":

+ 11 - 0
2d/pong/pong.tscn

@@ -23,6 +23,14 @@ extents = Vector2( 320, 10 )
 
 [node name="game" type="Node2D"]
 
+[node name="ColorRect" type="ColorRect" parent="."]
+margin_right = 640.0
+margin_bottom = 400.0
+color = Color( 0.141176, 0.152941, 0.164706, 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
 [node name="left" type="Area2D" parent="."]
 position = Vector2( 67.6285, 192.594 )
 script = ExtResource( 1 )
@@ -87,6 +95,9 @@ y_direction = -1
 [node name="collision" type="CollisionShape2D" parent="floor"]
 shape = SubResource( 4 )
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 320, 200 )
+current = true
 [connection signal="area_entered" from="left" to="left" method="_on_area_entered"]
 [connection signal="area_entered" from="right" to="right" method="_on_area_entered"]
 [connection signal="area_entered" from="left_wall" to="left_wall" method="_on_wall_area_entered"]

+ 3 - 0
2d/pong/project.godot

@@ -23,6 +23,8 @@ config/icon="res://icon.png"
 
 window/size/width=640
 window/size/height=400
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 stretch_2d=true
 
 [gdnative]
@@ -54,4 +56,5 @@ right_move_up={
 
 [rendering]
 
+quality/2d/use_pixel_snap=true
 viewport/default_clear_color=Color( 0, 0, 0, 1 )

+ 6 - 4
2d/pong/right_pallete.png.import

@@ -3,29 +3,31 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/right_pallete.png-fc6e4a6a7c8197834656482b94708e47.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://right_pallete.png"
-source_md5="d46f647d3f045dbee4d786089c309868"
-
 dest_files=[ "res://.import/right_pallete.png-fc6e4a6a7c8197834656482b94708e47.stex" ]
-dest_md5="5f8755f214bc8d4caf7c467291452637"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
-flags/filter=true
+flags/filter=false
 flags/mipmaps=false
 flags/anisotropic=false
 flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 6 - 4
2d/pong/separator.png.import

@@ -3,29 +3,31 @@
 importer="texture"
 type="StreamTexture"
 path="res://.import/separator.png-f981c8489b9148e2e1dc63398273da74.stex"
+metadata={
+"vram_texture": false
+}
 
 [deps]
 
 source_file="res://separator.png"
-source_md5="b6234b89455156532bbe1256249fcfd4"
-
 dest_files=[ "res://.import/separator.png-f981c8489b9148e2e1dc63398273da74.stex" ]
-dest_md5="6e27251839594842494c6cd51e3b86cb"
 
 [params]
 
 compress/mode=0
 compress/lossy_quality=0.7
 compress/hdr_mode=0
+compress/bptc_ldr=0
 compress/normal_map=0
 flags/repeat=0
-flags/filter=true
+flags/filter=false
 flags/mipmaps=false
 flags/anisotropic=false
 flags/srgb=2
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/HDR_as_SRGB=false
+process/invert_color=false
 stream=false
 size_limit=0
 detect_3d=true

+ 3 - 3
2d/role_playing_game/Game.gd

@@ -15,7 +15,7 @@ func _ready():
 			continue
 		if not n.has_node("DialoguePlayer"):
 			continue
-		n.get_node("DialoguePlayer").connect("dialogue_finished", self, 
+		n.get_node("DialoguePlayer").connect("dialogue_finished", self,
 			"_on_opponent_dialogue_finished", [n])
 	remove_child(combat_screen)
 
@@ -25,7 +25,7 @@ func _on_opponent_dialogue_finished(opponent):
 	var player = $Exploration/Grid/Player
 	var combatents = [player.combat_actor, opponent.combat_actor]
 	start_combat(combatents)
-	
+
 func start_combat(combat_actors):
 	remove_child($Exploration)
 	$AnimationPlayer.play("fade")
@@ -34,7 +34,7 @@ func start_combat(combat_actors):
 	combat_screen.show()
 	combat_screen.initialize(combat_actors)
 	$AnimationPlayer.play_backwards("fade")
-	
+
 func _on_combat_finished(winner, _loser):
 	remove_child(combat_screen)
 	$AnimationPlayer.play_backwards("fade")

+ 12 - 6
2d/role_playing_game/Game.tscn

@@ -1,8 +1,8 @@
 [gd_scene load_steps=5 format=2]
 
 [ext_resource path="res://Game.gd" type="Script" id=1]
-[ext_resource path="res://screens/combat/Combat.tscn" type="PackedScene" id=2]
-[ext_resource path="res://screens/exploration/Exploration.tscn" type="PackedScene" id=3]
+[ext_resource path="res://screens/exploration/Exploration.tscn" type="PackedScene" id=2]
+[ext_resource path="res://screens/combat/Combat.tscn" type="PackedScene" id=3]
 
 [sub_resource type="Animation" id=1]
 length = 0.5
@@ -30,13 +30,19 @@ anims/fade = SubResource( 1 )
 [node name="Transition" type="CanvasLayer" parent="."]
 
 [node name="ColorRect" type="ColorRect" parent="Transition"]
-margin_right = 1280.0
-margin_bottom = 720.0
+anchor_right = 1.0
+anchor_bottom = 1.0
 mouse_filter = 1
 color = Color( 0.0703125, 0.0703125, 0.0703125, 0 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
 
-[node name="Combat" parent="." instance=ExtResource( 2 )]
+[node name="Combat" parent="." instance=ExtResource( 3 )]
 visible = false
 
-[node name="Exploration" parent="." instance=ExtResource( 3 )]
+[node name="Exploration" parent="." instance=ExtResource( 2 )]
 
+[node name="Camera2D" type="Camera2D" parent="."]
+offset = Vector2( 640, 360 )
+current = true

+ 0 - 1
2d/role_playing_game/default_env.tres

@@ -12,4 +12,3 @@ sun_energy = 16.0
 [resource]
 background_mode = 2
 background_sky = SubResource( 1 )
-

+ 2 - 0
2d/role_playing_game/project.godot

@@ -23,6 +23,8 @@ config/icon="res://icon.png"
 
 window/size/width=1280
 window/size/height=720
+window/stretch/mode="2d"
+window/stretch/aspect="expand"
 
 [rendering]
 

+ 1 - 1
2d/role_playing_game/screens/combat/Combat.gd

@@ -33,4 +33,4 @@ func clear_combat():
 
 func finish_combat(winner, loser):
 	emit_signal("combat_finished", winner, loser)
-	
+

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