diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..3601420 --- /dev/null +++ b/Readme.md @@ -0,0 +1,105 @@ +Week 4 - Environment + +1. Create a second terrain for vegetation +Learn to use the tilemap layer to easily add vegetation to your level. +* Add a terrain to your terrain set zero +* Import and atlas your graphics (32x32) +* Paint terrain rules + +2. Setting Display properties +Learn to set display properties to size the viewport and scale it. +Go to project settings: + Display>Window + Viewport Width 480 + Viewport Height 270 +This makes the viewport small, but we can now scale it up to the size we want to play at + Advanced settings: on + Window width override: 960 + Window height override: 540 +And finally how to handle the up-scaling + Stretch>Mode: viewport + aspect: keep + scale: 1.0 + +At this point you can control the scaling. +The closer the viewport setting is to the scaled size, the more of the +scene will be revealed. +You should add a camera to the player so that the viewport will show the area around them. + +3. Creating a background + +Create a "sky" + Create a color block the same size as your viewport (480x270) + Create a parallax2D > Add a child Sprite2D to it + Assign the graphic to be the sprite in Sprite2D + Offset the graphic in Sprite2D, 1/2 width, 1/2 height + In the parallax2D parent, set scroll scale to x:1.0 y:1.0 + Repeat Size: x:480 y:270 +Create a "midground" parallax2D + Scroll Scale x:1.05 y:1.0 + Repeat Size x:480 y:0 +Create a "foreground" + Scroll Scale x:1.1 y:1.0 + Repeat Size x:480 y:0 +Optional - Create a "front" parallax2D + +4. Custom Graphics +Set up GIMP for creating custom pixel art + +Make a background + Create a new document, set to the size of viewport (480x270) +Set up Canvas for Pixel Art + View > Show Grid + Image > Configure Grid + Spacing > 1 horizontal 1 vertical (pixels) > set foreground colour +Set up Tool for Pixel Art + Select "pencil" by click-hold on drawing tools + In tool options: + Size: 1.0 + Hardness: 100 +The pencil tool creates the hard edges we want in pixel art. +Saving your file as .xcf file will save your grid settings, but will not +automatically show the grid when you open the file. You will still need to +go to View > Show Grid + +Turning Images into Pixel Art + +When you bring in a reference image there is a good chance it will need to +have work done. A good way to get used to using reference images is to use +a silhoette image. + Get an image + Paste it as a new single layer + Scale it using the scaling tool + Use the colour picker tool to select the black + Make a new layer + Use the paint bucket tool to fill the selection (can now delete reference) +With the selection painted it will snap the paint to whole pixels, but +you will likely see some fuzzy edges because some of the pixels around edges +will be partially transparent. +You can use the colour picker tool set to "select by alpha". Now when you select +a transparent pixel, it will add all pixels with the same transparency to the +selection. +You can now use the paint bucket to fill the selection with an appropriate colour. +When done you can paint bucket the main colour (no selection) to flood-fill any +remaining partially transparent pixels. + +Editing Pixel Art + +You might want to customize your character art! Conveniently, your sprite sheets +are designed so that each limb of the character is composed of a consistent +colour in each frame. +This allows us to use the "colour selection" tool to select the limb in every frame. +And as above, the paint bucket can be used to fill the limb with an appropriate colour. + +When complete, you can draw in anything else you like, though you will have to +do it for each cell. If you save it to your Godot project, it will overwrite +the graphics, and instantly show up in your game! + +Scaling Pixel Art + +Be aware that if you scale pixel art, there is a very high chance the edges will +become fuzzy and indistinct. This is because of "interpolation". +To avoid this problem, set the scaling tool to Interpolation - None. +Now when you scale your pixel art it will snap to the closes whole pixel, +maintaining the crisp edges. + diff --git a/assets/environment/bg/sky.png b/assets/environment/bg/sky.png new file mode 100644 index 0000000..23468aa Binary files /dev/null and b/assets/environment/bg/sky.png differ diff --git a/assets/environment/bg/sky.png.import b/assets/environment/bg/sky.png.import new file mode 100644 index 0000000..bb906dc --- /dev/null +++ b/assets/environment/bg/sky.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b583o88duaqu" +path="res://.godot/imported/sky.png-86cc6f428916ab8e3e1824da6ccc3df5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/bg/sky.png" +dest_files=["res://.godot/imported/sky.png-86cc6f428916ab8e3e1824da6ccc3df5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/environment/mushroom_32x64.png b/assets/environment/mushroom_32x64.png new file mode 100644 index 0000000..dd070ba Binary files /dev/null and b/assets/environment/mushroom_32x64.png differ diff --git a/assets/environment/mushroom_32x64.png.import b/assets/environment/mushroom_32x64.png.import new file mode 100644 index 0000000..6225e2d --- /dev/null +++ b/assets/environment/mushroom_32x64.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cn1qvqti2u0pk" +path="res://.godot/imported/mushroom_32x64.png-f773d82c5be18b26897c2ebfe3849a39.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/mushroom_32x64.png" +dest_files=["res://.godot/imported/mushroom_32x64.png-f773d82c5be18b26897c2ebfe3849a39.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/environment/veg_32x32.png b/assets/environment/veg_32x32.png new file mode 100644 index 0000000..4e09fa9 Binary files /dev/null and b/assets/environment/veg_32x32.png differ diff --git a/assets/environment/veg_32x32.png.import b/assets/environment/veg_32x32.png.import new file mode 100644 index 0000000..745b3a2 --- /dev/null +++ b/assets/environment/veg_32x32.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cj3we2brsknxh" +path="res://.godot/imported/veg_32x32.png-f547c76da23451f9a832bbe2fb852b32.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environment/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-f547c76da23451f9a832bbe2fb852b32.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/source/background.xcf b/assets/source/background.xcf new file mode 100644 index 0000000..b810e47 Binary files /dev/null and b/assets/source/background.xcf differ diff --git a/project.godot b/project.godot index d7f5753..618eceb 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,14 @@ run/main_scene="uid://ch6sfehmsskcs" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=580 +window/size/viewport_height=370 +window/size/window_width_override=960 +window/size/window_height_override=540 +window/stretch/mode="viewport" + [input] shove={ diff --git a/scenes/game.tscn b/scenes/game.tscn index 6d66b5b..c73239f 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,8 +1,11 @@ [gd_scene format=4 uid="uid://ch6sfehmsskcs"] [ext_resource type="Script" uid="uid://dtv434qd1rfmu" path="res://scripts/game.gd" id="1_lnu2h"] +[ext_resource type="Texture2D" uid="uid://b583o88duaqu" path="res://assets/environment/bg/sky.png" id="2_0tnpc"] [ext_resource type="Script" uid="uid://b5c00ybml8rj" path="res://scripts/scene_manager.gd" id="2_lbhrr"] [ext_resource type="Texture2D" uid="uid://b6fqvrq70n5al" path="res://assets/environment/Terrain (32x32).png" id="2_p57ef"] +[ext_resource type="Texture2D" uid="uid://cn1qvqti2u0pk" path="res://assets/environment/mushroom_32x64.png" id="3_gee14"] +[ext_resource type="Texture2D" uid="uid://cj3we2brsknxh" path="res://assets/environment/veg_32x32.png" id="4_0tnpc"] [ext_resource type="PackedScene" uid="uid://byl4bdrupii3k" path="res://scenes/player.tscn" id="4_iywne"] [ext_resource type="PackedScene" uid="uid://b6cmg0k8qjoxi" path="res://scenes/crate.tscn" id="5_iywne"] [ext_resource type="PackedScene" uid="uid://b3hgbbmb0nohj" path="res://scenes/trigger.tscn" id="5_p57ef"] @@ -11,14 +14,14 @@ texture = ExtResource("2_p57ef") texture_region_size = Vector2i(32, 32) 0:0/0 = 0 -0:0/0/terrain_set = 1 +0:0/0/terrain_set = 0 0:0/0/terrain = 0 0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:0/0/terrains_peering_bit/right_side = 0 0:0/0/terrains_peering_bit/bottom_right_corner = 0 0:0/0/terrains_peering_bit/bottom_side = 0 1:0/0 = 0 -1:0/0/terrain_set = 1 +1:0/0/terrain_set = 0 1:0/0/terrain = 0 1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -2.5490456, -16, -1.593153) 1:0/0/terrains_peering_bit/right_side = 0 @@ -27,19 +30,19 @@ texture_region_size = Vector2i(32, 32) 1:0/0/terrains_peering_bit/bottom_left_corner = 0 1:0/0/terrains_peering_bit/left_side = 0 2:0/0 = 0 -2:0/0/terrain_set = 1 +2:0/0/terrain_set = 0 2:0/0/terrain = 0 2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:0/0/terrains_peering_bit/bottom_side = 0 2:0/0/terrains_peering_bit/bottom_left_corner = 0 2:0/0/terrains_peering_bit/left_side = 0 4:0/0 = 0 -4:0/0/terrain_set = 1 +4:0/0/terrain_set = 0 4:0/0/terrain = 0 4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 4:0/0/terrains_peering_bit/bottom_side = 0 6:0/0 = 0 -6:0/0/terrain_set = 1 +6:0/0/terrain_set = 0 6:0/0/terrain = 0 6:0/0/terrains_peering_bit/right_side = 0 6:0/0/terrains_peering_bit/bottom_side = 0 @@ -49,7 +52,7 @@ texture_region_size = Vector2i(32, 32) 6:0/0/terrains_peering_bit/top_side = 0 6:0/0/terrains_peering_bit/top_right_corner = 0 7:0/0 = 0 -7:0/0/terrain_set = 1 +7:0/0/terrain_set = 0 7:0/0/terrain = 0 7:0/0/terrains_peering_bit/right_side = 0 7:0/0/terrains_peering_bit/bottom_right_corner = 0 @@ -59,7 +62,7 @@ texture_region_size = Vector2i(32, 32) 7:0/0/terrains_peering_bit/top_side = 0 7:0/0/terrains_peering_bit/top_right_corner = 0 9:0/0 = 0 -9:0/0/terrain_set = 1 +9:0/0/terrain_set = 0 9:0/0/terrain = 0 9:0/0/terrains_peering_bit/right_side = 0 9:0/0/terrains_peering_bit/bottom_right_corner = 0 @@ -68,7 +71,7 @@ texture_region_size = Vector2i(32, 32) 9:0/0/terrains_peering_bit/left_side = 0 9:0/0/terrains_peering_bit/top_side = 0 10:0/0 = 0 -10:0/0/terrain_set = 1 +10:0/0/terrain_set = 0 10:0/0/terrain = 0 10:0/0/terrains_peering_bit/right_side = 0 10:0/0/terrains_peering_bit/bottom_side = 0 @@ -77,7 +80,7 @@ texture_region_size = Vector2i(32, 32) 10:0/0/terrains_peering_bit/top_left_corner = 0 10:0/0/terrains_peering_bit/top_side = 0 12:0/0 = 0 -12:0/0/terrain_set = 1 +12:0/0/terrain_set = 0 12:0/0/terrain = 0 12:0/0/terrains_peering_bit/right_side = 0 12:0/0/terrains_peering_bit/bottom_right_corner = 0 @@ -86,7 +89,7 @@ texture_region_size = Vector2i(32, 32) 12:0/0/terrains_peering_bit/top_side = 0 12:0/0/terrains_peering_bit/top_right_corner = 0 13:0/0 = 0 -13:0/0/terrain_set = 1 +13:0/0/terrain_set = 0 13:0/0/terrain = 0 13:0/0/terrains_peering_bit/right_side = 0 13:0/0/terrains_peering_bit/bottom_side = 0 @@ -94,14 +97,14 @@ texture_region_size = Vector2i(32, 32) 13:0/0/terrains_peering_bit/left_side = 0 13:0/0/terrains_peering_bit/top_side = 0 15:0/0 = 0 -15:0/0/terrain_set = 1 +15:0/0/terrain_set = 0 15:0/0/terrain = 0 15:0/0/terrains_peering_bit/right_side = 0 15:0/0/terrains_peering_bit/bottom_side = 0 15:0/0/terrains_peering_bit/left_side = 0 15:0/0/terrains_peering_bit/top_side = 0 0:1/0 = 0 -0:1/0/terrain_set = 1 +0:1/0/terrain_set = 0 0:1/0/terrain = 0 0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -1.5931549, -16, -0.63726044, 16, -16, 16) 0:1/0/terrains_peering_bit/right_side = 0 @@ -111,7 +114,7 @@ texture_region_size = Vector2i(32, 32) 0:1/0/terrains_peering_bit/top_right_corner = 0 1:1/0 = 0 2:1/0 = 0 -2:1/0/terrain_set = 1 +2:1/0/terrain_set = 0 2:1/0/terrain = 0 2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(0.95589066, -16, 16, -16, 16, 16, 0.31863022, 16) 2:1/0/terrains_peering_bit/bottom_side = 0 @@ -120,13 +123,13 @@ texture_region_size = Vector2i(32, 32) 2:1/0/terrains_peering_bit/top_left_corner = 0 2:1/0/terrains_peering_bit/top_side = 0 4:1/0 = 0 -4:1/0/terrain_set = 1 +4:1/0/terrain_set = 0 4:1/0/terrain = 0 4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 4:1/0/terrains_peering_bit/bottom_side = 0 4:1/0/terrains_peering_bit/top_side = 0 6:1/0 = 0 -6:1/0/terrain_set = 1 +6:1/0/terrain_set = 0 6:1/0/terrain = 0 6:1/0/terrains_peering_bit/right_side = 0 6:1/0/terrains_peering_bit/bottom_right_corner = 0 @@ -136,7 +139,7 @@ texture_region_size = Vector2i(32, 32) 6:1/0/terrains_peering_bit/top_left_corner = 0 6:1/0/terrains_peering_bit/top_side = 0 7:1/0 = 0 -7:1/0/terrain_set = 1 +7:1/0/terrain_set = 0 7:1/0/terrain = 0 7:1/0/terrains_peering_bit/right_side = 0 7:1/0/terrains_peering_bit/bottom_right_corner = 0 @@ -146,7 +149,7 @@ texture_region_size = Vector2i(32, 32) 7:1/0/terrains_peering_bit/top_side = 0 7:1/0/terrains_peering_bit/top_right_corner = 0 9:1/0 = 0 -9:1/0/terrain_set = 1 +9:1/0/terrain_set = 0 9:1/0/terrain = 0 9:1/0/terrains_peering_bit/right_side = 0 9:1/0/terrains_peering_bit/bottom_right_corner = 0 @@ -154,7 +157,7 @@ texture_region_size = Vector2i(32, 32) 9:1/0/terrains_peering_bit/top_side = 0 9:1/0/terrains_peering_bit/top_right_corner = 0 10:1/0 = 0 -10:1/0/terrain_set = 1 +10:1/0/terrain_set = 0 10:1/0/terrain = 0 10:1/0/terrains_peering_bit/right_side = 0 10:1/0/terrains_peering_bit/bottom_side = 0 @@ -163,7 +166,7 @@ texture_region_size = Vector2i(32, 32) 10:1/0/terrains_peering_bit/top_side = 0 10:1/0/terrains_peering_bit/top_right_corner = 0 12:1/0 = 0 -12:1/0/terrain_set = 1 +12:1/0/terrain_set = 0 12:1/0/terrain = 0 12:1/0/terrains_peering_bit/right_side = 0 12:1/0/terrains_peering_bit/bottom_side = 0 @@ -171,7 +174,7 @@ texture_region_size = Vector2i(32, 32) 12:1/0/terrains_peering_bit/top_side = 0 12:1/0/terrains_peering_bit/top_right_corner = 0 13:1/0 = 0 -13:1/0/terrain_set = 1 +13:1/0/terrain_set = 0 13:1/0/terrain = 0 13:1/0/terrains_peering_bit/right_side = 0 13:1/0/terrains_peering_bit/bottom_side = 0 @@ -179,7 +182,7 @@ texture_region_size = Vector2i(32, 32) 13:1/0/terrains_peering_bit/top_left_corner = 0 13:1/0/terrains_peering_bit/top_side = 0 15:1/0 = 0 -15:1/0/terrain_set = 1 +15:1/0/terrain_set = 0 15:1/0/terrain = 0 15:1/0/terrains_peering_bit/right_side = 0 15:1/0/terrains_peering_bit/bottom_side = 0 @@ -187,7 +190,7 @@ texture_region_size = Vector2i(32, 32) 15:1/0/terrains_peering_bit/top_side = 0 15:1/0/terrains_peering_bit/top_right_corner = 0 16:1/0 = 0 -16:1/0/terrain_set = 1 +16:1/0/terrain_set = 0 16:1/0/terrain = 0 16:1/0/terrains_peering_bit/right_side = 0 16:1/0/terrains_peering_bit/bottom_right_corner = 0 @@ -197,14 +200,14 @@ texture_region_size = Vector2i(32, 32) 16:1/0/terrains_peering_bit/top_side = 0 16:1/0/terrains_peering_bit/top_right_corner = 0 0:2/0 = 0 -0:2/0/terrain_set = 1 +0:2/0/terrain_set = 0 0:2/0/terrain = 0 0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:2/0/terrains_peering_bit/right_side = 0 0:2/0/terrains_peering_bit/top_side = 0 0:2/0/terrains_peering_bit/top_right_corner = 0 1:2/0 = 0 -1:2/0/terrain_set = 1 +1:2/0/terrain_set = 0 1:2/0/terrain = 0 1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -0.31863022, 16, -0.63726044, 16, 16, -16, 16) 1:2/0/terrains_peering_bit/right_side = 0 @@ -213,19 +216,19 @@ texture_region_size = Vector2i(32, 32) 1:2/0/terrains_peering_bit/top_side = 0 1:2/0/terrains_peering_bit/top_right_corner = 0 2:2/0 = 0 -2:2/0/terrain_set = 1 +2:2/0/terrain_set = 0 2:2/0/terrain = 0 2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:2/0/terrains_peering_bit/left_side = 0 2:2/0/terrains_peering_bit/top_left_corner = 0 2:2/0/terrains_peering_bit/top_side = 0 4:2/0 = 0 -4:2/0/terrain_set = 1 +4:2/0/terrain_set = 0 4:2/0/terrain = 0 4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 4:2/0/terrains_peering_bit/top_side = 0 6:3/0 = 0 -6:3/0/terrain_set = 1 +6:3/0/terrain_set = 0 6:3/0/terrain = 0 6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -0.9558945, -16, -0.9558945, 16, -16, 16) 6:3/0/terrains_peering_bit/right_side = 0 @@ -233,7 +236,7 @@ texture_region_size = Vector2i(32, 32) 6:3/0/terrains_peering_bit/top_side = 0 6:3/0/terrains_peering_bit/top_right_corner = 0 7:3/0 = 0 -7:3/0/terrain_set = 1 +7:3/0/terrain_set = 0 7:3/0/terrain = 0 7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(0.95589066, -16, 16, -16, 16, 16, 1.5931549, 16) 7:3/0/terrains_peering_bit/bottom_side = 0 @@ -241,7 +244,7 @@ texture_region_size = Vector2i(32, 32) 7:3/0/terrains_peering_bit/top_left_corner = 0 7:3/0/terrains_peering_bit/top_side = 0 9:3/0 = 0 -9:3/0/terrain_set = 1 +9:3/0/terrain_set = 0 9:3/0/terrain = 0 9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1.2745228, -16, -1.2745228) 9:3/0/terrains_peering_bit/right_side = 0 @@ -249,7 +252,7 @@ texture_region_size = Vector2i(32, 32) 9:3/0/terrains_peering_bit/bottom_left_corner = 0 9:3/0/terrains_peering_bit/left_side = 0 10:3/0 = 0 -10:3/0/terrain_set = 1 +10:3/0/terrain_set = 0 10:3/0/terrain = 0 10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, -1.2745228, -16, -1.2745228) 10:3/0/terrains_peering_bit/right_side = 0 @@ -257,7 +260,7 @@ texture_region_size = Vector2i(32, 32) 10:3/0/terrains_peering_bit/bottom_side = 0 10:3/0/terrains_peering_bit/left_side = 0 12:3/0 = 0 -12:3/0/terrain_set = 1 +12:3/0/terrain_set = 0 12:3/0/terrain = 0 12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 12:3/0/terrains_peering_bit/right_side = 0 @@ -265,46 +268,46 @@ texture_region_size = Vector2i(32, 32) 12:3/0/terrains_peering_bit/top_side = 0 12:3/0/terrains_peering_bit/top_right_corner = 0 13:3/0 = 0 -13:3/0/terrain_set = 1 +13:3/0/terrain_set = 0 13:3/0/terrain = 0 13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 13:3/0/terrains_peering_bit/right_side = 0 13:3/0/terrains_peering_bit/bottom_side = 0 13:3/0/terrains_peering_bit/left_side = 0 15:3/0 = 0 -15:3/0/terrain_set = 1 +15:3/0/terrain_set = 0 15:3/0/terrain = 0 15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 15:3/0/terrains_peering_bit/right_side = 0 15:3/0/terrains_peering_bit/bottom_side = 0 16:3/0 = 0 -16:3/0/terrain_set = 1 +16:3/0/terrain_set = 0 16:3/0/terrain = 0 16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 16:3/0/terrains_peering_bit/bottom_side = 0 16:3/0/terrains_peering_bit/left_side = 0 0:4/0 = 0 -0:4/0/terrain_set = 1 +0:4/0/terrain_set = 0 0:4/0/terrain = 0 0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 0:4/0/terrains_peering_bit/right_side = 0 1:4/0 = 0 -1:4/0/terrain_set = 1 +1:4/0/terrain_set = 0 1:4/0/terrain = 0 1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 1:4/0/terrains_peering_bit/right_side = 0 1:4/0/terrains_peering_bit/left_side = 0 2:4/0 = 0 -2:4/0/terrain_set = 1 +2:4/0/terrain_set = 0 2:4/0/terrain = 0 2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 2:4/0/terrains_peering_bit/left_side = 0 4:4/0 = 0 -4:4/0/terrain_set = 1 +4:4/0/terrain_set = 0 4:4/0/terrain = 0 4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 6:4/0 = 0 -6:4/0/terrain_set = 1 +6:4/0/terrain_set = 0 6:4/0/terrain = 0 6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, -0.9558945, -16, -0.9558945, 16, -16, 16) 6:4/0/terrains_peering_bit/right_side = 0 @@ -312,7 +315,7 @@ texture_region_size = Vector2i(32, 32) 6:4/0/terrains_peering_bit/bottom_side = 0 6:4/0/terrains_peering_bit/top_side = 0 7:4/0 = 0 -7:4/0/terrain_set = 1 +7:4/0/terrain_set = 0 7:4/0/terrain = 0 7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(0.95589066, -16, 16, -16, 16, 16, 1.5931549, 16) 7:4/0/terrains_peering_bit/bottom_side = 0 @@ -320,7 +323,7 @@ texture_region_size = Vector2i(32, 32) 7:4/0/terrains_peering_bit/left_side = 0 7:4/0/terrains_peering_bit/top_side = 0 9:4/0 = 0 -9:4/0/terrain_set = 1 +9:4/0/terrain_set = 0 9:4/0/terrain = 0 9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -1.593153, 16, -1.9117851, 16, 16, -16, 16) 9:4/0/terrains_peering_bit/right_side = 0 @@ -328,7 +331,7 @@ texture_region_size = Vector2i(32, 32) 9:4/0/terrains_peering_bit/top_left_corner = 0 9:4/0/terrains_peering_bit/top_side = 0 10:4/0 = 0 -10:4/0/terrain_set = 1 +10:4/0/terrain_set = 0 10:4/0/terrain = 0 10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -1.593153, 16, -1.9117851, 16, 16, -16, 16) 10:4/0/terrains_peering_bit/right_side = 0 @@ -336,40 +339,61 @@ texture_region_size = Vector2i(32, 32) 10:4/0/terrains_peering_bit/top_side = 0 10:4/0/terrains_peering_bit/top_right_corner = 0 12:4/0 = 0 -12:4/0/terrain_set = 1 +12:4/0/terrain_set = 0 12:4/0/terrain = 0 12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 12:4/0/terrains_peering_bit/right_side = 0 12:4/0/terrains_peering_bit/left_side = 0 12:4/0/terrains_peering_bit/top_side = 0 13:4/0 = 0 -13:4/0/terrain_set = 1 +13:4/0/terrain_set = 0 13:4/0/terrain = 0 13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 13:4/0/terrains_peering_bit/bottom_side = 0 13:4/0/terrains_peering_bit/left_side = 0 13:4/0/terrains_peering_bit/top_side = 0 15:4/0 = 0 -15:4/0/terrain_set = 1 +15:4/0/terrain_set = 0 15:4/0/terrain = 0 15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 15:4/0/terrains_peering_bit/right_side = 0 15:4/0/terrains_peering_bit/top_side = 0 16:4/0 = 0 -16:4/0/terrain_set = 1 +16:4/0/terrain_set = 0 16:4/0/terrain = 0 16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 16:4/0/terrains_peering_bit/left_side = 0 16:4/0/terrains_peering_bit/top_side = 0 +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_vtaks"] +texture = ExtResource("3_gee14") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrains_peering_bit/bottom_side = 1 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 1 +0:1/0/terrains_peering_bit/top_side = 1 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_kvpfn"] +texture = ExtResource("4_0tnpc") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 1 + [sub_resource type="TileSet" id="TileSet_gee14"] tile_size = Vector2i(32, 32) physics_layer_0/collision_layer = 1 terrain_set_0/mode = 0 -terrain_set_1/mode = 0 -terrain_set_1/terrain_0/name = "LeafyGreen" -terrain_set_1/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +terrain_set_0/terrain_0/name = "LeafyGreen" +terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) +terrain_set_0/terrain_1/name = "Veg 1" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) sources/0 = SubResource("TileSetAtlasSource_u5sy4") +sources/1 = SubResource("TileSetAtlasSource_vtaks") +sources/2 = SubResource("TileSetAtlasSource_kvpfn") [sub_resource type="RectangleShape2D" id="RectangleShape2D_8cj0n"] @@ -378,8 +402,15 @@ sources/0 = SubResource("TileSetAtlasSource_u5sy4") [node name="Game" type="Node2D" unique_id=981419409] script = ExtResource("1_lnu2h") +[node name="Parallax2D" type="Parallax2D" parent="." unique_id=2081148083] +repeat_size = Vector2(580, 370) + +[node name="Sprite2D" type="Sprite2D" parent="Parallax2D" unique_id=879239814] +texture = ExtResource("2_0tnpc") +offset = Vector2(290, 185) + [node name="TileMapLayer" type="TileMapLayer" parent="." unique_id=1253342998] -tile_map_data = PackedByteArray("AAARAA0AAAAQAAQAAAARAAwAAAAPAAMAAAASAAwAAAABAAQAAAATAAwAAAAQAAQAAAATAAsAAAAEAAAAAAAUAAkAAAAAAAQAAAAVAAkAAAABAAQAAAAWAAkAAAACAAQAAAAXABEAAAAAAAQAAAAYABEAAAAQAAQAAAAYABAAAAAPAAMAAAAZABAAAAABAAQAAAAaABAAAAABAAQAAAAbABAAAAAQAAQAAAAbAA8AAAAEAAAAAAAbAAwAAAAAAAIAAAAbAAsAAAAAAAAAAAAcAAsAAAABAAAAAAAcAAwAAAABAAIAAAAdAAwAAAACAAIAAAAdAAsAAAAJAAMAAAAeAAsAAAACAAQAAAANAA0AAAAAAAQAAAAOAA0AAAABAAQAAAAPAA0AAAABAAQAAAAQAA0AAAABAAQAAAAKAA8AAAAAAAQAAAALAA8AAAABAAQAAAAMAA8AAAABAAQAAAANAA8AAAAKAAMAAAAOAA8AAAABAAAAAAAPAA8AAAABAAAAAAAQAA8AAAACAAAAAAAQABAAAAACAAEAAAAPABAAAAAGAAAAAAAOABAAAAAGAAAAAAANABAAAAAJAAEAAAANABEAAAAAAAIAAAAOABEAAAABAAIAAAAPABEAAAABAAIAAAAQABEAAAAJAAQAAAARABEAAAABAAQAAAASABEAAAAMAAQAAAASABAAAAAEAAAAAAATABEAAAACAAQAAAA=") +tile_map_data = PackedByteArray("AAARAA0AAAAQAAQAAAARAAwAAAAPAAMAAAASAAwAAAABAAQAAAATAAwAAAAQAAQAAAATAAsAAAAEAAAAAAAUAAkAAAAAAAQAAAAVAAkAAAABAAQAAAAWAAkAAAACAAQAAAAXABEAAAAAAAQAAAAYABEAAAAQAAQAAAAYABAAAAAPAAMAAAAZABAAAAABAAQAAAAaABAAAAABAAQAAAAbABAAAAAQAAQAAAAbAA8AAAAEAAAAAAAbAAwAAAAAAAIAAAAbAAsAAAAAAAAAAAAcAAsAAAABAAAAAAAcAAwAAAABAAIAAAAdAAwAAAACAAIAAAAdAAsAAAAJAAMAAAAeAAsAAAACAAQAAAANAA0AAAAAAAQAAAAOAA0AAAABAAQAAAAPAA0AAAABAAQAAAAQAA0AAAABAAQAAAAKAA8AAAAAAAQAAAALAA8AAAABAAQAAAAMAA8AAAABAAQAAAANAA8AAAAKAAMAAAAOAA8AAAABAAAAAAAPAA8AAAABAAAAAAAQAA8AAAACAAAAAAAQABAAAAACAAEAAAAPABAAAAAGAAAAAAAOABAAAAAGAAAAAAANABAAAAAJAAEAAAANABEAAAAAAAIAAAAOABEAAAABAAIAAAAPABEAAAABAAIAAAAQABEAAAAJAAQAAAARABEAAAABAAQAAAASABEAAAAMAAQAAAASABAAAAAEAAAAAAATABEAAAACAAQAAAAbAA4AAgAAAAAAAAAbAAoAAQAAAAEAAAAbAAkAAQAAAAAAAAAKAA4AAQAAAAEAAAAKAA0AAQAAAAAAAAALAA4AAgAAAAAAAAAVAAgAAgAAAAAAAAA=") tile_set = SubResource("TileSet_gee14") [node name="SceneManager" type="Node2D" parent="." unique_id=323246552] diff --git a/scenes/player.tscn b/scenes/player.tscn index bd4b9ea..124bb62 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -246,4 +246,7 @@ autoplay = "idle" frame = 2 frame_progress = 1.0 +[node name="Camera2D" type="Camera2D" parent="." unique_id=144867956] +offset = Vector2(0, -50) + [connection signal="animation_finished" from="PlayerGraphic" to="." method="_on_animation_finished"]