New gras texture and polygons, camera changes

The levels have to conform to some criteria to fit into the frame.
They have to have the right size, the zoom and
limits do not work for every size >:
This commit is contained in:
Jakob Feldmann 2022-11-07 22:56:14 +01:00
parent 5df4df667b
commit fb325601aa
22 changed files with 232 additions and 277 deletions

2
.vscode/launch.json vendored
View File

@ -8,7 +8,7 @@
"name": "GDScript Godot",
"type": "godot",
"request": "launch",
"project": "C:\\Users\\Jakob\\Documents\\Godot\\Wumper",
"project": "C:\\Users\\Jakob\\Documents\\Godot\\Blobby",
"port": 6007,
"address": "127.0.0.1",
"launch_game_instance": true,

View File

@ -1,26 +0,0 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/Beispiel-Busch.aseprite-e4b7724fea18978e42f11f3729f9d1a8.res"
[deps]
source_file="res://assets/environment/decor/Beispiel-Busch.aseprite"
dest_files=[ "res://.import/Beispiel-Busch.aseprite-e4b7724fea18978e42f11f3729f9d1a8.res" ]
[params]
split_layers=false
exclude_layers_pattern=""
only_visible_layers=false
sheet_type="Packed"
sprite_filename_pattern="{basename}.{layer}.{extension}"
texture_strip/import_texture_strip=false
texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}"
texture_atlas/import_texture_atlas=false
texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}"
texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}"
animated_texture/import_animated_texture=false
animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}"
animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}"

View File

@ -1,26 +0,0 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/bent_straw.aseprite-e42038488046e460e799823506d46bb8.res"
[deps]
source_file="res://assets/environment/decor/bent_straw.aseprite"
dest_files=[ "res://.import/bent_straw.aseprite-e42038488046e460e799823506d46bb8.res" ]
[params]
split_layers=false
exclude_layers_pattern=""
only_visible_layers=false
sheet_type="Packed"
sprite_filename_pattern="{basename}.{layer}.{extension}"
texture_strip/import_texture_strip=false
texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}"
texture_atlas/import_texture_atlas=false
texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}"
texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}"
animated_texture/import_animated_texture=false
animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}"
animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 144 B

View File

@ -1,26 +0,0 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/bent_straw_2.aseprite-533c943446b43f78ec49a9f7e64d2cbb.res"
[deps]
source_file="res://assets/environment/decor/bent_straw_2.aseprite"
dest_files=[ "res://.import/bent_straw_2.aseprite-533c943446b43f78ec49a9f7e64d2cbb.res" ]
[params]
split_layers=false
exclude_layers_pattern=""
only_visible_layers=false
sheet_type="Packed"
sprite_filename_pattern="{basename}.{layer}.{extension}"
texture_strip/import_texture_strip=false
texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}"
texture_atlas/import_texture_atlas=false
texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}"
texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}"
animated_texture/import_animated_texture=false
animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}"
animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/bent_straw_2.png-06cf9f311cb17db2aaae1e44b39a93f4.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/decor/bent_straw_2.png"
dest_files=[ "res://.import/bent_straw_2.png-06cf9f311cb17db2aaae1e44b39a93f4.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=false
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/bent_straw_left_2.png-fdd66b1aa4d5827c3bd59fde835cf245.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/decor/bent_straw_left_2.png"
dest_files=[ "res://.import/bent_straw_left_2.png-fdd66b1aa4d5827c3bd59fde835cf245.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=false
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/bent_straw_leftt.png-cd64eb7293fffda2fa93cf3eca0198bb.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/environment/decor/bent_straw_leftt.png"
dest_files=[ "res://.import/bent_straw_leftt.png-cd64eb7293fffda2fa93cf3eca0198bb.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=false
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

View File

@ -1,26 +0,0 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/short_straw.aseprite-dc5d8347b9d6d5e161cbd2f672a5b8c7.res"
[deps]
source_file="res://assets/environment/decor/short_straw.aseprite"
dest_files=[ "res://.import/short_straw.aseprite-dc5d8347b9d6d5e161cbd2f672a5b8c7.res" ]
[params]
split_layers=false
exclude_layers_pattern=""
only_visible_layers=false
sheet_type="Packed"
sprite_filename_pattern="{basename}.{layer}.{extension}"
texture_strip/import_texture_strip=false
texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}"
texture_atlas/import_texture_atlas=false
texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}"
texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}"
animated_texture/import_animated_texture=false
animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}"
animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 121 B

