commit 1c9145100a646f271804db3b1c7d970ee80f608b Author: Gary Wang Date: Mon Nov 23 01:06:21 2020 +0800 init commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..36367f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ \ No newline at end of file diff --git a/Assets/Player/player.png b/Assets/Player/player.png new file mode 100644 index 0000000..1436057 Binary files /dev/null and b/Assets/Player/player.png differ diff --git a/Assets/Player/player.png.import b/Assets/Player/player.png.import new file mode 100644 index 0000000..d29911c --- /dev/null +++ b/Assets/Player/player.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/player.png-5e42ab849d862172be00e6b72c9838e5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Player/player.png" +dest_files=[ "res://.import/player.png-5e42ab849d862172be00e6b72c9838e5.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=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Assets/Tilesets/template.png b/Assets/Tilesets/template.png new file mode 100644 index 0000000..23593cd Binary files /dev/null and b/Assets/Tilesets/template.png differ diff --git a/Assets/Tilesets/template.png.import b/Assets/Tilesets/template.png.import new file mode 100644 index 0000000..a8c7e39 --- /dev/null +++ b/Assets/Tilesets/template.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/template.png-57c61b7ef5792b072f633752e8b1f2e3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Tilesets/template.png" +dest_files=[ "res://.import/template.png-57c61b7ef5792b072f633752e8b1f2e3.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=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Player.gd b/Player.gd new file mode 100644 index 0000000..6e1b80f --- /dev/null +++ b/Player.gd @@ -0,0 +1,85 @@ +extends KinematicBody2D + +# list of things we should to implement: +# https://twitter.com/MaddyThorson/status/1238338584479813637 +# Done: +# 1. Coyote time. +# 2. Jump buffering. +# 3. Halved gravity jump peak. +# TODO: +# 4. Jump corner correction. +# 8. You can actually wall jump 2 pixels from a wall. + +const COYOTE_TIME = 0.1 +const BUFFER_JUMP_TIME = 0.1 +const VAR_JUMP_TIME = 0.2 # hold jump to jump higher + +const JUMP_SPEED = -160 +const MAX_FALL = 160 +const GRAVITY = 1000 +const HALF_GRAV_THRESHOLD = 40 +const MAX_RUN = 100 +const RUN_ACCEL = 800 +const RUN_ACCEL_AIR_MULT = 0.8 + + +var speed = Vector2.ZERO +var buffer_jump_grace = 0 +var coyote_jump_grace = 0 +var var_jump = 0 + + +onready var sprite = $Sprite + + +func _physics_process(delta): + + if buffer_jump_grace > 0: + buffer_jump_grace -= delta + if coyote_jump_grace > 0: + coyote_jump_grace -= delta + if var_jump > 0: + var_jump -= delta + + var on_ground = is_on_floor() + if on_ground: + coyote_jump_grace = COYOTE_TIME + else: + if Input.is_action_just_pressed("player_jump"): + buffer_jump_grace = BUFFER_JUMP_TIME + + # Vertical Control + if (coyote_jump_grace > 0 && (Input.is_action_just_pressed("player_jump") || buffer_jump_grace > 0)): + # Jumping + buffer_jump_grace = 0 + coyote_jump_grace = 0 + var_jump = VAR_JUMP_TIME + speed.y = JUMP_SPEED + else: + # Gravity + var mult = 1 + if Input.is_action_pressed("player_jump") && abs(speed.y) <= HALF_GRAV_THRESHOLD: + mult = 0.5 + # speed.y += min(MAX_FALL, GRAVITY * mult * delta) + speed.y = move_toward(speed.y, MAX_FALL, GRAVITY * mult * delta) + + # Variable Jumping + if Input.is_action_just_released("player_jump"): + var_jump = 0 + if var_jump > 0 && Input.is_action_pressed("player_jump"): + speed.y = JUMP_SPEED + + # Horizontal Control + var x_input = Input.get_action_strength("player_right") - Input.get_action_strength("player_left") + if x_input != 0: + sprite.flip_h = x_input < 0 + + var accel = RUN_ACCEL + if !on_ground: + accel *= RUN_ACCEL_AIR_MULT + + speed.x = move_toward(speed.x, x_input * MAX_RUN, accel * delta) + + # Apply movement + speed = move_and_slide(speed, Vector2.UP) + diff --git a/Player.tscn b/Player.tscn new file mode 100644 index 0000000..ac5a8fa --- /dev/null +++ b/Player.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Assets/Player/player.png" type="Texture" id=1] +[ext_resource path="res://Player.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 3, 8 ) + +[node name="Player" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -16 ) +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, -8 ) +shape = SubResource( 1 ) diff --git a/TestLevel.tscn b/TestLevel.tscn new file mode 100644 index 0000000..7d35327 --- /dev/null +++ b/TestLevel.tscn @@ -0,0 +1,590 @@ +[gd_scene load_steps=65 format=2] + +[ext_resource path="res://Player.tscn" type="PackedScene" id=1] +[ext_resource path="res://Assets/Tilesets/template.png" type="Texture" id=2] + +[sub_resource type="ConvexPolygonShape2D" id=1] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=3] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=5] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=6] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=7] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=8] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=9] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=10] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=11] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=12] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=13] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=14] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=15] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=16] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=17] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=18] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=19] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=20] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=21] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=22] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=23] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=24] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=25] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=26] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=27] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=28] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=29] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=30] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=31] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=32] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=33] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=34] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=35] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=36] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=37] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=38] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=39] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=40] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=41] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=42] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=43] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=44] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=45] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=46] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=47] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=48] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=49] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=50] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=51] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=52] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=53] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=54] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=55] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=56] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=57] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=58] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=59] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=60] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="ConvexPolygonShape2D" id=61] +points = PoolVector2Array( 0, 0, 8, 0, 8, 8, 0, 8 ) + +[sub_resource type="TileSet" id=62] +0/name = "template.png 0" +0/texture = ExtResource( 2 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 48, 120 ) +0/tile_mode = 1 +0/autotile/bitmask_mode = 1 +0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 504, Vector2( 0, 1 ), 63, Vector2( 0, 2 ), 438, Vector2( 0, 3 ), 219, Vector2( 0, 4 ), 56, Vector2( 0, 5 ), 146, Vector2( 0, 6 ), 144, Vector2( 0, 7 ), 18, Vector2( 0, 8 ), 48, Vector2( 0, 9 ), 24, Vector2( 0, 10 ), 16, Vector2( 0, 11 ), 432, Vector2( 0, 12 ), 216, Vector2( 0, 13 ), 54, Vector2( 0, 14 ), 27, Vector2( 1, 0 ), 440, Vector2( 1, 1 ), 59, Vector2( 1, 2 ), 182, Vector2( 1, 3 ), 218, Vector2( 1, 4 ), 56, Vector2( 1, 5 ), 146, Vector2( 1, 6 ), 144, Vector2( 1, 7 ), 18, Vector2( 1, 8 ), 48, Vector2( 1, 9 ), 24, Vector2( 1, 10 ), 16, Vector2( 1, 11 ), 432, Vector2( 1, 12 ), 216, Vector2( 1, 13 ), 54, Vector2( 1, 14 ), 27, Vector2( 2, 0 ), 248, Vector2( 2, 1 ), 62, Vector2( 2, 2 ), 434, Vector2( 2, 3 ), 155, Vector2( 2, 4 ), 56, Vector2( 2, 5 ), 146, Vector2( 2, 6 ), 144, Vector2( 2, 7 ), 18, Vector2( 2, 8 ), 48, Vector2( 2, 9 ), 24, Vector2( 2, 10 ), 16, Vector2( 2, 11 ), 176, Vector2( 2, 12 ), 152, Vector2( 2, 13 ), 50, Vector2( 2, 14 ), 26, Vector2( 3, 0 ), 184, Vector2( 3, 1 ), 58, Vector2( 3, 2 ), 178, Vector2( 3, 3 ), 154, Vector2( 3, 4 ), 56, Vector2( 3, 5 ), 146, Vector2( 3, 6 ), 144, Vector2( 3, 7 ), 18, Vector2( 3, 8 ), 48, Vector2( 3, 9 ), 24, Vector2( 3, 10 ), 16, Vector2( 3, 11 ), 176, Vector2( 3, 12 ), 152, Vector2( 3, 13 ), 50, Vector2( 3, 14 ), 26, Vector2( 4, 0 ), 255, Vector2( 4, 1 ), 507, Vector2( 4, 2 ), 447, Vector2( 4, 3 ), 510, Vector2( 4, 4 ), 251, Vector2( 4, 5 ), 506, Vector2( 4, 6 ), 446, Vector2( 4, 7 ), 191, Vector2( 4, 8 ), 250, Vector2( 4, 9 ), 442, Vector2( 4, 10 ), 190, Vector2( 4, 11 ), 187, Vector2( 4, 12 ), 186, Vector2( 4, 13 ), 443, Vector2( 4, 14 ), 254, Vector2( 5, 0 ), 511 ] +0/autotile/icon_coordinate = Vector2( 0, 0 ) +0/autotile/tile_size = Vector2( 8, 8 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape = SubResource( 1 ) +0/shape_one_way = false +0/shape_one_way_margin = 1.0 +0/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 1 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 2 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 3 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 4 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 5 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 6 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 7 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 8 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 9 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 10 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 11 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 12 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 13 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 14 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 15 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 16 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 17 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 18 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 19 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 20 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 5 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 21 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 5 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 22 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 5 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 23 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 5 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 24 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 6 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 25 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 7 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 26 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 6 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 27 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 6 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 28 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 6 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 29 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 7 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 30 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 7 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 31 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 7 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 32 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 8 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 33 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 8 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 34 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 8 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 35 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 8 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 36 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 9 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 37 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 9 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 38 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 10 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 39 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 10 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 40 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 10 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 41 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 10 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 42 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 9 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 43 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 9 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 44 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 11 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 45 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 11 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 46 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 11 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 47 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 11 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 48 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 12 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 49 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 12 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 50 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 12 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 51 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 12 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 52 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 13 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 53 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 13 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 54 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 13 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 55 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 13 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 56 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 4, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 57 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 14 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 58 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 14 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 59 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 14 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 60 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 14 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 61 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +0/z_index = 0 + +[node name="World" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource( 1 )] +position = Vector2( 120.764, 151.995 ) + +[node name="TileMap" type="TileMap" parent="."] +tile_set = SubResource( 62 ) +cell_size = Vector2( 8, 8 ) +format = 1 +tile_data = PoolIntArray( -393216, 0, 393218, -327680, 0, 327680, -327641, 0, 393216, -262144, 0, 327683, -262105, 0, 327683, -196608, 0, 327682, -196569, 0, 327681, -131072, 0, 327682, -131033, 0, 327681, -65536, 0, 327681, -65497, 0, 327682, 0, 0, 327683, 39, 0, 327680, 65536, 0, 327680, 65575, 0, 327681, 131072, 0, 327681, 131111, 0, 327682, 196608, 0, 327683, 196622, 0, 524291, 196623, 0, 262145, 196624, 0, 262145, 196625, 0, 589827, 196630, 0, 524289, 196631, 0, 262145, 196632, 0, 262145, 196633, 0, 589825, 196647, 0, 327682, 262144, 0, 131075, 262145, 0, 262145, 262146, 0, 3, 262147, 0, 262147, 262148, 0, 786434, 262152, 0, 720896, 262153, 0, 786432, 262183, 0, 327683, 327680, 0, 327681, 327682, 0, 327682, 327684, 0, 327682, 327688, 0, 131072, 327689, 0, 196608, 327708, 0, 524288, 327709, 0, 262146, 327710, 0, 262145, 327711, 0, 589825, 327719, 0, 327680, 393216, 0, 327680, 393218, 0, 327680, 393220, 0, 327683, 393224, 0, 131072, 393225, 0, 196608, 393255, 0, 327680, 458752, 0, 327682, 458754, 0, 327683, 458756, 0, 327683, 458760, 0, 131072, 458761, 0, 196608, 458791, 0, 327683, 524288, 0, 327681, 524290, 0, 851971, 524291, 0, 262144, 524292, 0, 196611, 524296, 0, 131072, 524297, 0, 196608, 524327, 0, 327682, 589824, 0, 327682, 589828, 0, 327683, 589832, 0, 131072, 589833, 0, 196608, 589857, 0, 524288, 589858, 0, 262147, 589859, 0, 589827, 589863, 0, 327683, 655360, 0, 327681, 655362, 0, 393217, 655364, 0, 327680, 655368, 0, 131072, 655369, 0, 196608, 655399, 0, 327680, 720896, 0, 327681, 720898, 0, 851970, 720899, 0, 262144, 720900, 0, 196611, 720904, 0, 131072, 720905, 0, 196608, 720935, 0, 327680, 786432, 0, 327681, 786436, 0, 327682, 786440, 0, 131072, 786441, 0, 196608, 786471, 0, 327683, 851968, 0, 327680, 851970, 0, 720898, 851971, 0, 262144, 851972, 0, 196611, 851976, 0, 131072, 851977, 0, 196608, 852001, 0, 524289, 852002, 0, 262147, 852003, 0, 262145, 852004, 0, 262146, 852005, 0, 262145, 852006, 0, 262146, 852007, 0, 196611, 917504, 0, 327681, 917506, 0, 327681, 917508, 0, 327682, 917512, 0, 131072, 917513, 0, 196608, 917543, 0, 327681, 983040, 0, 131075, 983041, 0, 262146, 983042, 0, 65539, 983043, 0, 262146, 983044, 0, 917506, 983048, 0, 851969, 983049, 0, 917504, 983079, 0, 327680, 1048576, 0, 327681, 1048602, 0, 524291, 1048603, 0, 262144, 1048604, 0, 262146, 1048605, 0, 262146, 1048606, 0, 589826, 1048615, 0, 327681, 1114112, 0, 327681, 1114151, 0, 327682, 1179648, 0, 327683, 1179687, 0, 327683, 1245184, 0, 327680, 1245223, 0, 327681, 1310720, 0, 131074, 1310721, 0, 0, 1310722, 0, 0, 1310723, 0, 0, 1310724, 0, 0, 1310725, 0, 0, 1310726, 0, 0, 1310727, 0, 0, 1310728, 0, 0, 1310729, 0, 0, 1310730, 0, 0, 1310731, 0, 0, 1310732, 0, 0, 1310733, 0, 0, 1310734, 0, 0, 1310735, 0, 0, 1310736, 0, 0, 1310737, 0, 0, 1310738, 0, 0, 1310739, 0, 0, 1310740, 0, 0, 1310741, 0, 0, 1310742, 0, 0, 1310743, 0, 0, 1310744, 0, 0, 1310745, 0, 0, 1310746, 0, 0, 1310747, 0, 0, 1310748, 0, 0, 1310749, 0, 0, 1310750, 0, 0, 1310751, 0, 0, 1310752, 0, 0, 1310753, 0, 0, 1310754, 0, 0, 1310755, 0, 0, 1310756, 0, 0, 1310757, 0, 0, 1310758, 0, 0, 1310759, 0, 196609, 1376256, 0, 131072, 1376257, 0, 5, 1376258, 0, 5, 1376259, 0, 5, 1376260, 0, 5, 1376261, 0, 5, 1376262, 0, 5, 1376263, 0, 5, 1376264, 0, 5, 1376265, 0, 5, 1376266, 0, 5, 1376267, 0, 5, 1376268, 0, 5, 1376269, 0, 5, 1376270, 0, 5, 1376271, 0, 5, 1376272, 0, 5, 1376273, 0, 5, 1376274, 0, 5, 1376275, 0, 5, 1376276, 0, 5, 1376277, 0, 5, 1376278, 0, 5, 1376279, 0, 5, 1376280, 0, 5, 1376281, 0, 5, 1376282, 0, 5, 1376283, 0, 5, 1376284, 0, 5, 1376285, 0, 5, 1376286, 0, 5, 1376287, 0, 5, 1376288, 0, 5, 1376289, 0, 5, 1376290, 0, 5, 1376291, 0, 5, 1376292, 0, 5, 1376293, 0, 5, 1376294, 0, 5, 1376295, 0, 196608, 1441792, 0, 851968, 1441793, 0, 65536, 1441794, 0, 65536, 1441795, 0, 65536, 1441796, 0, 65536, 1441797, 0, 65536, 1441798, 0, 65536, 1441799, 0, 65536, 1441800, 0, 65536, 1441801, 0, 65536, 1441802, 0, 65536, 1441803, 0, 65536, 1441804, 0, 65536, 1441805, 0, 65536, 1441806, 0, 65536, 1441807, 0, 65536, 1441808, 0, 65536, 1441809, 0, 65536, 1441810, 0, 65536, 1441811, 0, 65536, 1441812, 0, 65536, 1441813, 0, 65536, 1441814, 0, 65536, 1441815, 0, 65536, 1441816, 0, 65536, 1441817, 0, 65536, 1441818, 0, 65536, 1441819, 0, 65536, 1441820, 0, 65536, 1441821, 0, 65536, 1441822, 0, 65536, 1441823, 0, 65536, 1441824, 0, 65536, 1441825, 0, 65536, 1441826, 0, 65536, 1441827, 0, 65536, 1441828, 0, 65536, 1441829, 0, 65536, 1441830, 0, 65536, 1441831, 0, 917504 ) diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.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=true +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 +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..2246873 --- /dev/null +++ b/project.godot @@ -0,0 +1,52 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} + +[application] + +config/name="Platformer" +run/main_scene="res://TestLevel.tscn" +config/icon="res://icon.png" + +[display] + +window/size/width=320 +window/size/height=180 +window/size/test_width=1280 +window/size/test_height=720 +window/stretch/mode="2d" +window/stretch/aspect="keep" + +[input] + +player_right={ +"deadzone": 0.5, +"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":16777233,"unicode":0,"echo":false,"script":null) + ] +} +player_left={ +"deadzone": 0.5, +"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":16777231,"unicode":0,"echo":false,"script":null) + ] +} +player_jump={ +"deadzone": 0.5, +"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":67,"unicode":0,"echo":false,"script":null) + ] +} + +[rendering] + +quality/2d/use_pixel_snap=true +environment/default_environment="res://default_env.tres"