View File

@ -1,26 +0,0 @@
[remap]
importer="aseprite.wizard.plugin"
type="SpriteFrames"
path="res://.import/straight_straw.aseprite-95acb695229b4f32fa48786e91411e1d.res"
[deps]
source_file="res://assets/environment/decor/straight_straw.aseprite"
dest_files=[ "res://.import/straight_straw.aseprite-95acb695229b4f32fa48786e91411e1d.res" ]
[params]
split_layers=false
exclude_layers_pattern=""
only_visible_layers=false
sheet_type="Packed"
sprite_filename_pattern="{basename}.{layer}.{extension}"
texture_strip/import_texture_strip=false
texture_strip/filename_pattern="{basename}.{layer}.Strip.{extension}"
texture_atlas/import_texture_atlas=false
texture_atlas/filename_pattern="{basename}.{layer}.Atlas.{extension}"
texture_atlas/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Atlas.{extension}"
animated_texture/import_animated_texture=false
animated_texture/filename_pattern="{basename}.{layer}.{animation}.Texture.{extension}"
animated_texture/frame_filename_pattern="{basename}.{layer}.{animation}.{frame}.Texture.{extension}"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 122 B

View File

@ -385,12 +385,11 @@ func execute_movement() -> void:
rotation = calculate_slope_rotation(onfloor)
# rotate related to floor slope
# Convert velocity back to local space.
velocity = velocity.rotated(-floor_rot*1.1) if snap_possible else velocity
# TODO: Downward velocity should be increased by gravity
velocity = velocity.rotated(-floor_rot) if snap_possible else velocity
func calculate_slope_rotation(onfloor: bool) -> float:
var angle = 0
# var distance_to_slope_left = abs($SlopeRaycastLeft.global_position.distance_to($SlopeRaycastLeft.get_collision_point()))
# var distance_to_slope_right = abs($SlopeRaycastRight.global_position.distance_to($SlopeRaycastRight.get_collision_point()))
var slope_angle_left = $SlopeRaycastLeft.get_collision_normal().rotated(PI/2).angle()
var slope_angle_right = $SlopeRaycastRight.get_collision_normal().rotated(PI/2).angle()
# avoid invalid angles and stay in rotation when touching ground completely
@ -399,9 +398,8 @@ func calculate_slope_rotation(onfloor: bool) -> float:
|| (abs(slope_angle_left) - abs(slope_angle_right) == 0 && onfloor)):
return previous_rotation if abs(previous_rotation) > 0.1 else 0.0
# downturn
# print(abs(slope_angle_left) > abs(slope_angle_right) && distance_to_slope_right > distance_to_slope_left)
if(abs(slope_angle_left) > abs(slope_angle_right) ||
abs(slope_angle_right) > abs(slope_angle_left)):
if(abs(slope_angle_left) > abs(slope_angle_right) && velocity.x < -10||
abs(slope_angle_right) > abs(slope_angle_left) && velocity.x > 10):
var length_vector: Vector2 = $SlopeRaycastRight.get_collision_point() - $SlopeRaycastLeft.get_collision_point()
angle = length_vector.angle()
# upturn

View File

@ -17,7 +17,7 @@ func _ready():
_set_boundaries()
self.position = blobby.global_position
prev_camera_pos = get_camera_screen_center()
offset.x = -camera_horizontal_shift
offset.x = -camera_horizontal_shift if zoom.x == original_x_zoom else 0
func _physics_process(_delta: float) -> void:
if(!GlobalState.is_dead):
@ -32,19 +32,19 @@ func _set_boundaries():
# This is ok, because it only happens on initialization
# But it is also quite fickle
var tilemap = get_node("../TileMap")
# TODO This goes wrong when overwriting old tiles with new sprites
# TODO: This goes wrong when overwriting old tiles with new sprites
# New pngs -> completely new tiles and rebuild map
var rect = tilemap.get_used_rect()
var cell_size = tilemap.cell_size
limit_right = rect.end.x * cell_size.x - camera_horizontal_shift
limit_left = rect.position.x * cell_size.x + camera_horizontal_shift
# TODO When vertical scrolling is fixed
# TODO: When vertical scrolling is fixed
limit_top = rect.position.y * cell_size.y #+ camera_vertical_shift
limit_bottom = rect.end.y * cell_size.y #- camera_vertical_shift
var screen_size = get_viewport_rect()
var h_pixels = limit_right - limit_left
var v_pixels = limit_bottom - limit_top
#TODO Fix that it can zoom both?
# TODO: Fix that it can zoom both?
if screen_size.end.x * original_x_zoom - h_pixels > 0:
zoom.x = h_pixels / screen_size.end.x
zoom.y = zoom.x
@ -71,7 +71,7 @@ func _adapt_to_movement():
# print(target_offset)
# tween_v = true
if (tween_h || tween_v):
if ((tween_h || tween_v ) && zoom == Vector2(original_x_zoom, original_y_zoom)):
#TODO Motion may be too complex
tween.interpolate_property(
self,

View File

@ -96,13 +96,25 @@ tracks/7/path = NodePath(".:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ) ]
}
tracks/8/type = "value"
tracks/8/path = NodePath(".:offset")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ) ]
}
[sub_resource type="Animation" id=6]
resource_name = "deathCam"
@ -237,10 +249,10 @@ zoom = Vector2( 0.75, 0.75 )
process_mode = 0
drag_margin_h_enabled = true
drag_margin_v_enabled = true
drag_margin_left = 0.05
drag_margin_top = 0.05
drag_margin_right = 0.05
drag_margin_bottom = 0.05
drag_margin_left = 0.01
drag_margin_top = 0.01
drag_margin_right = 0.01
drag_margin_bottom = 0.01
editor_draw_screen = false
script = ExtResource( 1 )
@ -254,18 +266,21 @@ anims/deathCam = SubResource( 6 )
scroll_base_offset = Vector2( 320, 180 )
[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"]
z_index = -1
motion_scale = Vector2( 0, 0 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"]
texture = ExtResource( 4 )
[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"]
z_index = -1
motion_scale = Vector2( 0, 0 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"]
texture = ExtResource( 3 )
[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"]
z_index = -1
motion_scale = Vector2( 0.001, 0.001 )
[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"]

View File

@ -1,6 +1,6 @@
extends Node2D
onready var blobby = get_node("../Blobby")
onready var blobby = get_node("%Blobby")
var last_distance: Vector2 = Vector2(100,100)

View File

@ -1,67 +1,71 @@
[gd_scene load_steps=8 format=2]
[gd_scene load_steps=9 format=2]
[ext_resource path="res://assets/environment/decor/straight_straw.png" type="Texture" id=1]
[ext_resource path="res://src/Environment/ShaderGrass.gd" type="Script" id=2]
[ext_resource path="res://src/Environment/ShaderGrass.tres" type="Material" id=3]
[sub_resource type="StreamTexture" id=3]
load_path = "res://.import/short_straw.png-74a4a080ce5e7e7272200d0d4a93bc94.stex"
[sub_resource type="StreamTexture" id=17]
load_path = "res://.import/short_straw.png-74a4a080ce5e7e7272200d0d4a93bc94.stex"
[sub_resource type="StreamTexture" id=18]
load_path = "res://.import/bent_straw.png-34af1874e71c7c7b0749bdc0374dc29d.stex"
[sub_resource type="StreamTexture" id=9]
load_path = "res://.import/bent_straw.png-34af1874e71c7c7b0749bdc0374dc29d.stex"
[sub_resource type="StreamTexture" id=2]
load_path = "res://.import/straight_straw.png-de19826f989d2481c31d92ac559e94ef.stex"
[ext_resource path="res://assets/environment/decor/short_straw.png" type="Texture" id=4]
[ext_resource path="res://assets/environment/decor/bent_straw.png" type="Texture" id=5]
[ext_resource path="res://assets/environment/decor/bent_straw_2.png" type="Texture" id=6]
[ext_resource path="res://assets/environment/decor/bent_straw_leftt.png" type="Texture" id=7]
[ext_resource path="res://assets/environment/decor/bent_straw_left_2.png" type="Texture" id=8]
[node name="ShaderGrass" type="Node2D"]
script = ExtResource( 2 )
[node name="ShortStrawPolygon2" type="Polygon2D" parent="."]
[node name="StraightStraw" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( -2.30669, 0 )
texture = SubResource( 3 )
polygon = PoolVector2Array( 4.8599, 12.1162, 4.84375, 7.21094, 4.91575, 2.9375, 5.84277, 2.85904, 5.84375, 1.88281, 6.96094, 1.90625, 6.999, 2.89845, 7.97825, 2.9375, 7.98438, 7.09375, 7.98528, 12.1279 )
uv = PoolVector2Array( 4.47825, 12.125, 4.35325, 7.25, 4.41575, 2.6875, 5.66575, 2.5625, 5.66575, 1.3125, 7.16575, 1.3125, 7.22825, 2.5625, 8.54075, 2.625, 8.54075, 7.1875, 8.47825, 12.3125 )
polygons = [ PoolIntArray( 0, 9, 1 ), PoolIntArray( 8, 1, 9 ), PoolIntArray( 8, 2, 1 ), PoolIntArray( 8, 2, 3, 4, 5, 6, 7 ) ]
position = Vector2( -2, 0 )
texture = ExtResource( 1 )
polygon = PoolVector2Array( 4.9375, 4.5625, 5, 1.6875, 8.125, 1.6875, 8.0625, 4.875, 8.0625, 8.4375, 8.125, 12.125, 4.8125, 12.0625, 4.8125, 8.5 )
uv = PoolVector2Array( 4.9375, 4.5625, 5, 1.6875, 8.125, 1.6875, 8.0625, 4.875, 8.0625, 8.4375, 8.125, 12.125, 4.8125, 12.0625, 4.8125, 8.5 )
polygons = [ PoolIntArray( 1, 3, 0 ), PoolIntArray( 2, 3, 1 ), PoolIntArray( 0, 4, 3 ), PoolIntArray( 0, 7, 4 ), PoolIntArray( 6, 7, 5 ), PoolIntArray( 4, 5, 7 ) ]
[node name="ShortStrawPolygon3" type="Polygon2D" parent="."]
[node name="ShortStraw" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( 1.24897, 0.113895 )
texture = SubResource( 17 )
polygon = PoolVector2Array( 4.8599, 12.1162, 4.84375, 7.21094, 4.91575, 2.9375, 5.84277, 2.85904, 5.84375, 1.88281, 6.96094, 1.90625, 6.999, 2.89845, 7.97825, 2.9375, 7.98438, 7.09375, 7.98528, 12.1279 )
uv = PoolVector2Array( 4.47825, 12.125, 4.35325, 7.25, 4.41575, 2.6875, 5.66575, 2.5625, 5.66575, 1.3125, 7.16575, 1.3125, 7.22825, 2.5625, 8.54075, 2.625, 8.54075, 7.1875, 8.47825, 12.3125 )
polygons = [ PoolIntArray( 0, 9, 1 ), PoolIntArray( 8, 1, 9 ), PoolIntArray( 8, 2, 1 ), PoolIntArray( 8, 2, 3, 4, 5, 6, 7 ) ]
position = Vector2( -4, -1 )
texture = ExtResource( 4 )
polygon = PoolVector2Array( 5, 12.0625, 4.9375, 10.0625, 4.875, 8, 5.0625, 5.9375, 8.1875, 6, 8.0625, 8.0625, 8.0625, 10.1875, 8.0625, 12.125 )
uv = PoolVector2Array( 5, 12.0625, 4.9375, 10.0625, 4.875, 8, 5.0625, 5.9375, 8.1875, 6, 8.0625, 8.0625, 8.0625, 10.1875, 8.0625, 12.125 )
polygons = [ PoolIntArray( 3, 5, 4 ), PoolIntArray( 2, 3, 5 ), PoolIntArray( 1, 2, 6 ), PoolIntArray( 5, 6, 2 ), PoolIntArray( 6, 0, 7 ), PoolIntArray( 6, 1, 0 ) ]
[node name="BentStrawPolygon" type="Polygon2D" parent="."]
[node name="ShortStraw2" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( 6.58748, 0.206984 )
texture = SubResource( 18 )
polygon = PoolVector2Array( 1.00644, 12.0961, 1.03124, 8.84688, 2.2466, 7.82995, 4.05723, 5.74649, 5.89266, 5.69688, 7.8273, 5.79609, 8.47219, 6.21775, 8.4375, 7.4375, 5.49581, 9.39255, 4.03242, 12.0465 )
uv = PoolVector2Array( 0.562501, 11.875, 0.875001, 8.5625, 2.25, 6.375, 4.5, 3.9375, 6.125, 3.1875, 8.25, 3.5, 9.0625, 4.4375, 9.1875, 6.3125, 6.125, 9.25, 4.5625, 11.875 )
polygons = [ PoolIntArray( 0, 9, 1 ), PoolIntArray( 8, 1, 9 ), PoolIntArray( 8, 2, 1 ), PoolIntArray( 8, 2, 3, 4, 5, 6, 7 ) ]
position = Vector2( 1, -2 )
texture = ExtResource( 4 )
polygon = PoolVector2Array( 5, 12.0625, 4.9375, 10.0625, 4.875, 8, 5.0625, 5.9375, 8.1875, 6, 8.0625, 8.0625, 8.0625, 10.1875, 8.0625, 12.125 )
uv = PoolVector2Array( 5, 12.0625, 4.9375, 10.0625, 4.875, 8, 5.0625, 5.9375, 8.1875, 6, 8.0625, 8.0625, 8.0625, 10.1875, 8.0625, 12.125 )
polygons = [ PoolIntArray( 3, 5, 4 ), PoolIntArray( 2, 3, 5 ), PoolIntArray( 1, 2, 6 ), PoolIntArray( 5, 6, 2 ), PoolIntArray( 6, 0, 7 ), PoolIntArray( 6, 1, 0 ) ]
[node name="BentStrawInversePolygon" type="Polygon2D" parent="."]
visible = false
[node name="BentStrawRight" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( 5.15028, 0.0923641 )
scale = Vector2( -0.807856, 1 )
texture = SubResource( 9 )
polygon = PoolVector2Array( 1.00644, 12.0961, 1.03124, 8.84688, 2.2466, 7.82995, 4.05723, 5.74649, 5.89266, 5.69688, 7.8273, 5.79609, 8.47219, 6.21775, 8.4375, 7.4375, 5.49581, 9.39255, 4.03242, 12.0465 )
uv = PoolVector2Array( 0.562501, 11.875, 0.875001, 8.5625, 2.25, 6.375, 4.5, 3.9375, 6.125, 3.1875, 8.25, 3.5, 9.0625, 4.4375, 9.1875, 6.3125, 6.125, 9.25, 4.5625, 11.875 )
polygons = [ PoolIntArray( 0, 9, 1 ), PoolIntArray( 8, 1, 9 ), PoolIntArray( 8, 2, 1 ), PoolIntArray( 8, 2, 3, 4, 5, 6, 7 ) ]
position = Vector2( 5, 0 )
texture = ExtResource( 5 )
polygon = PoolVector2Array( 1, 12, 0.9375, 9.0625, 2.75, 7.0625, 5, 5.75, 9.1875, 5.75, 9.125, 9.1875, 6, 10, 5.0625, 12.0625 )
uv = PoolVector2Array( 1, 12, 0.9375, 9.0625, 2.75, 7.0625, 5, 5.75, 9.1875, 5.75, 9.125, 9.1875, 6, 10, 5.0625, 12.0625 )
polygons = [ PoolIntArray( 1, 7, 0 ), PoolIntArray( 2, 7, 1 ), PoolIntArray( 6, 7, 2 ), PoolIntArray( 6, 3, 2 ), PoolIntArray( 3, 5, 6 ), PoolIntArray( 3, 4, 5 ) ]
[node name="StraigtStrawPolygon" type="Polygon2D" parent="."]
[node name="BentStraw2Right" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( -0.57621, 0.03125 )
texture = SubResource( 2 )
polygon = PoolVector2Array( 4.8599, 12.1162, 4.84375, 7.21094, 4.91575, 2.9375, 5.84277, 2.85904, 5.84375, 1.88281, 6.96094, 1.90625, 6.999, 2.89845, 7.97825, 2.9375, 7.98438, 7.09375, 7.98528, 12.1279 )
uv = PoolVector2Array( 4.47825, 12.125, 4.35325, 7.25, 4.41575, 2.6875, 5.66575, 2.5625, 5.66575, 1.3125, 7.16575, 1.3125, 7.22825, 2.5625, 8.54075, 2.625, 8.54075, 7.1875, 8.47825, 12.3125 )
polygons = [ PoolIntArray( 0, 9, 1 ), PoolIntArray( 8, 1, 9 ), PoolIntArray( 8, 2, 1 ), PoolIntArray( 8, 2, 3, 4, 5, 6, 7 ) ]
position = Vector2( 4, 0 )
texture = ExtResource( 6 )
polygon = PoolVector2Array( 0.875, 12, 0.875, 7.9375, 2.13287, 6.45765, 3, 5.4375, 4.625, 3.6875, 6.9375, 1.6875, 9.375, 4.25, 7, 6.25, 5.5625, 7.5, 4.75, 8.25, 4.6875, 11.875 )
uv = PoolVector2Array( 0.875, 12, 0.875, 7.9375, 3, 5.4375, 4.625, 3.6875, 6.9375, 1.6875, 9.375, 4.25, 7, 6.25, 5.5625, 7.5, 4.75, 8.25, 4.6875, 11.8125 )
[node name="BentStrawLeft" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( -6, 0 )
texture = ExtResource( 7 )
polygon = PoolVector2Array( 5.0625, 11.9375, 3.9375, 10, 1, 8.9375, 0.875, 5.8125, 5.1875, 5.6875, 6.8125, 7.25, 8.9375, 8.6875, 8.875, 11.9375 )
uv = PoolVector2Array( 5.0625, 11.9375, 3.9375, 10, 1, 8.9375, 0.875, 5.8125, 5.1875, 5.6875, 6.8125, 7.25, 8.9375, 8.6875, 8.875, 11.9375 )
polygons = [ PoolIntArray( 0, 6, 7 ), PoolIntArray( 1, 6, 0 ), PoolIntArray( 1, 5, 6 ), PoolIntArray( 1, 4, 5 ), PoolIntArray( 2, 1, 4 ), PoolIntArray( 3, 4, 2 ) ]
[node name="BentStraw2Left" type="Polygon2D" parent="."]
material = ExtResource( 3 )
position = Vector2( -4, 0 )
texture = ExtResource( 8 )
polygon = PoolVector2Array( 4.9375, 11.875, 5, 8.8125, 2.8125, 7, -0.375, 4.0625, 2.25, 1.9375, 4.75, 4.625, 8.0625, 7.9375, 8, 12.0625 )
uv = PoolVector2Array( 4.9375, 11.875, 5, 8.8125, 2.8125, 7, -0.375, 4.0625, 2.25, 1.9375, 4.75, 4.625, 8.0625, 7.9375, 8, 12.0625 )
polygons = [ PoolIntArray( 0, 6, 7 ), PoolIntArray( 0, 1, 6 ), PoolIntArray( 1, 5, 6 ), PoolIntArray( 1, 2, 5 ), PoolIntArray( 2, 4, 5 ), PoolIntArray( 2, 3, 4 ) ]
[node name="Timer" type="Timer" parent="."]
wait_time = 4.0

File diff suppressed because one or more lines are too long

View File

@ -1,20 +1,16 @@
[gd_scene load_steps=13 format=2]
[gd_scene load_steps=8 format=2]
[ext_resource path="res://src/Environment/AlienShipTileSet.tres" type="TileSet" id=1]
[ext_resource path="res://src/Utilities/GameplaySignalManager.gd" type="Script" id=2]
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/NeutralObjects/Coin.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Environment/ShaderGrass.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Levels/Enemy Test Level.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=11]
[sub_resource type="AnimationNodeStateMachinePlayback" id=4]
[node name="LevelTemplate" type="Node2D"]
position = Vector2( 16, -10 )
__meta__ = {
"_edit_horizontal_guides_": [ 464.0 ],
"_edit_vertical_guides_": [ 2880.0 ]
@ -31,7 +27,18 @@ margin_top = 0.456848
margin_right = 3.15375
margin_bottom = 0.456848
[node name="TileMap" type="TileMap" parent="."]
position = Vector2( -16, 10 )
tile_set = ExtResource( 1 )
cell_size = Vector2( 24, 24 )
collision_layer = 8
collision_mask = 8
format = 1
tile_data = PoolIntArray( -262152, 3, 0, -262151, 3, 0, -262150, 3, 0, -262149, 3, 0, -262148, 3, 0, -262147, 3, 0, -262146, 3, 0, -262145, 3, 0, -327680, 3, 0, -327679, 3, 0, -327678, 3, 0, -327677, 3, 0, -327676, 3, 0, -327675, 3, 0, -196616, 3, 0, -262139, 3, 0, -131080, 3, 0, -196603, 3, 0, -65544, 3, 0, -131067, 3, 0, -8, 3, 0, -65531, 3, 0, 65528, 3, 0, 65529, 3, 0, 65530, 3, 0, 65531, 3, 0, 65532, 3, 0, 65533, 4, 0, 65534, 4, 0, 65535, 4, 0, 0, 4, 0, 1, 4, 0, 2, 4, 0, 3, 4, 0, 4, 4, 0, 5, 4, 0 )
[node name="BlobbyCam" parent="." instance=ExtResource( 11 )]
drag_margin_h_enabled = false
drag_margin_v_enabled = false
[node name="Blobby" parent="." instance=ExtResource( 10 )]
unique_name_in_owner = true
@ -41,70 +48,6 @@ scale = Vector2( 0.878906, 0.936025 )
[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"]
parameters/playback = SubResource( 4 )
[node name="TileMap" type="TileMap" parent="."]
position = Vector2( -109, -327 )
tile_set = ExtResource( 1 )
cell_size = Vector2( 24, 24 )
cell_quadrant_size = 3
cell_custom_transform = Transform2D( 24, 0, 0, 24, 0, 0 )
collision_layer = 8
collision_mask = 8
format = 1
tile_data = PoolIntArray( 655360, 2, 0, 655361, 2, 0, 655362, 2, 0, 655363, 2, 0, 655364, 2, 0, 655365, 2, 0, 655366, 2, 0, 655367, 2, 0, 655368, 2, 0, 720896, 2, 0, 720904, 2, 0, 786432, 2, 0, 786440, 2, 0, 851968, 2, 0, 851976, 2, 0, 917504, 2, 0, 917505, 2, 0, 917506, 2, 0, 917507, 2, 0, 917508, 2, 0, 917509, 2, 0, 917510, 2, 0, 917511, 2, 0, 917512, 2, 0 )
[node name="Collectibles" type="Node2D" parent="."]
visible = false
[node name="Coin" parent="Collectibles" instance=ExtResource( 4 )]
position = Vector2( 336, -60 )
scale = Vector2( 0.133, 0.133 )
[node name="Coin2" parent="Collectibles" instance=ExtResource( 4 )]
position = Vector2( 324, -11 )
scale = Vector2( 0.133, 0.133 )
[node name="Coin3" parent="Collectibles" instance=ExtResource( 4 )]
position = Vector2( 1188, -84 )
scale = Vector2( 0.133, 0.133 )
[node name="Coin4" parent="Collectibles" instance=ExtResource( 4 )]
position = Vector2( 1236, -108 )
scale = Vector2( 0.133, 0.133 )
[node name="Coin5" parent="Collectibles" instance=ExtResource( 4 )]
position = Vector2( 1140, -108 )
scale = Vector2( 0.133, 0.133 )
[node name="Coin6" parent="Collectibles" instance=ExtResource( 4 )]
position = Vector2( 696, -48 )
scale = Vector2( 0.133, 0.133 )
[node name="TreeWhyButtons" parent="." instance=ExtResource( 3 )]
visible = false
position = Vector2( -108, -7 )
[node name="WhyButton1" parent="TreeWhyButtons" index="0"]
position = Vector2( -12, -49 )
rotation = 1.5708
[node name="WhyButton2" parent="TreeWhyButtons" index="1"]
position = Vector2( 444, -17 )
rotation = 3.14159
[node name="WhyButton3" parent="TreeWhyButtons" index="2"]
position = Vector2( 1452, -77 )
rotation = -1.5708
[node name="ElevatorButton" parent="." instance=ExtResource( 8 )]
visible = false
position = Vector2( 1452, -96 )
[node name="Portal" parent="ElevatorButton" instance=ExtResource( 7 )]
visible = false
position = Vector2( -1464, 84 )
monitoring = false
next_scene = ExtResource( 9 )
[node name="GameplaySignalManager" type="Node2D" parent="."]
script = ExtResource( 2 )
@ -331,8 +274,5 @@ z_index = -1
[editable path="UserInterface"]
[editable path="UserInterface/HUD"]
[editable path="BlobbyCam"]
[editable path="Blobby"]
[editable path="TreeWhyButtons"]
[editable path="TreeWhyButtons/WhyButton1"]
[editable path="TreeWhyButtons/WhyButton2"]
[editable path="TreeWhyButtons/WhyButton3"]