From 81441c42b79e38e54c2bc38acee3205f22431738 Mon Sep 17 00:00:00 2001 From: TestDotCom <25323975+TestDotCom@users.noreply.github.com> Date: Mon, 4 Mar 2019 12:12:08 +0100 Subject: [PATCH] 2d/platformer works flawlessly on Godot 3.1 beta 8 (#310) * 2d/platformer works flawlessly on Godot 3.1 beta 8 * fix warnings for inferred node type * every script has a class_name * formatted code for better clarity * each files has its own subfolder * As suggested by @akien-mga * states are back to const instead of enum * class_name comes after extends * better code style * PascalCase for nodes --- 2d/platformer/Stage.tscn | 276 +++++++++++++ 2d/platformer/{tileset.tres => TileSet.tres} | 0 .../{tileset_edit.tscn => TilesetEdit.tscn} | 0 2d/platformer/{ => audio}/music.ogg | Bin 2d/platformer/audio/music.ogg.import | 15 + 2d/platformer/{ => audio}/sound_coin.wav | Bin 2d/platformer/audio/sound_coin.wav.import | 21 + 2d/platformer/{ => audio}/sound_explode.wav | Bin 2d/platformer/audio/sound_explode.wav.import | 21 + 2d/platformer/{ => audio}/sound_hit.wav | Bin 2d/platformer/audio/sound_hit.wav.import | 21 + 2d/platformer/{ => audio}/sound_jump.wav | Bin 2d/platformer/audio/sound_jump.wav.import | 21 + 2d/platformer/{ => audio}/sound_shoot.wav | Bin 2d/platformer/audio/sound_shoot.wav.import | 21 + 2d/platformer/background/ParallaxBg.tscn | 76 ++++ .../{ => background}/scroll_bg_cloud_1.png | Bin .../scroll_bg_cloud_1.png.import | 14 +- .../{ => background}/scroll_bg_cloud_2.png | Bin .../scroll_bg_cloud_2.png.import | 14 +- .../{ => background}/scroll_bg_cloud_3.png | Bin .../scroll_bg_cloud_3.png.import | 14 +- .../{ => background}/scroll_bg_fg_1.png | Bin .../scroll_bg_fg_1.png.import | 14 +- .../{ => background}/scroll_bg_fg_2.png | Bin .../scroll_bg_fg_2.png.import | 14 +- .../{ => background}/scroll_bg_sky.png | Bin .../{ => background}/scroll_bg_sky.png.import | 14 +- 2d/platformer/bullet.tscn | 192 --------- 2d/platformer/coin.gd | 8 - 2d/platformer/{coin.tscn => coin/Coin.tscn} | 124 ++---- 2d/platformer/coin/coin.gd | 11 + 2d/platformer/{ => coin}/coin.png | Bin 2d/platformer/{ => coin}/coin.png.import | 14 +- .../{enemy.tscn => enemy/Enemy.tscn} | 173 ++------ 2d/platformer/{ => enemy}/enemy.gd | 27 +- 2d/platformer/{ => enemy}/enemy.png | Bin 2d/platformer/{ => enemy}/enemy.png.import | 14 +- 2d/platformer/icon.png.import | 8 +- 2d/platformer/moving_platform.tscn | 28 -- 2d/platformer/music.ogg.import | 18 - 2d/platformer/one_way_platform.tscn | 30 -- 2d/platformer/osb_right.png.import | 32 -- 2d/platformer/parallax_bg.tscn | 105 ----- 2d/platformer/platform/MovingPlatform.tscn | 16 + 2d/platformer/platform/OneWayPlatform.tscn | 17 + .../{ => platform}/moving_platform.gd | 8 +- .../{ => platform}/moving_platform.png | Bin .../{ => platform}/moving_platform.png.import | 14 +- .../{ => platform}/one_way_platform.png | Bin .../one_way_platform.png.import | 14 +- 2d/platformer/player/Bullet.tscn | 95 +++++ .../{player.tscn => player/Player.tscn} | 165 ++------ 2d/platformer/{ => player}/bullet.gd | 7 +- 2d/platformer/{ => player}/bullet.png | Bin 2d/platformer/{ => player}/bullet.png.import | 14 +- 2d/platformer/{ => player}/osb_fire.png | Bin .../osb_fire.png.import} | 14 +- 2d/platformer/{ => player}/osb_jump.png | Bin .../{ => player}/osb_jump.png.import | 14 +- 2d/platformer/{ => player}/osb_left.png | Bin 2d/platformer/player/osb_left.png.import | 34 ++ 2d/platformer/{ => player}/osb_right.png | Bin .../osb_right.png.import} | 14 +- 2d/platformer/{ => player}/player.gd | 19 +- 2d/platformer/{ => player}/robot_demo.png | Bin 2d/platformer/player/robot_demo.png.import | 34 ++ 2d/platformer/project.godot | 81 +++- 2d/platformer/robot_demo.png.import | 32 -- 2d/platformer/sound_coin.wav.import | 24 -- 2d/platformer/sound_explode.wav.import | 24 -- 2d/platformer/sound_hit.wav.import | 24 -- 2d/platformer/sound_jump.wav.import | 24 -- 2d/platformer/sound_shoot.wav.import | 24 -- 2d/platformer/stage.tscn | 376 ------------------ 2d/platformer/tiles_demo.png.import | 8 +- 76 files changed, 1010 insertions(+), 1426 deletions(-) create mode 100644 2d/platformer/Stage.tscn rename 2d/platformer/{tileset.tres => TileSet.tres} (100%) rename 2d/platformer/{tileset_edit.tscn => TilesetEdit.tscn} (100%) rename 2d/platformer/{ => audio}/music.ogg (100%) create mode 100644 2d/platformer/audio/music.ogg.import rename 2d/platformer/{ => audio}/sound_coin.wav (100%) create mode 100644 2d/platformer/audio/sound_coin.wav.import rename 2d/platformer/{ => audio}/sound_explode.wav (100%) create mode 100644 2d/platformer/audio/sound_explode.wav.import rename 2d/platformer/{ => audio}/sound_hit.wav (100%) create mode 100644 2d/platformer/audio/sound_hit.wav.import rename 2d/platformer/{ => audio}/sound_jump.wav (100%) create mode 100644 2d/platformer/audio/sound_jump.wav.import rename 2d/platformer/{ => audio}/sound_shoot.wav (100%) create mode 100644 2d/platformer/audio/sound_shoot.wav.import create mode 100644 2d/platformer/background/ParallaxBg.tscn rename 2d/platformer/{ => background}/scroll_bg_cloud_1.png (100%) rename 2d/platformer/{ => background}/scroll_bg_cloud_1.png.import (55%) rename 2d/platformer/{ => background}/scroll_bg_cloud_2.png (100%) rename 2d/platformer/{ => background}/scroll_bg_cloud_2.png.import (55%) rename 2d/platformer/{ => background}/scroll_bg_cloud_3.png (100%) rename 2d/platformer/{ => background}/scroll_bg_cloud_3.png.import (55%) rename 2d/platformer/{ => background}/scroll_bg_fg_1.png (100%) rename 2d/platformer/{ => background}/scroll_bg_fg_1.png.import (56%) rename 2d/platformer/{ => background}/scroll_bg_fg_2.png (100%) rename 2d/platformer/{ => background}/scroll_bg_fg_2.png.import (56%) rename 2d/platformer/{ => background}/scroll_bg_sky.png (100%) rename 2d/platformer/{ => background}/scroll_bg_sky.png.import (56%) delete mode 100644 2d/platformer/bullet.tscn delete mode 100644 2d/platformer/coin.gd rename 2d/platformer/{coin.tscn => coin/Coin.tscn} (52%) create mode 100644 2d/platformer/coin/coin.gd rename 2d/platformer/{ => coin}/coin.png (100%) rename 2d/platformer/{ => coin}/coin.png.import (59%) rename 2d/platformer/{enemy.tscn => enemy/Enemy.tscn} (52%) rename 2d/platformer/{ => enemy}/enemy.gd (56%) rename 2d/platformer/{ => enemy}/enemy.png (100%) rename 2d/platformer/{ => enemy}/enemy.png.import (59%) delete mode 100644 2d/platformer/moving_platform.tscn delete mode 100644 2d/platformer/music.ogg.import delete mode 100644 2d/platformer/one_way_platform.tscn delete mode 100644 2d/platformer/osb_right.png.import delete mode 100644 2d/platformer/parallax_bg.tscn create mode 100644 2d/platformer/platform/MovingPlatform.tscn create mode 100644 2d/platformer/platform/OneWayPlatform.tscn rename 2d/platformer/{ => platform}/moving_platform.gd (72%) rename 2d/platformer/{ => platform}/moving_platform.png (100%) rename 2d/platformer/{ => platform}/moving_platform.png.import (56%) rename 2d/platformer/{ => platform}/one_way_platform.png (100%) rename 2d/platformer/{ => platform}/one_way_platform.png.import (56%) create mode 100644 2d/platformer/player/Bullet.tscn rename 2d/platformer/{player.tscn => player/Player.tscn} (61%) rename 2d/platformer/{ => player}/bullet.gd (53%) rename 2d/platformer/{ => player}/bullet.png (100%) rename 2d/platformer/{ => player}/bullet.png.import (59%) rename 2d/platformer/{ => player}/osb_fire.png (100%) rename 2d/platformer/{osb_left.png.import => player/osb_fire.png.import} (59%) rename 2d/platformer/{ => player}/osb_jump.png (100%) rename 2d/platformer/{ => player}/osb_jump.png.import (58%) rename 2d/platformer/{ => player}/osb_left.png (100%) create mode 100644 2d/platformer/player/osb_left.png.import rename 2d/platformer/{ => player}/osb_right.png (100%) rename 2d/platformer/{osb_fire.png.import => player/osb_right.png.import} (57%) rename 2d/platformer/{ => player}/player.gd (85%) rename 2d/platformer/{ => player}/robot_demo.png (100%) create mode 100644 2d/platformer/player/robot_demo.png.import delete mode 100644 2d/platformer/robot_demo.png.import delete mode 100644 2d/platformer/sound_coin.wav.import delete mode 100644 2d/platformer/sound_explode.wav.import delete mode 100644 2d/platformer/sound_hit.wav.import delete mode 100644 2d/platformer/sound_jump.wav.import delete mode 100644 2d/platformer/sound_shoot.wav.import delete mode 100644 2d/platformer/stage.tscn diff --git a/2d/platformer/Stage.tscn b/2d/platformer/Stage.tscn new file mode 100644 index 00000000..c8253d31 --- /dev/null +++ b/2d/platformer/Stage.tscn @@ -0,0 +1,276 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://TileSet.tres" type="TileSet" id=1] +[ext_resource path="res://coin/Coin.tscn" type="PackedScene" id=2] +[ext_resource path="res://platform/MovingPlatform.tscn" type="PackedScene" id=3] +[ext_resource path="res://platform/OneWayPlatform.tscn" type="PackedScene" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://enemy/Enemy.tscn" type="PackedScene" id=6] +[ext_resource path="res://background/ParallaxBg.tscn" type="PackedScene" id=7] +[ext_resource path="res://audio/music.ogg" type="AudioStream" id=8] + + + + + + + + +[node name="Stage" type="Node"] + +[node name="TileMap" type="TileMap" parent="."] +tile_set = ExtResource( 1 ) +cell_quadrant_size = 8 +format = 1 +tile_data = PoolIntArray( 0, 2, 0, 65536, 2, 0, 131072, 2, 0, 196608, 2, 0, 196626, 9, 0, 262144, 2, 0, 262162, 8, 0, 327680, 2, 0, 327697, 536870921, 0, 327698, 7, 0, 393216, 2, 0, 393234, 7, 0, 393276, 536870914, 0, 393277, 536870922, 0, 393278, 536870922, 0, 393279, 536870922, 0, 393280, 536870922, 0, 393281, 536870922, 0, 393282, 536870922, 0, 393283, 536870922, 0, 393284, 536870922, 0, 393285, 536870922, 0, 458752, 2, 0, 458770, 8, 0, 458812, 536870914, 0, 458813, 536870922, 0, 458814, 536870922, 0, 458815, 536870922, 0, 458816, 536870922, 0, 458817, 536870922, 0, 458818, 536870922, 0, 458819, 536870922, 0, 458820, 536870922, 0, 458821, 536870922, 0, 524288, 4, 0, 524289, 1, 0, 524348, 536870914, 0, 524349, 536870922, 0, 524350, 536870922, 0, 524351, 536870922, 0, 524352, 536870922, 0, 524353, 536870922, 0, 524354, 536870922, 0, 524355, 536870922, 0, 524356, 536870922, 0, 524357, 536870922, 0, 589824, 10, 0, 589825, 13, 0, 589860, 536870914, 0, 589861, 10, 0, 589862, 10, 0, 589863, 10, 0, 589864, 10, 0, 589865, 10, 0, 589866, 10, 0, 589867, 10, 0, 589868, 10, 0, 589869, 2, 0, 589884, 536870914, 0, 589885, 536870922, 0, 589886, 536870922, 0, 589887, 536870922, 0, 589888, 536870922, 0, 589889, 536870922, 0, 589890, 536870922, 0, 589891, 536870922, 0, 589892, 536870922, 0, 589893, 536870922, 0, 655360, 2, 0, 655396, 536870914, 0, 655397, 10, 0, 655398, 10, 0, 655399, 10, 0, 655400, 10, 0, 655401, 10, 0, 655402, 10, 0, 655403, 10, 0, 655404, 10, 0, 655405, 2, 0, 655420, 536870914, 0, 655421, 536870922, 0, 655422, 536870922, 0, 655423, 536870922, 0, 655424, 536870922, 0, 655425, 536870922, 0, 655426, 536870922, 0, 655427, 536870922, 0, 655428, 536870922, 0, 655429, 536870922, 0, 720896, 2, 0, 720932, 536870914, 0, 720933, 10, 0, 720934, 10, 0, 720935, 10, 0, 720936, 10, 0, 720937, 10, 0, 720938, 10, 0, 720939, 10, 0, 720940, 10, 0, 720941, 2, 0, 720956, 536870914, 0, 720957, 536870922, 0, 720958, 536870922, 0, 720959, 536870922, 0, 720960, 536870922, 0, 720961, 536870922, 0, 720962, 536870922, 0, 720963, 536870922, 0, 720964, 536870922, 0, 720965, 536870922, 0, 786432, 2, 0, 786437, 9, 0, 786468, 536870914, 0, 786469, 10, 0, 786470, 10, 0, 786471, 10, 0, 786472, 10, 0, 786473, 10, 0, 786474, 10, 0, 786475, 10, 0, 786476, 10, 0, 786477, 2, 0, 786492, 536870914, 0, 786493, 536870922, 0, 786494, 536870922, 0, 786495, 536870922, 0, 786496, 536870922, 0, 786497, 536870922, 0, 786498, 536870922, 0, 786499, 536870922, 0, 786500, 536870922, 0, 786501, 536870922, 0, 851968, 2, 0, 851973, 7, 0, 852004, 536870914, 0, 852005, 10, 0, 852006, 10, 0, 852007, 10, 0, 852008, 10, 0, 852009, 10, 0, 852010, 10, 0, 852011, 10, 0, 852012, 10, 0, 852013, 2, 0, 852028, 536870914, 0, 852029, 536870922, 0, 852030, 536870922, 0, 852031, 536870922, 0, 852032, 536870922, 0, 852033, 536870922, 0, 852034, 536870922, 0, 852035, 536870922, 0, 852036, 536870922, 0, 852037, 536870922, 0, 917504, 2, 0, 917506, 9, 0, 917509, 7, 0, 917512, 536870921, 0, 917540, 536870914, 0, 917541, 10, 0, 917542, 10, 0, 917543, 10, 0, 917544, 10, 0, 917545, 10, 0, 917546, 10, 0, 917547, 10, 0, 917548, 10, 0, 917549, 2, 0, 917564, 536870914, 0, 917565, 536870922, 0, 917566, 536870922, 0, 917567, 536870922, 0, 917568, 536870922, 0, 917569, 536870922, 0, 917570, 536870922, 0, 917571, 536870922, 0, 917572, 536870922, 0, 917573, 536870922, 0, 983040, 2, 0, 983042, 7, 0, 983045, 7, 0, 983048, 536870920, 0, 983076, 536870914, 0, 983077, 10, 0, 983078, 10, 0, 983079, 10, 0, 983080, 10, 0, 983081, 10, 0, 983082, 10, 0, 983083, 10, 0, 983084, 10, 0, 983085, 2, 0, 983100, 536870914, 0, 983101, 536870922, 0, 983102, 536870922, 0, 983103, 536870922, 0, 983104, 536870922, 0, 983105, 536870922, 0, 983106, 536870922, 0, 983107, 536870922, 0, 983108, 536870922, 0, 983109, 536870922, 0, 1048576, 2, 0, 1048578, 8, 0, 1048581, 8, 0, 1048584, 536870919, 0, 1048612, 536870914, 0, 1048613, 10, 0, 1048614, 10, 0, 1048615, 10, 0, 1048616, 10, 0, 1048617, 10, 0, 1048618, 10, 0, 1048619, 10, 0, 1048620, 10, 0, 1048621, 2, 0, 1048636, 536870914, 0, 1048637, 536870922, 0, 1048638, 536870922, 0, 1048639, 536870922, 0, 1048640, 536870922, 0, 1048641, 536870922, 0, 1048642, 536870922, 0, 1048643, 536870922, 0, 1048644, 536870922, 0, 1048645, 536870922, 0, 1114112, 4, 0, 1114113, 0, 0, 1114114, 6, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 6, 0, 1114118, 1, 0, 1114120, 536870919, 0, 1114127, 536870913, 0, 1114128, 0, 0, 1114129, 15, 0, 1114139, 536870927, 0, 1114140, 0, 0, 1114141, 536870912, 0, 1114142, 536870912, 0, 1114143, 536870912, 0, 1114144, 15, 0, 1114148, 536870925, 0, 1114149, 536870923, 0, 1114150, 536870923, 0, 1114151, 536870923, 0, 1114152, 536870923, 0, 1114153, 536870923, 0, 1114154, 536870923, 0, 1114155, 536870923, 0, 1114156, 536870923, 0, 1114157, 13, 0, 1114172, 536870914, 0, 1114173, 536870922, 0, 1114174, 536870922, 0, 1114175, 536870922, 0, 1114176, 536870922, 0, 1114177, 536870922, 0, 1114178, 536870922, 0, 1114179, 536870922, 0, 1114180, 536870922, 0, 1114181, 536870922, 0, 1179648, 10, 0, 1179649, 10, 0, 1179650, 10, 0, 1179651, 10, 0, 1179652, 10, 0, 1179653, 10, 0, 1179654, 2, 0, 1179656, 536870919, 0, 1179663, 536870914, 0, 1179664, 2, 0, 1179676, 536870914, 0, 1179677, 536870922, 0, 1179678, 536870922, 0, 1179679, 2, 0, 1179700, 536870913, 0, 1179701, 536870912, 0, 1179702, 536870912, 0, 1179703, 536870912, 0, 1179704, 536870912, 0, 1179705, 536870912, 0, 1179706, 536870912, 0, 1179707, 536870912, 0, 1179708, 536870916, 0, 1179709, 536870922, 0, 1179710, 536870922, 0, 1179711, 536870922, 0, 1179712, 536870922, 0, 1179713, 536870922, 0, 1179714, 536870922, 0, 1179715, 536870922, 0, 1179716, 536870922, 0, 1179717, 536870922, 0, 1245184, 10, 0, 1245185, 10, 0, 1245186, 10, 0, 1245187, 10, 0, 1245188, 10, 0, 1245189, 10, 0, 1245190, 4, 0, 1245191, 1, 0, 1245192, 536870919, 0, 1245199, 536870914, 0, 1245200, 2, 0, 1245212, 536870914, 0, 1245213, 536870922, 0, 1245214, 536870922, 0, 1245215, 2, 0, 1245236, 536870914, 0, 1245237, 536870922, 0, 1245238, 536870922, 0, 1245239, 536870922, 0, 1245240, 536870922, 0, 1245241, 536870922, 0, 1245242, 536870922, 0, 1245243, 536870922, 0, 1245244, 536870922, 0, 1245245, 536870922, 0, 1245246, 536870922, 0, 1245247, 536870922, 0, 1245248, 536870922, 0, 1245249, 536870922, 0, 1245250, 536870922, 0, 1245251, 536870922, 0, 1245252, 536870922, 0, 1245253, 536870922, 0, 1310720, 10, 0, 1310721, 10, 0, 1310722, 10, 0, 1310723, 10, 0, 1310724, 10, 0, 1310725, 10, 0, 1310726, 10, 0, 1310727, 4, 0, 1310728, 6, 0, 1310729, 1, 0, 1310735, 536870914, 0, 1310736, 2, 0, 1310748, 536870914, 0, 1310749, 536870922, 0, 1310750, 536870922, 0, 1310751, 2, 0, 1310772, 536870914, 0, 1310773, 536870922, 0, 1310774, 536870922, 0, 1310775, 536870922, 0, 1310776, 536870922, 0, 1310777, 536870922, 0, 1310778, 536870922, 0, 1310779, 536870922, 0, 1310780, 536870922, 0, 1310781, 536870922, 0, 1310782, 536870922, 0, 1310783, 536870922, 0, 1310784, 536870922, 0, 1310785, 536870922, 0, 1310786, 536870922, 0, 1310787, 536870922, 0, 1310788, 536870922, 0, 1310789, 536870922, 0, 1376256, 10, 0, 1376257, 10, 0, 1376258, 10, 0, 1376259, 10, 0, 1376260, 10, 0, 1376261, 10, 0, 1376262, 10, 0, 1376263, 10, 0, 1376264, 10, 0, 1376265, 4, 0, 1376266, 0, 0, 1376267, 0, 0, 1376268, 0, 0, 1376269, 0, 0, 1376270, 0, 0, 1376271, 536870916, 0, 1376272, 2, 0, 1376284, 536870914, 0, 1376285, 536870922, 0, 1376286, 536870922, 0, 1376287, 2, 0, 1376308, 536870914, 0, 1376309, 536870922, 0, 1376310, 536870922, 0, 1376311, 536870922, 0, 1376312, 536870922, 0, 1376313, 536870922, 0, 1376314, 536870922, 0, 1376315, 536870922, 0, 1376316, 536870922, 0, 1376317, 536870922, 0, 1376318, 536870922, 0, 1376319, 536870922, 0, 1376320, 536870922, 0, 1376321, 536870922, 0, 1376322, 536870922, 0, 1376323, 536870922, 0, 1376324, 536870922, 0, 1376325, 536870922, 0, 1441792, 10, 0, 1441793, 10, 0, 1441794, 10, 0, 1441795, 10, 0, 1441796, 10, 0, 1441797, 10, 0, 1441798, 10, 0, 1441799, 10, 0, 1441800, 10, 0, 1441801, 10, 0, 1441802, 10, 0, 1441803, 10, 0, 1441804, 10, 0, 1441805, 10, 0, 1441806, 10, 0, 1441807, 10, 0, 1441808, 2, 0, 1441820, 536870914, 0, 1441821, 536870922, 0, 1441822, 536870922, 0, 1441823, 2, 0, 1441844, 536870914, 0, 1441845, 536870922, 0, 1441846, 536870922, 0, 1441847, 536870922, 0, 1441848, 536870922, 0, 1441849, 536870922, 0, 1441850, 536870922, 0, 1441851, 536870922, 0, 1441852, 536870922, 0, 1441853, 536870922, 0, 1441854, 536870922, 0, 1441855, 536870922, 0, 1441856, 536870922, 0, 1441857, 536870922, 0, 1441858, 536870922, 0, 1441859, 536870922, 0, 1441860, 536870922, 0, 1441861, 536870922, 0, 1507328, 10, 0, 1507329, 10, 0, 1507330, 10, 0, 1507331, 10, 0, 1507332, 10, 0, 1507333, 10, 0, 1507334, 10, 0, 1507335, 10, 0, 1507336, 10, 0, 1507337, 10, 0, 1507338, 10, 0, 1507339, 10, 0, 1507340, 10, 0, 1507341, 10, 0, 1507342, 10, 0, 1507343, 10, 0, 1507344, 2, 0, 1507356, 536870914, 0, 1507357, 536870922, 0, 1507358, 536870922, 0, 1507359, 4, 0, 1507360, 0, 0, 1507361, 0, 0, 1507362, 0, 0, 1507363, 0, 0, 1507364, 0, 0, 1507365, 0, 0, 1507366, 12, 0, 1507380, 536870914, 0, 1507381, 536870922, 0, 1507382, 536870922, 0, 1507383, 536870922, 0, 1507384, 536870922, 0, 1507385, 536870922, 0, 1507386, 536870922, 0, 1507387, 536870922, 0, 1507388, 536870922, 0, 1507389, 536870922, 0, 1507390, 536870922, 0, 1507391, 536870922, 0, 1507392, 536870922, 0, 1507393, 536870922, 0, 1507394, 536870922, 0, 1507395, 536870922, 0, 1507396, 536870922, 0, 1507397, 536870922, 0, 1572864, 10, 0, 1572865, 10, 0, 1572866, 10, 0, 1572867, 10, 0, 1572868, 10, 0, 1572869, 10, 0, 1572870, 10, 0, 1572871, 10, 0, 1572872, 10, 0, 1572873, 10, 0, 1572874, 10, 0, 1572875, 10, 0, 1572876, 10, 0, 1572877, 10, 0, 1572878, 10, 0, 1572879, 10, 0, 1572880, 2, 0, 1572892, 536870914, 0, 1572893, 536870922, 0, 1572894, 536870922, 0, 1572895, 536870922, 0, 1572896, 536870922, 0, 1572897, 536870922, 0, 1572898, 536870922, 0, 1572899, 536870922, 0, 1572900, 536870922, 0, 1572901, 536870922, 0, 1572903, 12, 0, 1572916, 536870914, 0, 1572917, 536870922, 0, 1572918, 536870922, 0, 1572919, 536870922, 0, 1572920, 536870922, 0, 1572921, 536870922, 0, 1572922, 536870922, 0, 1572923, 536870922, 0, 1572924, 536870922, 0, 1572925, 536870922, 0, 1572926, 536870922, 0, 1572927, 536870922, 0, 1572928, 536870922, 0, 1572929, 536870922, 0, 1572930, 536870922, 0, 1572931, 536870922, 0, 1572932, 536870922, 0, 1572933, 536870922, 0, 1638400, 10, 0, 1638401, 10, 0, 1638402, 10, 0, 1638403, 10, 0, 1638404, 10, 0, 1638405, 10, 0, 1638406, 10, 0, 1638407, 10, 0, 1638408, 10, 0, 1638409, 10, 0, 1638410, 10, 0, 1638411, 10, 0, 1638412, 10, 0, 1638413, 10, 0, 1638414, 10, 0, 1638415, 10, 0, 1638416, 2, 0, 1638428, 536870914, 0, 1638429, 536870922, 0, 1638430, 536870922, 0, 1638431, 536870922, 0, 1638432, 536870922, 0, 1638433, 536870922, 0, 1638434, 536870922, 0, 1638435, 536870922, 0, 1638436, 536870922, 0, 1638437, 536870922, 0, 1638438, 536870922, 0, 1638440, 12, 0, 1638452, 536870914, 0, 1638453, 536870922, 0, 1638454, 536870922, 0, 1638455, 536870922, 0, 1638456, 536870922, 0, 1638457, 536870922, 0, 1638458, 536870922, 0, 1638459, 536870922, 0, 1638460, 536870922, 0, 1638461, 536870922, 0, 1638462, 536870922, 0, 1638463, 536870922, 0, 1638464, 536870922, 0, 1638465, 536870922, 0, 1638466, 536870922, 0, 1638467, 536870922, 0, 1638468, 536870922, 0, 1638469, 536870922, 0, 1703964, 536870914, 0, 1703965, 536870922, 0, 1703966, 536870922, 0, 1703967, 536870922, 0, 1703968, 536870922, 0, 1703969, 536870922, 0, 1703970, 536870922, 0, 1703971, 536870922, 0, 1703972, 536870922, 0, 1703973, 536870922, 0, 1703974, 536870922, 0, 1703975, 536870922, 0, 1703977, 12, 0, 1703988, 536870914, 0, 1703989, 536870922, 0, 1703990, 536870922, 0, 1703991, 536870922, 0, 1703992, 536870922, 0, 1703993, 536870922, 0, 1703994, 536870922, 0, 1703995, 536870922, 0, 1703996, 536870922, 0, 1703997, 536870922, 0, 1703998, 536870922, 0, 1703999, 536870922, 0, 1704000, 536870922, 0, 1704001, 536870922, 0, 1704002, 536870922, 0, 1704003, 536870922, 0, 1704004, 536870922, 0, 1704005, 536870922, 0, 1769500, 536870914, 0, 1769501, 536870922, 0, 1769502, 536870922, 0, 1769503, 536870922, 0, 1769504, 536870922, 0, 1769505, 536870922, 0, 1769506, 536870922, 0, 1769507, 536870922, 0, 1769508, 536870922, 0, 1769509, 536870922, 0, 1769510, 536870922, 0, 1769511, 536870922, 0, 1769512, 536870922, 0, 1769514, 12, 0, 1769524, 536870914, 0, 1769525, 536870922, 0, 1769526, 536870922, 0, 1769527, 536870922, 0, 1769528, 536870922, 0, 1769529, 536870922, 0, 1769530, 536870922, 0, 1769531, 536870922, 0, 1769532, 536870922, 0, 1769533, 536870922, 0, 1769534, 536870922, 0, 1769535, 536870922, 0, 1769536, 536870922, 0, 1769537, 536870922, 0, 1769538, 536870922, 0, 1769539, 536870922, 0, 1769540, 536870922, 0, 1769541, 536870922, 0, 1835036, 536870914, 0, 1835037, 536870922, 0, 1835038, 536870922, 0, 1835039, 536870922, 0, 1835040, 536870922, 0, 1835041, 536870922, 0, 1835042, 536870922, 0, 1835043, 536870922, 0, 1835044, 536870922, 0, 1835045, 536870922, 0, 1835046, 536870922, 0, 1835047, 536870922, 0, 1835048, 536870922, 0, 1835049, 536870922, 0, 1835051, 12, 0, 1835060, 536870914, 0, 1835061, 536870922, 0, 1835062, 536870922, 0, 1835063, 536870922, 0, 1835064, 536870922, 0, 1835065, 536870922, 0, 1835066, 536870922, 0, 1835067, 536870922, 0, 1835068, 536870922, 0, 1835069, 536870922, 0, 1835070, 536870922, 0, 1835071, 536870922, 0, 1835072, 536870922, 0, 1835073, 536870922, 0, 1835074, 536870922, 0, 1835075, 536870922, 0, 1835076, 536870922, 0, 1835077, 536870922, 0, 1900572, 536870914, 0, 1900573, 536870922, 0, 1900574, 536870922, 0, 1900575, 536870922, 0, 1900576, 536870922, 0, 1900577, 536870922, 0, 1900578, 536870922, 0, 1900579, 536870922, 0, 1900580, 536870922, 0, 1900581, 536870922, 0, 1900582, 536870922, 0, 1900583, 536870922, 0, 1900584, 536870922, 0, 1900585, 536870922, 0, 1900586, 536870922, 0, 1900588, 0, 0, 1900589, 0, 0, 1900590, 0, 0, 1900591, 0, 0, 1900592, 0, 0, 1900593, 0, 0, 1900594, 0, 0, 1900595, 0, 0, 1900596, 536870916, 0, 1900597, 536870922, 0, 1900598, 536870922, 0, 1900599, 536870922, 0, 1900600, 536870922, 0, 1900601, 536870922, 0, 1900602, 536870922, 0, 1900603, 536870922, 0, 1900604, 536870922, 0, 1900605, 536870922, 0, 1900606, 536870922, 0, 1900607, 536870922, 0, 1900608, 536870922, 0, 1900609, 536870922, 0, 1900610, 536870922, 0, 1900611, 536870922, 0, 1900612, 536870922, 0, 1900613, 536870922, 0, 1966108, 536870914, 0, 1966109, 536870922, 0, 1966110, 536870922, 0, 1966111, 536870922, 0, 1966112, 536870922, 0, 1966113, 536870922, 0, 1966114, 536870922, 0, 1966115, 536870922, 0, 1966116, 536870922, 0, 1966117, 536870922, 0, 1966118, 536870922, 0, 1966119, 536870922, 0, 1966120, 536870922, 0, 1966121, 536870922, 0, 1966122, 536870922, 0, 1966123, 536870922, 0, 1966124, 536870922, 0, 1966125, 536870922, 0, 1966126, 536870922, 0, 1966127, 536870922, 0, 1966128, 536870922, 0, 1966129, 536870922, 0, 1966130, 536870922, 0, 1966131, 536870922, 0, 1966132, 536870922, 0, 1966133, 536870922, 0, 1966134, 536870922, 0, 1966135, 536870922, 0, 1966136, 536870922, 0, 1966137, 536870922, 0, 1966138, 536870922, 0, 1966139, 536870922, 0, 1966140, 536870922, 0, 1966141, 536870922, 0, 1966142, 536870922, 0, 1966143, 536870922, 0, 1966144, 536870922, 0, 1966145, 536870922, 0, 1966146, 536870922, 0, 1966147, 536870922, 0, 1966148, 536870922, 0, 1966149, 536870922, 0, 2031644, 536870914, 0, 2031645, 536870922, 0, 2031646, 536870922, 0, 2031647, 536870922, 0, 2031648, 536870922, 0, 2031649, 536870922, 0, 2031650, 536870922, 0, 2031651, 536870922, 0, 2031652, 536870922, 0, 2031653, 536870922, 0, 2031654, 536870922, 0, 2031655, 536870922, 0, 2031656, 536870922, 0, 2031657, 536870922, 0, 2031658, 536870922, 0, 2031659, 536870922, 0, 2031660, 536870922, 0, 2031661, 536870922, 0, 2031662, 536870922, 0, 2031663, 536870922, 0, 2031664, 536870922, 0, 2031665, 536870922, 0, 2031666, 536870922, 0, 2031667, 536870922, 0, 2031668, 536870922, 0, 2031669, 536870922, 0, 2031670, 536870922, 0, 2031671, 536870922, 0, 2031672, 536870922, 0, 2031673, 536870922, 0, 2031674, 536870922, 0, 2031675, 536870922, 0, 2031676, 536870922, 0, 2031677, 536870922, 0, 2031678, 536870922, 0, 2031679, 536870922, 0, 2031680, 536870922, 0, 2031681, 536870922, 0, 2031682, 536870922, 0, 2031683, 536870922, 0, 2031684, 536870922, 0, 2031685, 536870922, 0, 2097180, 536870914, 0, 2097181, 536870922, 0, 2097182, 536870922, 0, 2097183, 536870922, 0, 2097184, 536870922, 0, 2097185, 536870922, 0, 2097186, 536870922, 0, 2097187, 536870922, 0, 2097188, 536870922, 0, 2097189, 536870922, 0, 2097190, 536870922, 0, 2097191, 536870922, 0, 2097192, 536870922, 0, 2097193, 536870922, 0, 2097194, 536870922, 0, 2097195, 536870922, 0, 2097196, 536870922, 0, 2097197, 536870922, 0, 2097198, 536870922, 0, 2097199, 536870922, 0, 2097200, 536870922, 0, 2097201, 536870922, 0, 2097202, 536870922, 0, 2097203, 536870922, 0, 2097204, 536870922, 0, 2097205, 536870922, 0, 2097206, 536870922, 0, 2097207, 536870922, 0, 2097208, 536870922, 0, 2097209, 536870922, 0, 2097210, 536870922, 0, 2097211, 536870922, 0, 2097212, 536870922, 0, 2097213, 536870922, 0, 2097214, 536870922, 0, 2097215, 536870922, 0, 2097216, 536870922, 0, 2097217, 536870922, 0, 2097218, 536870922, 0, 2097219, 536870922, 0, 2097220, 536870922, 0, 2097221, 536870922, 0, 2162716, 536870914, 0, 2162717, 536870922, 0, 2162718, 536870922, 0, 2162719, 536870922, 0, 2162720, 536870922, 0, 2162721, 536870922, 0, 2162722, 536870922, 0, 2162723, 536870922, 0, 2162724, 536870922, 0, 2162725, 536870922, 0, 2162726, 536870922, 0, 2162727, 536870922, 0, 2162728, 536870922, 0, 2162729, 536870922, 0, 2162730, 536870922, 0, 2162731, 536870922, 0, 2162732, 536870922, 0, 2162733, 536870922, 0, 2162734, 536870922, 0, 2162735, 536870922, 0, 2162736, 536870922, 0, 2162737, 536870922, 0, 2162738, 536870922, 0, 2162739, 536870922, 0, 2162740, 536870922, 0, 2162741, 536870922, 0, 2162742, 536870922, 0, 2162743, 536870922, 0, 2162744, 536870922, 0, 2162745, 536870922, 0, 2162746, 536870922, 0, 2162747, 536870922, 0, 2162748, 536870922, 0, 2162749, 536870922, 0, 2162750, 536870922, 0, 2162751, 536870922, 0, 2162752, 536870922, 0, 2162753, 536870922, 0, 2162754, 536870922, 0, 2162755, 536870922, 0, 2162756, 536870922, 0, 2162757, 536870922, 0, 2228252, 536870914, 0, 2228253, 536870922, 0, 2228254, 536870922, 0, 2228255, 536870922, 0, 2228256, 536870922, 0, 2228257, 536870922, 0, 2228258, 536870922, 0, 2228259, 536870922, 0, 2228260, 536870922, 0, 2228261, 536870922, 0, 2228262, 536870922, 0, 2228263, 536870922, 0, 2228264, 536870922, 0, 2228265, 536870922, 0, 2228266, 536870922, 0, 2228267, 536870922, 0, 2228268, 536870922, 0, 2228269, 536870922, 0, 2228270, 536870922, 0, 2228271, 536870922, 0, 2228272, 536870922, 0, 2228273, 536870922, 0, 2228274, 536870922, 0, 2228275, 536870922, 0, 2228276, 536870922, 0, 2228277, 536870922, 0, 2228278, 536870922, 0, 2228279, 536870922, 0, 2228280, 536870922, 0, 2228281, 536870922, 0, 2228282, 536870922, 0, 2228283, 536870922, 0, 2228284, 536870922, 0, 2228285, 536870922, 0, 2228286, 536870922, 0, 2228287, 536870922, 0, 2228288, 536870922, 0, 2228289, 536870922, 0, 2228290, 536870922, 0, 2228291, 536870922, 0, 2228292, 536870922, 0, 2228293, 536870922, 0, 2293788, 536870914, 0, 2293789, 536870922, 0, 2293790, 536870922, 0, 2293791, 536870922, 0, 2293792, 536870922, 0, 2293793, 536870922, 0, 2293794, 536870922, 0, 2293795, 536870922, 0, 2293796, 536870922, 0, 2293797, 536870922, 0, 2293798, 536870922, 0, 2293799, 536870922, 0, 2293800, 536870922, 0, 2293801, 536870922, 0, 2293802, 536870922, 0, 2293803, 536870922, 0, 2293804, 536870922, 0, 2293805, 536870922, 0, 2293806, 536870922, 0, 2293807, 536870922, 0, 2293808, 536870922, 0, 2293809, 536870922, 0, 2293810, 536870922, 0, 2293811, 536870922, 0, 2293812, 536870922, 0, 2293813, 536870922, 0, 2293814, 536870922, 0, 2293815, 536870922, 0, 2293816, 536870922, 0, 2293817, 536870922, 0, 2293818, 536870922, 0, 2293819, 536870922, 0, 2293820, 536870922, 0, 2293821, 536870922, 0, 2293822, 536870922, 0, 2293823, 536870922, 0, 2293824, 536870922, 0, 2293825, 536870922, 0, 2293826, 536870922, 0, 2293827, 536870922, 0, 2293828, 536870922, 0, 2293829, 536870922, 0, 2293830, 536870922, 0, 2359324, 536870914, 0, 2359325, 536870922, 0, 2359326, 536870922, 0, 2359327, 536870922, 0, 2359328, 536870922, 0, 2359329, 536870922, 0, 2359330, 536870922, 0, 2359331, 536870922, 0, 2359332, 536870922, 0, 2359333, 536870922, 0, 2359334, 536870922, 0, 2359335, 536870922, 0, 2359336, 536870922, 0, 2359337, 536870922, 0, 2359338, 536870922, 0, 2359339, 536870922, 0, 2359340, 536870922, 0, 2359341, 536870922, 0, 2359342, 536870922, 0, 2359343, 536870922, 0, 2359344, 536870922, 0, 2359345, 536870922, 0, 2359346, 536870922, 0, 2359347, 536870922, 0, 2359348, 536870922, 0, 2359349, 536870922, 0, 2359350, 536870922, 0, 2359351, 536870922, 0, 2359352, 536870922, 0, 2359353, 536870922, 0, 2359354, 536870922, 0, 2359355, 536870922, 0, 2359356, 536870922, 0, 2359357, 536870922, 0, 2359358, 536870922, 0, 2359359, 536870922, 0, 2359360, 536870922, 0, 2359361, 536870922, 0, 2359362, 536870922, 0, 2359363, 536870922, 0, 2359364, 536870922, 0, 2359365, 536870922, 0, 2359366, 536870922, 0, 2424860, 536870914, 0, 2424861, 536870922, 0, 2424862, 536870922, 0, 2424863, 536870922, 0, 2424864, 536870922, 0, 2424865, 536870922, 0, 2424866, 536870922, 0, 2424867, 536870922, 0, 2424868, 536870922, 0, 2424869, 536870922, 0, 2424870, 536870922, 0, 2424871, 536870922, 0, 2424872, 536870922, 0, 2424873, 536870922, 0, 2424874, 536870922, 0, 2424875, 536870922, 0, 2424876, 536870922, 0, 2424877, 536870922, 0, 2424878, 536870922, 0, 2424879, 536870922, 0, 2424880, 536870922, 0, 2424881, 536870922, 0, 2424882, 536870922, 0, 2424883, 536870922, 0, 2424884, 536870922, 0, 2424885, 536870922, 0, 2424886, 536870922, 0, 2424887, 536870922, 0, 2424888, 536870922, 0, 2424889, 536870922, 0, 2424890, 536870922, 0, 2424891, 536870922, 0, 2424892, 536870922, 0, 2424893, 536870922, 0, 2424894, 536870922, 0, 2424895, 536870922, 0, 2424896, 536870922, 0, 2424897, 536870922, 0, 2424898, 536870922, 0, 2424899, 536870922, 0, 2424900, 536870922, 0, 2424901, 536870922, 0, 2424902, 536870922, 0, 2490397, 536870922, 0, 2490398, 536870922, 0, 2490399, 536870922, 0, 2490400, 536870922, 0, 2490401, 536870922, 0, 2490402, 536870922, 0, 2490403, 536870922, 0, 2490404, 536870922, 0, 2490405, 536870922, 0, 2490406, 536870922, 0, 2490407, 536870922, 0, 2490408, 536870922, 0, 2490409, 536870922, 0, 2490410, 536870922, 0, 2490411, 536870922, 0, 2490412, 536870922, 0, 2490413, 536870922, 0, 2490414, 536870922, 0, 2490415, 536870922, 0, 2490416, 536870922, 0, 2490417, 536870922, 0, 2490418, 536870922, 0, 2490419, 536870922, 0, 2490420, 536870922, 0, 2490421, 536870922, 0, 2490422, 536870922, 0, 2490423, 536870922, 0, 2490424, 536870922, 0, 2490425, 536870922, 0, 2490426, 536870922, 0, 2490427, 536870922, 0, 2490428, 536870922, 0, 2490429, 536870922, 0, 2490430, 536870922, 0, 2490431, 536870922, 0, 2490432, 536870922, 0, 2490433, 536870922, 0, 2490434, 536870922, 0, 2490435, 536870922, 0, 2490436, 536870922, 0, 2490437, 536870922, 0, 2555933, 536870922, 0, 2555934, 536870922, 0, 2555935, 536870922, 0, 2555936, 536870922, 0, 2555937, 536870922, 0, 2555938, 536870922, 0, 2555939, 536870922, 0, 2555940, 536870922, 0, 2555941, 536870922, 0, 2555942, 536870922, 0, 2555943, 536870922, 0, 2555944, 536870922, 0, 2555945, 536870922, 0, 2555946, 536870922, 0, 2555947, 536870922, 0, 2555948, 536870922, 0, 2555949, 536870922, 0, 2555950, 536870922, 0, 2555951, 536870922, 0, 2555952, 536870922, 0, 2555953, 536870922, 0, 2555954, 536870922, 0, 2555955, 536870922, 0, 2555956, 536870922, 0, 2555957, 536870922, 0, 2555958, 536870922, 0, 2555959, 536870922, 0, 2555960, 536870922, 0, 2555961, 536870922, 0, 2555962, 536870922, 0, 2555963, 536870922, 0, 2555964, 536870922, 0, 2555965, 536870922, 0, 2555966, 536870922, 0, 2555967, 536870922, 0, 2555968, 536870922, 0, 2555969, 536870922, 0, 2555970, 536870922, 0, 2555971, 536870922, 0, 2555972, 536870922, 0, 2555973, 536870922, 0, 2621469, 536870922, 0, 2621470, 536870922, 0, 2621471, 536870922, 0, 2621472, 536870922, 0, 2621473, 536870922, 0, 2621474, 536870922, 0, 2621475, 536870922, 0, 2621476, 536870922, 0, 2621477, 536870922, 0, 2621478, 536870922, 0, 2621479, 536870922, 0, 2621480, 536870922, 0, 2621481, 536870922, 0, 2621482, 536870922, 0, 2621483, 536870922, 0, 2621484, 536870922, 0, 2621485, 536870922, 0, 2621486, 536870922, 0, 2621487, 536870922, 0, 2621488, 536870922, 0, 2621489, 536870922, 0, 2621490, 536870922, 0, 2621491, 536870922, 0, 2621492, 536870922, 0, 2621493, 536870922, 0, 2621494, 536870922, 0, 2621495, 536870922, 0, 2621496, 536870922, 0, 2621497, 536870922, 0, 2621498, 536870922, 0, 2621499, 536870922, 0, 2621500, 536870922, 0, 2621501, 536870922, 0, 2621502, 536870922, 0, 2621503, 536870922, 0, 2621504, 536870922, 0, 2621505, 536870922, 0, 2621506, 536870922, 0, 2621507, 536870922, 0, 2621508, 536870922, 0, 2687006, 536870922, 0, 2687007, 536870922, 0, 2687008, 536870922, 0, 2687009, 536870922, 0, 2687010, 536870922, 0, 2687011, 536870922, 0, 2687012, 536870922, 0, 2687013, 536870922, 0, 2687014, 536870922, 0, 2687015, 536870922, 0, 2687016, 536870922, 0, 2687017, 536870922, 0, 2687018, 536870922, 0, 2687019, 536870922, 0, 2687020, 536870922, 0, 2687021, 536870922, 0, 2687022, 536870922, 0, 2687023, 536870922, 0, 2687024, 536870922, 0, 2687025, 536870922, 0, 2687026, 536870922, 0, 2687027, 536870922, 0, 2687028, 536870922, 0, 2687029, 536870922, 0, 2687030, 536870922, 0, 2687031, 536870922, 0, 2687032, 536870922, 0, 2687033, 536870922, 0, 2687034, 536870922, 0, 2687035, 536870922, 0, 2687036, 536870922, 0, 2687037, 536870922, 0, 2687038, 536870922, 0, 2687039, 536870922, 0, 2687040, 536870922, 0, 2687041, 536870922, 0, 2687042, 536870922, 0, 2687043, 536870922, 0, 2687044, 536870922, 0, 2752543, 536870922, 0, 2752544, 536870922, 0, 2752545, 536870922, 0, 2752546, 536870922, 0, 2752547, 536870922, 0, 2752548, 536870922, 0, 2752549, 536870922, 0, 2752550, 536870922, 0, 2752551, 536870922, 0, 2752552, 536870922, 0, 2752553, 536870922, 0, 2752554, 536870922, 0, 2752555, 536870922, 0, 2752556, 536870922, 0, 2752557, 536870922, 0, 2752558, 536870922, 0, 2752559, 536870922, 0, 2752560, 536870922, 0, 2752561, 536870922, 0, 2752562, 536870922, 0, 2752563, 536870922, 0, 2752564, 536870922, 0, 2752565, 536870922, 0, 2752566, 536870922, 0, 2752567, 536870922, 0, 2752568, 536870922, 0, 2752569, 536870922, 0, 2752570, 536870922, 0, 2752571, 536870922, 0, 2752572, 536870922, 0, 2752573, 536870922, 0, 2752574, 536870922, 0, 2752575, 536870922, 0, 2752576, 536870922, 0, 2752577, 536870922, 0, 2752578, 536870922, 0, 2752579, 536870922, 0, 2818083, 536870922, 0, 2818084, 536870922, 0, 2818085, 536870922, 0, 2818086, 536870922, 0, 2818087, 536870922, 0, 2818088, 536870922, 0, 2818089, 536870922, 0, 2818090, 536870922, 0, 2818091, 536870922, 0, 2818092, 536870922, 0, 2818093, 536870922, 0, 2818094, 536870922, 0, 2818095, 536870922, 0, 2818096, 536870922, 0, 2818097, 536870922, 0, 2818098, 536870922, 0, 2818099, 536870922, 0, 2818100, 536870922, 0, 2818101, 536870922, 0, 2818102, 536870922, 0, 2818103, 536870922, 0, 2818104, 536870922, 0, 2818105, 536870922, 0, 2818106, 536870922, 0, 2818107, 536870922, 0, 2818108, 536870922, 0, 2818109, 536870922, 0, 2818110, 536870922, 0, 2818111, 536870922, 0, 2818112, 536870922, 0, 2818113, 536870922, 0 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Coins" type="Node" parent="."] + +[node name="Coin1" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 672, 1179 ) + +[node name="Coin2" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 704, 1179 ) + +[node name="Coin3" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 736, 1179 ) + +[node name="Coin4" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1120, 992 ) + +[node name="Coin5" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1152, 992 ) + +[node name="Coin6" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1184, 992 ) + +[node name="Coin7" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1216, 992 ) + +[node name="Coin8" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1248, 992 ) + +[node name="Coin9" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1568, 864 ) + +[node name="Coin10" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1632, 864 ) + +[node name="Coin11" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1169.44, 677.369 ) + +[node name="Coin12" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1233.44, 677.369 ) + +[node name="Coin13" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 924.453, 566.264 ) + +[node name="Coin14" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 988.453, 566.264 ) + +[node name="Coin15" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 983.872, 336.653 ) + +[node name="Coin16" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1047.87, 336.653 ) + +[node name="Coin17" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1111.87, 336.653 ) + +[node name="Coin18" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1111.87, 272.653 ) + +[node name="Coin19" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 1047.87, 272.653 ) + +[node name="Coin20" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 983.872, 272.653 ) + +[node name="Coin21" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 3726.65, 1102.79 ) + +[node name="Coin22" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 89.5989, 481.217 ) + +[node name="Coin23" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 3735.94, 1095.49 ) + +[node name="Coin24" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 3743.9, 1084.22 ) + +[node name="Coin25" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 3745.23, 1072.28 ) + +[node name="Coin26" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 3733.95, 1063.65 ) + +[node name="Coin27" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 3725.99, 1072.94 ) + +[node name="Coin28" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 88.272, 448.71 ) + +[node name="Coin29" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 79.6476, 457.334 ) + +[node name="Coin30" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 82.9647, 468.612 ) + +[node name="Coin31" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 2159.07, 1356.49 ) + +[node name="Coin32" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 2223.07, 1356.49 ) + +[node name="Coin33" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 2287.07, 1356.49 ) + +[node name="Coin34" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 2287.07, 1292.49 ) + +[node name="Coin35" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 2223.07, 1292.49 ) + +[node name="Coin36" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 2159.07, 1292.49 ) + +[node name="Coin37" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 4172.75, 605.058 ) + +[node name="Coin38" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 4236.75, 605.058 ) + +[node name="Coin39" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 4300.75, 605.058 ) + +[node name="Coin40" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 4300.75, 541.058 ) + +[node name="Coin41" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 4236.75, 541.058 ) + +[node name="Coin42" parent="Coins" instance=ExtResource( 2 )] +position = Vector2( 4172.75, 541.058 ) + +[node name="Props" type="Node" parent="."] + +[node name="MovingPlatform" parent="Props" instance=ExtResource( 3 )] +position = Vector2( 1451.86, 742.969 ) + +[node name="MovingPlatform2" parent="Props" instance=ExtResource( 3 )] +position = Vector2( 719.199, 1123.81 ) +motion = Vector2( 100, 0 ) +cycle = 4.0 + +[node name="Still" parent="Props" instance=ExtResource( 3 )] +position = Vector2( 1231.37, 1105.18 ) +rotation = -0.163314 + +[node name="Still1" parent="Props" instance=ExtResource( 3 )] +position = Vector2( 1384.28, 1066.4 ) +rotation = -0.321902 + +[node name="Still2" parent="Props" instance=ExtResource( 3 )] +position = Vector2( 1552.7, 1032.05 ) +rotation = -0.0826906 + +[node name="Still3" parent="Props" instance=ExtResource( 3 )] +position = Vector2( 1700.06, 1066.92 ) +rotation = 0.547997 + +[node name="OneWayPlatform1" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 967.609, 836.547 ) + +[node name="OneWayPlatform2" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 1190.78, 754.282 ) + +[node name="OneWayPlatform3" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 953.762, 638.622 ) + +[node name="OneWayPlatform4" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 1256.76, 638.622 ) + +[node name="OneWayPlatform5" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 1039.29, 409.746 ) + +[node name="OneWayPlatform6" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 1192.93, 520.298 ) + +[node name="OneWayPlatform7" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 2784.9, 1655.71 ) + +[node name="OneWayPlatform8" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 2976.23, 1555 ) + +[node name="OneWayPlatform9" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 3122.25, 1469.41 ) + +[node name="OneWayPlatform10" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 3200.29, 1353.6 ) + +[node name="OneWayPlatform11" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 3200.29, 1237.8 ) + +[node name="OneWayPlatform12" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 1099.56, 940.804 ) + +[node name="OneWayPlatform13" parent="Props" instance=ExtResource( 4 )] +position = Vector2( 1339.63, 967.879 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +position = Vector2( 251.684, 1045.6 ) + +[node name="Enemies" type="Node" parent="."] + +[node name="Enemy1" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 734.693, 1064.22 ) + +[node name="Enemy2" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 707.665, 1225.05 ) + +[node name="Enemy3" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 1125.21, 1053.06 ) + +[node name="Enemy4" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 1292.11, 1059.24 ) + +[node name="Enemy5" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 968.927, 766.466 ) + +[node name="Enemy6" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 3080.34, 1807.61 ) + +[node name="Enemy7" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 1457.6, 688.741 ) + +[node name="Enemy8" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 1264.06, 571.713 ) + +[node name="Enemy9" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 3590.85, 1114.86 ) + +[node name="Enemy10" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 3546.2, 1356.19 ) + +[node name="Enemy11" parent="Enemies" instance=ExtResource( 6 )] +position = Vector2( 2215.3, 1429.39 ) + +[node name="ParallaxBg" parent="." instance=ExtResource( 7 )] + +[node name="Label" type="Label" parent="."] +margin_left = 12.0 +margin_top = -202.0 +margin_right = 358.0 +margin_bottom = -10.0 +size_flags_horizontal = 2 +size_flags_vertical = 0 +text = "This is a simple demo on how to make a platformer game with Godot.\"This version uses physics and the 2D physics engine for motion and collision.\"\"The demo also shows the benefits of using the scene system, where coins,\"enemies and the player are edited separatedly and instanced in the stage.\"\"To edit the base tiles for the tileset, open the tileset_edit.tscn file and follow \"instructions.\"" +autowrap = true + +[node name="Music" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 8 ) +autoplay = true + diff --git a/2d/platformer/tileset.tres b/2d/platformer/TileSet.tres similarity index 100% rename from 2d/platformer/tileset.tres rename to 2d/platformer/TileSet.tres diff --git a/2d/platformer/tileset_edit.tscn b/2d/platformer/TilesetEdit.tscn similarity index 100% rename from 2d/platformer/tileset_edit.tscn rename to 2d/platformer/TilesetEdit.tscn diff --git a/2d/platformer/music.ogg b/2d/platformer/audio/music.ogg similarity index 100% rename from 2d/platformer/music.ogg rename to 2d/platformer/audio/music.ogg diff --git a/2d/platformer/audio/music.ogg.import b/2d/platformer/audio/music.ogg.import new file mode 100644 index 00000000..0a99e952 --- /dev/null +++ b/2d/platformer/audio/music.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/music.ogg-552a37c4bfe46d894cb8004cf1c345ad.oggstr" + +[deps] + +source_file="res://audio/music.ogg" +dest_files=[ "res://.import/music.ogg-552a37c4bfe46d894cb8004cf1c345ad.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/2d/platformer/sound_coin.wav b/2d/platformer/audio/sound_coin.wav similarity index 100% rename from 2d/platformer/sound_coin.wav rename to 2d/platformer/audio/sound_coin.wav diff --git a/2d/platformer/audio/sound_coin.wav.import b/2d/platformer/audio/sound_coin.wav.import new file mode 100644 index 00000000..02be70ac --- /dev/null +++ b/2d/platformer/audio/sound_coin.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/sound_coin.wav-e18cceeba8b7dc02bbb940b85bcad99a.sample" + +[deps] + +source_file="res://audio/sound_coin.wav" +dest_files=[ "res://.import/sound_coin.wav-e18cceeba8b7dc02bbb940b85bcad99a.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/2d/platformer/sound_explode.wav b/2d/platformer/audio/sound_explode.wav similarity index 100% rename from 2d/platformer/sound_explode.wav rename to 2d/platformer/audio/sound_explode.wav diff --git a/2d/platformer/audio/sound_explode.wav.import b/2d/platformer/audio/sound_explode.wav.import new file mode 100644 index 00000000..52a56ab9 --- /dev/null +++ b/2d/platformer/audio/sound_explode.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/sound_explode.wav-536668d880bfb277b9e5253774598e9e.sample" + +[deps] + +source_file="res://audio/sound_explode.wav" +dest_files=[ "res://.import/sound_explode.wav-536668d880bfb277b9e5253774598e9e.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/2d/platformer/sound_hit.wav b/2d/platformer/audio/sound_hit.wav similarity index 100% rename from 2d/platformer/sound_hit.wav rename to 2d/platformer/audio/sound_hit.wav diff --git a/2d/platformer/audio/sound_hit.wav.import b/2d/platformer/audio/sound_hit.wav.import new file mode 100644 index 00000000..cd0f653d --- /dev/null +++ b/2d/platformer/audio/sound_hit.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/sound_hit.wav-6c98c4eeb2c6ac3fc45dc4a7ebd8602f.sample" + +[deps] + +source_file="res://audio/sound_hit.wav" +dest_files=[ "res://.import/sound_hit.wav-6c98c4eeb2c6ac3fc45dc4a7ebd8602f.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/2d/platformer/sound_jump.wav b/2d/platformer/audio/sound_jump.wav similarity index 100% rename from 2d/platformer/sound_jump.wav rename to 2d/platformer/audio/sound_jump.wav diff --git a/2d/platformer/audio/sound_jump.wav.import b/2d/platformer/audio/sound_jump.wav.import new file mode 100644 index 00000000..b0bb11e8 --- /dev/null +++ b/2d/platformer/audio/sound_jump.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/sound_jump.wav-7e05b84e4426c7461dd15838765e210b.sample" + +[deps] + +source_file="res://audio/sound_jump.wav" +dest_files=[ "res://.import/sound_jump.wav-7e05b84e4426c7461dd15838765e210b.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/2d/platformer/sound_shoot.wav b/2d/platformer/audio/sound_shoot.wav similarity index 100% rename from 2d/platformer/sound_shoot.wav rename to 2d/platformer/audio/sound_shoot.wav diff --git a/2d/platformer/audio/sound_shoot.wav.import b/2d/platformer/audio/sound_shoot.wav.import new file mode 100644 index 00000000..34d93e79 --- /dev/null +++ b/2d/platformer/audio/sound_shoot.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/sound_shoot.wav-a37772efd1dbcd76c4fe35742f502bb7.sample" + +[deps] + +source_file="res://audio/sound_shoot.wav" +dest_files=[ "res://.import/sound_shoot.wav-a37772efd1dbcd76c4fe35742f502bb7.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=true +edit/normalize=true +edit/loop=false +compress/mode=0 diff --git a/2d/platformer/background/ParallaxBg.tscn b/2d/platformer/background/ParallaxBg.tscn new file mode 100644 index 00000000..e0c7f62b --- /dev/null +++ b/2d/platformer/background/ParallaxBg.tscn @@ -0,0 +1,76 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://background/scroll_bg_sky.png" type="Texture" id=1] +[ext_resource path="res://background/scroll_bg_cloud_1.png" type="Texture" id=2] +[ext_resource path="res://background/scroll_bg_cloud_2.png" type="Texture" id=3] +[ext_resource path="res://background/scroll_bg_cloud_3.png" type="Texture" id=4] +[ext_resource path="res://background/scroll_bg_fg_2.png" type="Texture" id=5] +[ext_resource path="res://background/scroll_bg_fg_1.png" type="Texture" id=6] + +[node name="ParallaxBg" type="ParallaxBackground"] +scroll_base_scale = Vector2( 0.7, 0 ) + +[node name="Sky" type="ParallaxLayer" parent="."] +motion_mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="Sky"] +scale = Vector2( 32, 0.94 ) +texture = ExtResource( 1 ) +centered = false + +[node name="Clouds" type="ParallaxLayer" parent="."] +motion_scale = Vector2( 0.1, 1 ) +motion_mirroring = Vector2( 800, 0 ) + +[node name="Sprite1" type="Sprite" parent="Clouds"] +position = Vector2( 28, 127 ) +texture = ExtResource( 2 ) +centered = false + +[node name="Sprite2" type="Sprite" parent="Clouds"] +position = Vector2( 404, 24 ) +texture = ExtResource( 2 ) +centered = false + +[node name="Sprite3" type="Sprite" parent="Clouds"] +position = Vector2( 154, 46 ) +texture = ExtResource( 3 ) +centered = false + +[node name="Sprite4" type="Sprite" parent="Clouds"] +position = Vector2( 525, 130 ) +texture = ExtResource( 3 ) +centered = false + +[node name="Sprite5" type="Sprite" parent="Clouds"] +position = Vector2( 255, 158 ) +texture = ExtResource( 4 ) +centered = false + +[node name="Sprite6" type="Sprite" parent="Clouds"] +position = Vector2( 674, 70 ) +texture = ExtResource( 4 ) +centered = false + +[node name="Mount2" type="ParallaxLayer" parent="."] +motion_scale = Vector2( 0.2, 1 ) +motion_mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="Mount2"] +position = Vector2( 0, 225 ) +texture = ExtResource( 5 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 800, 256 ) + +[node name="Mount1" type="ParallaxLayer" parent="."] +motion_scale = Vector2( 0.4, 1 ) +motion_mirroring = Vector2( 800, 0 ) + +[node name="Sprite" type="Sprite" parent="Mount1"] +position = Vector2( 0, 225 ) +texture = ExtResource( 6 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 800, 256 ) + diff --git a/2d/platformer/scroll_bg_cloud_1.png b/2d/platformer/background/scroll_bg_cloud_1.png similarity index 100% rename from 2d/platformer/scroll_bg_cloud_1.png rename to 2d/platformer/background/scroll_bg_cloud_1.png diff --git a/2d/platformer/scroll_bg_cloud_1.png.import b/2d/platformer/background/scroll_bg_cloud_1.png.import similarity index 55% rename from 2d/platformer/scroll_bg_cloud_1.png.import rename to 2d/platformer/background/scroll_bg_cloud_1.png.import index bc08e84e..e61037bb 100644 --- a/2d/platformer/scroll_bg_cloud_1.png.import +++ b/2d/platformer/background/scroll_bg_cloud_1.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/scroll_bg_cloud_1.png-bad76c04aedb60c1b863fc1c1c6387ee.stex" +path="res://.import/scroll_bg_cloud_1.png-19f55c25a7e1985c92542faa0106888e.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://scroll_bg_cloud_1.png" -source_md5="469ececd0862fb9ee972f4c9afa833e5" - -dest_files=[ "res://.import/scroll_bg_cloud_1.png-bad76c04aedb60c1b863fc1c1c6387ee.stex" ] -dest_md5="37255df31e22594ad1c9dc765be60b4e" +source_file="res://background/scroll_bg_cloud_1.png" +dest_files=[ "res://.import/scroll_bg_cloud_1.png-19f55c25a7e1985c92542faa0106888e.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 @@ -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 diff --git a/2d/platformer/scroll_bg_cloud_2.png b/2d/platformer/background/scroll_bg_cloud_2.png similarity index 100% rename from 2d/platformer/scroll_bg_cloud_2.png rename to 2d/platformer/background/scroll_bg_cloud_2.png diff --git a/2d/platformer/scroll_bg_cloud_2.png.import b/2d/platformer/background/scroll_bg_cloud_2.png.import similarity index 55% rename from 2d/platformer/scroll_bg_cloud_2.png.import rename to 2d/platformer/background/scroll_bg_cloud_2.png.import index c4b7ca5b..5bd93491 100644 --- a/2d/platformer/scroll_bg_cloud_2.png.import +++ b/2d/platformer/background/scroll_bg_cloud_2.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/scroll_bg_cloud_2.png-cb251e8e91cb5450d56a9d0584943db0.stex" +path="res://.import/scroll_bg_cloud_2.png-869806dcc546591f3d754e3b845c61c9.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://scroll_bg_cloud_2.png" -source_md5="5acccab15a17f158a267e2cbf2c8d037" - -dest_files=[ "res://.import/scroll_bg_cloud_2.png-cb251e8e91cb5450d56a9d0584943db0.stex" ] -dest_md5="99986e2aacf77e0243ac594877e65af2" +source_file="res://background/scroll_bg_cloud_2.png" +dest_files=[ "res://.import/scroll_bg_cloud_2.png-869806dcc546591f3d754e3b845c61c9.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 @@ -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 diff --git a/2d/platformer/scroll_bg_cloud_3.png b/2d/platformer/background/scroll_bg_cloud_3.png similarity index 100% rename from 2d/platformer/scroll_bg_cloud_3.png rename to 2d/platformer/background/scroll_bg_cloud_3.png diff --git a/2d/platformer/scroll_bg_cloud_3.png.import b/2d/platformer/background/scroll_bg_cloud_3.png.import similarity index 55% rename from 2d/platformer/scroll_bg_cloud_3.png.import rename to 2d/platformer/background/scroll_bg_cloud_3.png.import index f3f06c4f..2316fd85 100644 --- a/2d/platformer/scroll_bg_cloud_3.png.import +++ b/2d/platformer/background/scroll_bg_cloud_3.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/scroll_bg_cloud_3.png-6bbd67870db2f55a0c1b4685aa91e57c.stex" +path="res://.import/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a936bcc2f7.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://scroll_bg_cloud_3.png" -source_md5="b5e117acfbd6979087b6ac12f030bfcb" - -dest_files=[ "res://.import/scroll_bg_cloud_3.png-6bbd67870db2f55a0c1b4685aa91e57c.stex" ] -dest_md5="3f2a1b5817369909200dd83ff99265e9" +source_file="res://background/scroll_bg_cloud_3.png" +dest_files=[ "res://.import/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a936bcc2f7.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 @@ -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 diff --git a/2d/platformer/scroll_bg_fg_1.png b/2d/platformer/background/scroll_bg_fg_1.png similarity index 100% rename from 2d/platformer/scroll_bg_fg_1.png rename to 2d/platformer/background/scroll_bg_fg_1.png diff --git a/2d/platformer/scroll_bg_fg_1.png.import b/2d/platformer/background/scroll_bg_fg_1.png.import similarity index 56% rename from 2d/platformer/scroll_bg_fg_1.png.import rename to 2d/platformer/background/scroll_bg_fg_1.png.import index ca65e6b8..5f3912cf 100644 --- a/2d/platformer/scroll_bg_fg_1.png.import +++ b/2d/platformer/background/scroll_bg_fg_1.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/scroll_bg_fg_1.png-af0d9d2847aea6e03f54efcc2d9b6f06.stex" +path="res://.import/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b82882d.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://scroll_bg_fg_1.png" -source_md5="27792a0e523d6009f00b02b495ed577a" - -dest_files=[ "res://.import/scroll_bg_fg_1.png-af0d9d2847aea6e03f54efcc2d9b6f06.stex" ] -dest_md5="02ce953a24b02bfc10ee9491a276041a" +source_file="res://background/scroll_bg_fg_1.png" +dest_files=[ "res://.import/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b82882d.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 @@ -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 diff --git a/2d/platformer/scroll_bg_fg_2.png b/2d/platformer/background/scroll_bg_fg_2.png similarity index 100% rename from 2d/platformer/scroll_bg_fg_2.png rename to 2d/platformer/background/scroll_bg_fg_2.png diff --git a/2d/platformer/scroll_bg_fg_2.png.import b/2d/platformer/background/scroll_bg_fg_2.png.import similarity index 56% rename from 2d/platformer/scroll_bg_fg_2.png.import rename to 2d/platformer/background/scroll_bg_fg_2.png.import index 1411c158..cf45621b 100644 --- a/2d/platformer/scroll_bg_fg_2.png.import +++ b/2d/platformer/background/scroll_bg_fg_2.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/scroll_bg_fg_2.png-2419a5b3b81617ba71d0ad50d23bf6f1.stex" +path="res://.import/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a336d1e9.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://scroll_bg_fg_2.png" -source_md5="0a4fca6ccb08f3673b208b2730138413" - -dest_files=[ "res://.import/scroll_bg_fg_2.png-2419a5b3b81617ba71d0ad50d23bf6f1.stex" ] -dest_md5="c90197251b52fbb36f4bde85bfa9a424" +source_file="res://background/scroll_bg_fg_2.png" +dest_files=[ "res://.import/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a336d1e9.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 @@ -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 diff --git a/2d/platformer/scroll_bg_sky.png b/2d/platformer/background/scroll_bg_sky.png similarity index 100% rename from 2d/platformer/scroll_bg_sky.png rename to 2d/platformer/background/scroll_bg_sky.png diff --git a/2d/platformer/scroll_bg_sky.png.import b/2d/platformer/background/scroll_bg_sky.png.import similarity index 56% rename from 2d/platformer/scroll_bg_sky.png.import rename to 2d/platformer/background/scroll_bg_sky.png.import index 2860492a..024a110a 100644 --- a/2d/platformer/scroll_bg_sky.png.import +++ b/2d/platformer/background/scroll_bg_sky.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/scroll_bg_sky.png-df3e8b7d076f566a7bd83c6d4f9b57cf.stex" +path="res://.import/scroll_bg_sky.png-377ea542199b2e23d7a822ed940ea99e.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://scroll_bg_sky.png" -source_md5="98017e52a97035ac8cece7bf2e9c7022" - -dest_files=[ "res://.import/scroll_bg_sky.png-df3e8b7d076f566a7bd83c6d4f9b57cf.stex" ] -dest_md5="fe52a91404b775bdab02d228e5b0d75c" +source_file="res://background/scroll_bg_sky.png" +dest_files=[ "res://.import/scroll_bg_sky.png-377ea542199b2e23d7a822ed940ea99e.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 @@ -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 diff --git a/2d/platformer/bullet.tscn b/2d/platformer/bullet.tscn deleted file mode 100644 index 443a71b8..00000000 --- a/2d/platformer/bullet.tscn +++ /dev/null @@ -1,192 +0,0 @@ -[gd_scene load_steps=9 format=2] - -[ext_resource path="res://bullet.gd" type="Script" id=1] -[ext_resource path="res://bullet.png" type="Texture" id=2] - -[sub_resource type="CanvasItemMaterial" id=1] - -render_priority = 0 -blend_mode = 0 -light_mode = 0 - -[sub_resource type="CanvasItemMaterial" id=8] - -render_priority = 0 -blend_mode = 1 -light_mode = 0 - -[sub_resource type="ParticlesMaterial" id=7] - -render_priority = 0 -trail_divisor = 1 -emission_shape = 0 -flag_align_y = false -flag_rotate_y = false -flag_disable_z = true -spread = 0.0 -flatness = 0.0 -gravity = Vector3( 0, 0, 0 ) -initial_velocity = 0.0 -initial_velocity_random = 0.0 -angular_velocity = 0.0 -angular_velocity_random = 0.0 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 -scale = 0.8 -scale_random = 0.0 -color = Color( 1, 1, 1, 0.705882 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Color", "Trail" ] - -[sub_resource type="CanvasItemMaterial" id=4] - -render_priority = 0 -blend_mode = 0 -light_mode = 0 - -[sub_resource type="CircleShape2D" id=5] - -custom_solver_bias = 0.0 -radius = 10.0 - -[sub_resource type="Animation" id=6] - -length = 1.5 -loop = false -step = 0.1 -tracks/0/type = "method" -tracks/0/path = NodePath(".") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 1.31 ), -"transitions": PoolRealArray( 1 ), -"values": [ { -"args": [ ], -"method": "queue_free" -} ] -} -tracks/1/type = "value" -tracks/1/path = NodePath("sprite:self_modulate") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/keys = { -"times": PoolRealArray( 0, 1 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] -} -tracks/2/type = "value" -tracks/2/path = NodePath("Particles2D:self_modulate") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/keys = { -"times": PoolRealArray( 0, 0.5 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] -} - -[node name="bullet" type="RigidBody2D" index="0"] - -material = SubResource( 1 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -mode = 0 -mass = 1.0 -friction = 1.0 -bounce = 0.0 -gravity_scale = 1.0 -custom_integrator = false -continuous_cd = 2 -contacts_reported = 1 -contact_monitor = true -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) -linear_damp = -1.0 -angular_velocity = 0.0 -angular_damp = -1.0 -script = ExtResource( 1 ) -_sections_unfolded = [ "Angular", "Collision", "Linear", "Material", "Pickable", "Transform", "Visibility", "Z" ] - -[node name="Particles2D" type="Particles2D" parent="." index="0"] - -material = SubResource( 8 ) -emitting = true -amount = 8 -lifetime = 0.3 -one_shot = false -preprocess = 0.0 -speed_scale = 3.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = false -draw_order = 0 -process_material = SubResource( 7 ) -texture = ExtResource( 2 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Drawing", "Process Material", "Time", "Visibility" ] - -[node name="sprite" type="Sprite" parent="." index="1"] - -material = SubResource( 4 ) -texture = ExtResource( 2 ) -_sections_unfolded = [ "Animation", "Material", "Offset", "Region", "Transform", "Visibility", "Z" ] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="2"] - -shape = SubResource( 5 ) -_sections_unfolded = [ "Material", "Transform", "Visibility", "Z" ] - -[node name="Timer" type="Timer" parent="." index="3"] - -process_mode = 1 -wait_time = 1.0 -one_shot = true -autostart = true - -[node name="anim" type="AnimationPlayer" parent="." index="4"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") -anims/shutdown = SubResource( 6 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] -autoplay = "" - -[connection signal="body_entered" from="." to="." method="_on_bullet_body_enter"] - -[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] - - diff --git a/2d/platformer/coin.gd b/2d/platformer/coin.gd deleted file mode 100644 index 4501604e..00000000 --- a/2d/platformer/coin.gd +++ /dev/null @@ -1,8 +0,0 @@ -extends Area2D - -var taken=false - -func _on_coin_body_enter( body ): - if not taken and body is preload("res://player.gd"): - $anim.play("taken") - taken = true diff --git a/2d/platformer/coin.tscn b/2d/platformer/coin/Coin.tscn similarity index 52% rename from 2d/platformer/coin.tscn rename to 2d/platformer/coin/Coin.tscn index 8f245207..a06e58c0 100644 --- a/2d/platformer/coin.tscn +++ b/2d/platformer/coin/Coin.tscn @@ -1,21 +1,21 @@ [gd_scene load_steps=11 format=2] -[ext_resource path="res://coin.gd" type="Script" id=1] -[ext_resource path="res://coin.png" type="Texture" id=2] -[ext_resource path="res://sound_coin.wav" type="AudioStream" id=3] -[ext_resource path="res://bullet.png" type="Texture" id=4] +[ext_resource path="res://coin/coin.gd" type="Script" id=1] +[ext_resource path="res://coin/coin.png" type="Texture" id=2] +[ext_resource path="res://audio/sound_coin.wav" type="AudioStream" id=3] +[ext_resource path="res://player/bullet.png" type="Texture" id=4] [sub_resource type="Animation" id=1] - resource_name = "spin" length = 1.5 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ), @@ -24,15 +24,14 @@ tracks/0/keys = { } [sub_resource type="Animation" id=2] - length = 8.0 -loop = false step = 0.0 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -44,6 +43,7 @@ tracks/1/path = NodePath(".") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false +tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 2.7 ), "transitions": PoolRealArray( 1 ), @@ -53,10 +53,11 @@ tracks/1/keys = { } ] } tracks/2/type = "value" -tracks/2/path = NodePath("particles:emitting") +tracks/2/path = NodePath("Particles:emitting") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false +tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0, 0.98 ), "transitions": PoolRealArray( 1, 1 ), @@ -64,10 +65,11 @@ tracks/2/keys = { "values": [ true, false ] } tracks/3/type = "value" -tracks/3/path = NodePath("sprite:self_modulate") +tracks/3/path = NodePath("Sprite:self_modulate") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false +tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0, 0.33 ), "transitions": PoolRealArray( 1, 1 ), @@ -75,10 +77,11 @@ tracks/3/keys = { "values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] } tracks/4/type = "value" -tracks/4/path = NodePath("sound:playing") +tracks/4/path = NodePath("Sound:playing") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false +tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0.01 ), "transitions": PoolRealArray( 1 ), @@ -88,132 +91,51 @@ tracks/4/keys = { [sub_resource type="CircleShape2D" id=3] -custom_solver_bias = 0.0 -radius = 10.0 - [sub_resource type="CanvasItemMaterial" id=4] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="GradientTexture" id=5] -width = 2048 - [sub_resource type="ParticlesMaterial" id=6] - -render_priority = 0 -trail_divisor = 1 emission_shape = 1 emission_sphere_radius = 10.0 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 90, 0 ) initial_velocity = 121.98 -initial_velocity_random = 0.0 angular_velocity = -2.49891e+38 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 scale = 0.2 -scale_random = 0.0 color_ramp = SubResource( 5 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -[node name="coin" type="Area2D"] - -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" +[node name="Coin" type="Area2D"] script = ExtResource( 1 ) -[node name="sprite" type="Sprite" parent="."] - +[node name="Sprite" type="Sprite" parent="."] texture = ExtResource( 2 ) hframes = 4 -[node name="anim" type="AnimationPlayer" parent="."] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +[node name="Anim" type="AnimationPlayer" parent="."] +autoplay = "spin" anims/spin = SubResource( 1 ) anims/taken = SubResource( 2 ) -playback/active = true -playback/speed = 3.0 -blend_times = [ ] -autoplay = "spin" - -[node name="collision" type="CollisionShape2D" parent="."] +[node name="Collision" type="CollisionShape2D" parent="."] shape = SubResource( 3 ) -[node name="sound" type="AudioStreamPlayer2D" parent="."] - +[node name="Sound" type="AudioStreamPlayer2D" parent="."] stream = ExtResource( 3 ) -volume_db = 0.0 -autoplay = false -max_distance = 2000.0 -attenuation = 1.0 -bus = "Master" -area_mask = 1 - -[node name="particles" type="Particles2D" parent="."] +[node name="Particles" type="Particles2D" parent="."] material = SubResource( 4 ) emitting = false -amount = 8 lifetime = 2.0 -one_shot = false -preprocess = 0.0 -speed_scale = 1.0 explosiveness = 1.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = true draw_order = 65793 process_material = SubResource( 6 ) texture = ExtResource( 4 ) -normal_map = null -h_frames = 1 -v_frames = 1 -[node name="enabler" type="VisibilityEnabler2D" parent="."] - -rect = Rect2( -10, -10, 20, 20 ) -pause_animations = true -freeze_bodies = true +[node name="Enabler" type="VisibilityEnabler2D" parent="."] pause_particles = false -pause_animated_sprites = true -process_parent = false -physics_process_parent = false [connection signal="body_entered" from="." to="." method="_on_coin_body_enter"] - - diff --git a/2d/platformer/coin/coin.gd b/2d/platformer/coin/coin.gd new file mode 100644 index 00000000..0c929a33 --- /dev/null +++ b/2d/platformer/coin/coin.gd @@ -0,0 +1,11 @@ +extends Area2D + +class_name Coin + + +var taken = false + +func _on_coin_body_enter(body): + if not taken and body is Player: + ($Anim as AnimationPlayer).play("taken") + taken = true diff --git a/2d/platformer/coin.png b/2d/platformer/coin/coin.png similarity index 100% rename from 2d/platformer/coin.png rename to 2d/platformer/coin/coin.png diff --git a/2d/platformer/coin.png.import b/2d/platformer/coin/coin.png.import similarity index 59% rename from 2d/platformer/coin.png.import rename to 2d/platformer/coin/coin.png.import index a515e635..d63f0ad6 100644 --- a/2d/platformer/coin.png.import +++ b/2d/platformer/coin/coin.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/coin.png-7e710de472b75b3653c3283ef5153eb4.stex" +path="res://.import/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://coin.png" -source_md5="e222f7ea0cf168c4da9b5beff4035f2c" - -dest_files=[ "res://.import/coin.png-7e710de472b75b3653c3283ef5153eb4.stex" ] -dest_md5="c029cc68ec2da7c23bf6bc76055a8399" +source_file="res://coin/coin.png" +dest_files=[ "res://.import/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.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 @@ -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 diff --git a/2d/platformer/enemy.tscn b/2d/platformer/enemy/Enemy.tscn similarity index 52% rename from 2d/platformer/enemy.tscn rename to 2d/platformer/enemy/Enemy.tscn index b525e045..acc922f8 100644 --- a/2d/platformer/enemy.tscn +++ b/2d/platformer/enemy/Enemy.tscn @@ -1,22 +1,21 @@ [gd_scene load_steps=13 format=2] -[ext_resource path="res://enemy.gd" type="Script" id=1] -[ext_resource path="res://enemy.png" type="Texture" id=2] -[ext_resource path="res://bullet.png" type="Texture" id=3] -[ext_resource path="res://sound_hit.wav" type="AudioStream" id=4] -[ext_resource path="res://sound_explode.wav" type="AudioStream" id=5] +[ext_resource path="res://enemy/enemy.gd" type="Script" id=1] +[ext_resource path="res://enemy/enemy.png" type="Texture" id=2] +[ext_resource path="res://player/bullet.png" type="Texture" id=3] +[ext_resource path="res://audio/sound_hit.wav" type="AudioStream" id=4] +[ext_resource path="res://audio/sound_explode.wav" type="AudioStream" id=5] [sub_resource type="Animation" id=1] - resource_name = "explode" length = 5.0 -loop = false step = 0.0 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -24,10 +23,11 @@ tracks/0/keys = { "values": [ 0 ] } tracks/1/type = "value" -tracks/1/path = NodePath("sprite:rotation_degrees") +tracks/1/path = NodePath("Sprite:rotation_degrees") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false +tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0, 3.2 ), "transitions": PoolRealArray( 0.5, 1 ), @@ -35,10 +35,11 @@ tracks/1/keys = { "values": [ 0.0, 180.0 ] } tracks/2/type = "value" -tracks/2/path = NodePath("sprite:self_modulate") +tracks/2/path = NodePath("Sprite:self_modulate") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false +tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 2.6, 3.4 ), "transitions": PoolRealArray( 1, 1 ), @@ -46,10 +47,11 @@ tracks/2/keys = { "values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] } tracks/3/type = "value" -tracks/3/path = NodePath("explosion:emitting") +tracks/3/path = NodePath("Explosion:emitting") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/imported = false +tracks/3/enabled = true tracks/3/keys = { "times": PoolRealArray( 0, 2.8 ), "transitions": PoolRealArray( 1, 1 ), @@ -57,10 +59,11 @@ tracks/3/keys = { "values": [ false, true ] } tracks/4/type = "value" -tracks/4/path = NodePath("explosion:process_material:scale") +tracks/4/path = NodePath("Explosion:process_material:scale") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false +tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 2.8, 3.4 ), "transitions": PoolRealArray( 1, 1 ), @@ -68,10 +71,11 @@ tracks/4/keys = { "values": [ 1.0, 4.0 ] } tracks/5/type = "value" -tracks/5/path = NodePath("sound_hit:playing") +tracks/5/path = NodePath("SoundHit:playing") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/imported = false +tracks/5/enabled = true tracks/5/keys = { "times": PoolRealArray( 0.00999999 ), "transitions": PoolRealArray( 1 ), @@ -79,10 +83,11 @@ tracks/5/keys = { "values": [ true ] } tracks/6/type = "value" -tracks/6/path = NodePath("sound_explode:playing") +tracks/6/path = NodePath("SoundExplode:playing") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/imported = false +tracks/6/enabled = true tracks/6/keys = { "times": PoolRealArray( 2.9 ), "transitions": PoolRealArray( 1 ), @@ -94,6 +99,7 @@ tracks/7/path = NodePath(".") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/imported = false +tracks/7/enabled = true tracks/7/keys = { "times": PoolRealArray( 4.2 ), "transitions": PoolRealArray( 1 ), @@ -104,15 +110,15 @@ tracks/7/keys = { } [sub_resource type="Animation" id=2] - length = 6.75 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), @@ -121,16 +127,16 @@ tracks/0/keys = { } [sub_resource type="Animation" id=3] - resource_name = "walk" length = 1.25 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), @@ -140,190 +146,81 @@ tracks/0/keys = { [sub_resource type="CanvasItemMaterial" id=4] -render_priority = 0 -blend_mode = 0 -light_mode = 0 - [sub_resource type="CapsuleShape2D" id=5] - -custom_solver_bias = 0.0 radius = 13.4556 height = 14.2002 [sub_resource type="CanvasItemMaterial" id=6] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="ParticlesMaterial" id=7] - -render_priority = 0 -trail_divisor = 1 -emission_shape = 0 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 180.0 -flatness = 0.0 gravity = Vector3( 0, 98, 0 ) -initial_velocity = 90.0 -initial_velocity_random = 0.0 -angular_velocity = 2.0 -angular_velocity_random = 1.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 -scale = 1.0 -scale_random = 0.0 -color = Color( 0.929688, 0.488931, 0.0617371, 1 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 1.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Angle", "Angular Velocity", "Animation", "Color", "Damping", "Emission Shape", "Flags", "Gravity", "Hue Variation", "Initial Velocity", "Linear Accel", "Orbit Velocity", "Radial Accel", "Scale", "Spread", "Tangential Accel" ] -[node name="enemy" type="KinematicBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 +[node name="Enemy" type="KinematicBody2D"] script = ExtResource( 1 ) -_sections_unfolded = [ "Collision", "Pickable", "Transform", "Z", "collision" ] - -[node name="enabler" type="VisibilityEnabler2D" parent="."] +[node name="Enabler" type="VisibilityEnabler2D" parent="."] position = Vector2( 16.2569, 11.0034 ) scale = Vector2( 23.5056, 10.8629 ) -rect = Rect2( -10, -10, 20, 20 ) -pause_animations = true -freeze_bodies = true pause_particles = false -pause_animated_sprites = true -process_parent = false -physics_process_parent = false -[node name="anim" type="AnimationPlayer" parent="."] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +[node name="Anim" type="AnimationPlayer" parent="."] anims/explode = SubResource( 1 ) anims/idle = SubResource( 2 ) anims/walk = SubResource( 3 ) -playback/active = true -playback/speed = 3.0 -blend_times = [ ] -autoplay = "" -_sections_unfolded = [ "Playback Options", "playback" ] - -[node name="sprite" type="Sprite" parent="."] +[node name="Sprite" type="Sprite" parent="."] material = SubResource( 4 ) texture = ExtResource( 2 ) flip_h = true hframes = 8 -_sections_unfolded = [ "Animation", "Material", "Region", "Transform", "Visibility" ] [node name="CollisionShape2D" type="CollisionShape2D" parent="."] - position = Vector2( -0.00525069, -0.727495 ) rotation = -1.5708 shape = SubResource( 5 ) -[node name="detect_floor_left" type="RayCast2D" parent="."] - +[node name="DetectFloorLeft" type="RayCast2D" parent="."] position = Vector2( -33.2868, -9.34363 ) enabled = true -exclude_parent = true cast_to = Vector2( 0, 45 ) -collision_mask = 1 -type_mask = 15 - -[node name="detect_wall_left" type="RayCast2D" parent="."] +[node name="DetectWallLeft" type="RayCast2D" parent="."] position = Vector2( -12.1361, -0.739977 ) rotation = 1.5708 enabled = true -exclude_parent = true cast_to = Vector2( 0, 20 ) -collision_mask = 1 -type_mask = 15 - -[node name="detect_wall_right" type="RayCast2D" parent="."] +[node name="DetectWallRight" type="RayCast2D" parent="."] position = Vector2( 3.2788, -0.381488 ) rotation = -1.5708 enabled = true -exclude_parent = true cast_to = Vector2( 0, 20 ) -collision_mask = 1 -type_mask = 15 - -[node name="detect_floor_right" type="RayCast2D" parent="."] +[node name="DetectFloorRight" type="RayCast2D" parent="."] position = Vector2( 29.1987, -9.34363 ) enabled = true -exclude_parent = true cast_to = Vector2( 0, 45 ) -collision_mask = 1 -type_mask = 15 - -[node name="explosion" type="Particles2D" parent="."] +[node name="Explosion" type="Particles2D" parent="."] self_modulate = Color( 1, 1, 1, 0.12 ) material = SubResource( 6 ) emitting = false amount = 32 lifetime = 0.5 one_shot = true -preprocess = 0.0 speed_scale = 1.2 explosiveness = 0.1 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = true draw_order = 215832976 process_material = SubResource( 7 ) texture = ExtResource( 3 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Drawing", "Material", "Process Material", "Textures", "Time", "Visibility" ] - -[node name="sound_hit" type="AudioStreamPlayer2D" parent="."] +[node name="SoundHit" type="AudioStreamPlayer2D" parent="."] stream = ExtResource( 4 ) -volume_db = 0.0 -autoplay = false -max_distance = 2000.0 -attenuation = 1.0 -bus = "Master" -area_mask = 1 - -[node name="sound_explode" type="AudioStreamPlayer2D" parent="."] +[node name="SoundExplode" type="AudioStreamPlayer2D" parent="."] stream = ExtResource( 5 ) -volume_db = 0.0 -autoplay = false -max_distance = 2000.0 -attenuation = 1.0 -bus = "Master" -area_mask = 1 - diff --git a/2d/platformer/enemy.gd b/2d/platformer/enemy/enemy.gd similarity index 56% rename from 2d/platformer/enemy.gd rename to 2d/platformer/enemy/enemy.gd index 555393ef..05d2916d 100644 --- a/2d/platformer/enemy.gd +++ b/2d/platformer/enemy/enemy.gd @@ -1,37 +1,40 @@ extends KinematicBody2D +class_name Enemy + const GRAVITY_VEC = Vector2(0, 900) const FLOOR_NORMAL = Vector2(0, -1) -const WALK_SPEED = 70 const STATE_WALKING = 0 const STATE_KILLED = 1 +const WALK_SPEED = 70 var linear_velocity = Vector2() var direction = -1 -var anim="" +var anim = "" +# state machine var state = STATE_WALKING -onready var detect_floor_left = $detect_floor_left -onready var detect_wall_left = $detect_wall_left -onready var detect_floor_right = $detect_floor_right -onready var detect_wall_right = $detect_wall_right -onready var sprite = $sprite +onready var DetectFloorLeft = $DetectFloorLeft +onready var DetectWallLeft = $DetectWallLeft +onready var DetectFloorRight = $DetectFloorRight +onready var DetectWallRight = $DetectWallRight +onready var sprite = $Sprite func _physics_process(delta): var new_anim = "idle" - if state==STATE_WALKING: + if state == STATE_WALKING: linear_velocity += GRAVITY_VEC * delta linear_velocity.x = direction * WALK_SPEED linear_velocity = move_and_slide(linear_velocity, FLOOR_NORMAL) - if not detect_floor_left.is_colliding() or detect_wall_left.is_colliding(): + if not DetectFloorLeft.is_colliding() or DetectWallLeft.is_colliding(): direction = 1.0 - if not detect_floor_right.is_colliding() or detect_wall_right.is_colliding(): + if not DetectFloorRight.is_colliding() or DetectWallRight.is_colliding(): direction = -1.0 sprite.scale = Vector2(direction, 1.0) @@ -39,11 +42,9 @@ func _physics_process(delta): else: new_anim = "explode" - if anim != new_anim: anim = new_anim - $anim.play(anim) - + ($Anim as AnimationPlayer).play(anim) func hit_by_bullet(): state = STATE_KILLED diff --git a/2d/platformer/enemy.png b/2d/platformer/enemy/enemy.png similarity index 100% rename from 2d/platformer/enemy.png rename to 2d/platformer/enemy/enemy.png diff --git a/2d/platformer/enemy.png.import b/2d/platformer/enemy/enemy.png.import similarity index 59% rename from 2d/platformer/enemy.png.import rename to 2d/platformer/enemy/enemy.png.import index d33324fd..a7c3f0b9 100644 --- a/2d/platformer/enemy.png.import +++ b/2d/platformer/enemy/enemy.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/enemy.png-f7d9f81714867a24a08e299bb600e611.stex" +path="res://.import/enemy.png-1891d9038eeed672a2459bc4e7db5910.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://enemy.png" -source_md5="42bb3a8005fffb91c993fbb55e798d1d" - -dest_files=[ "res://.import/enemy.png-f7d9f81714867a24a08e299bb600e611.stex" ] -dest_md5="b5dd9d2c4c2d679d2fd9cc6bd60db4a2" +source_file="res://enemy/enemy.png" +dest_files=[ "res://.import/enemy.png-1891d9038eeed672a2459bc4e7db5910.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 @@ -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 diff --git a/2d/platformer/icon.png.import b/2d/platformer/icon.png.import index a21f1523..c16cdbaf 100644 --- a/2d/platformer/icon.png.import +++ b/2d/platformer/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="059cf00427ccbf40878c582845360337" - dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] -dest_md5="41a62e78fba2a38eac650b96d4963e54" [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=false diff --git a/2d/platformer/moving_platform.tscn b/2d/platformer/moving_platform.tscn deleted file mode 100644 index 047289b4..00000000 --- a/2d/platformer/moving_platform.tscn +++ /dev/null @@ -1,28 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://moving_platform.gd" type="Script" id=1] -[ext_resource path="res://moving_platform.png" type="Texture" id=2] - -[node name="moving_platform" type="Node2D"] - -script = ExtResource( 1 ) -motion = Vector2( 0, 0 ) -cycle = 1.0 - -[node name="platform" type="KinematicBody2D" parent="."] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 - -[node name="Sprite" type="Sprite" parent="platform"] - -texture = ExtResource( 2 ) - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="platform"] - -build_mode = 0 -polygon = PoolVector2Array( -88, -24, 88, -24, 88, 24, -88, 24 ) - - diff --git a/2d/platformer/music.ogg.import b/2d/platformer/music.ogg.import deleted file mode 100644 index ba872894..00000000 --- a/2d/platformer/music.ogg.import +++ /dev/null @@ -1,18 +0,0 @@ -[remap] - -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.import/music.ogg-3bd46d3a4b41702b152014078d12a390.oggstr" - -[deps] - -source_file="res://music.ogg" -source_md5="ac01d521c92ce9d01cf09826bd3addbf" - -dest_files=[ "res://.import/music.ogg-3bd46d3a4b41702b152014078d12a390.oggstr" ] -dest_md5="8f49ec9ebb932a81e74cb040e2a26d5f" - -[params] - -loop=true -loop_offset=0 diff --git a/2d/platformer/one_way_platform.tscn b/2d/platformer/one_way_platform.tscn deleted file mode 100644 index af66db05..00000000 --- a/2d/platformer/one_way_platform.tscn +++ /dev/null @@ -1,30 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://one_way_platform.png" type="Texture" id=1] - -[sub_resource type="RectangleShape2D" id=1] - -custom_solver_bias = 0.0 -extents = Vector2( 100, 10 ) - -[node name="one_way_platform" type="StaticBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -constant_linear_velocity = Vector2( 0, 0 ) -constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 - -[node name="sprite" type="Sprite" parent="."] - -texture = ExtResource( 1 ) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] - -position = Vector2( 1.46304, -13.1672 ) -shape = SubResource( 1 ) -one_way_collision = true - - diff --git a/2d/platformer/osb_right.png.import b/2d/platformer/osb_right.png.import deleted file mode 100644 index 58830001..00000000 --- a/2d/platformer/osb_right.png.import +++ /dev/null @@ -1,32 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/osb_right.png-5cf5add2dbc1c8dde17173ac56f3a004.stex" - -[deps] - -source_file="res://osb_right.png" -source_md5="860560d5e66ccd837973fbbde7eb958f" - -dest_files=[ "res://.import/osb_right.png-5cf5add2dbc1c8dde17173ac56f3a004.stex" ] -dest_md5="53dbe913ca4af3c548217038b3b6b7de" - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=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 -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/2d/platformer/parallax_bg.tscn b/2d/platformer/parallax_bg.tscn deleted file mode 100644 index 1abfc042..00000000 --- a/2d/platformer/parallax_bg.tscn +++ /dev/null @@ -1,105 +0,0 @@ -[gd_scene load_steps=7 format=2] - -[ext_resource path="res://scroll_bg_sky.png" type="Texture" id=1] -[ext_resource path="res://scroll_bg_cloud_1.png" type="Texture" id=2] -[ext_resource path="res://scroll_bg_cloud_2.png" type="Texture" id=3] -[ext_resource path="res://scroll_bg_cloud_3.png" type="Texture" id=4] -[ext_resource path="res://scroll_bg_fg_2.png" type="Texture" id=5] -[ext_resource path="res://scroll_bg_fg_1.png" type="Texture" id=6] - -[node name="parallax_bg" type="ParallaxBackground"] - -layer = -1 -offset = Vector2( 0, 0 ) -rotation = 0.0 -scale = Vector2( 1, 1 ) -scroll_offset = Vector2( 0, 0 ) -scroll_base_offset = Vector2( 0, 0 ) -scroll_base_scale = Vector2( 0.7, 0 ) -scroll_limit_begin = Vector2( 0, 0 ) -scroll_limit_end = Vector2( 0, 0 ) -scroll_ignore_camera_zoom = false - -[node name="sky" type="ParallaxLayer" parent="."] - -motion_scale = Vector2( 1, 1 ) -motion_offset = Vector2( 0, 0 ) -motion_mirroring = Vector2( 800, 0 ) - -[node name="Sprite" type="Sprite" parent="sky"] - -scale = Vector2( 32, 0.94 ) -texture = ExtResource( 1 ) -centered = false - -[node name="clouds" type="ParallaxLayer" parent="."] - -motion_scale = Vector2( 0.1, 1 ) -motion_offset = Vector2( 0, 0 ) -motion_mirroring = Vector2( 800, 0 ) - -[node name="Sprite" type="Sprite" parent="clouds"] - -position = Vector2( 28, 127 ) -texture = ExtResource( 2 ) -centered = false - -[node name="Sprite 2" type="Sprite" parent="clouds"] - -position = Vector2( 404, 24 ) -texture = ExtResource( 2 ) -centered = false - -[node name="Sprite 3" type="Sprite" parent="clouds"] - -position = Vector2( 154, 46 ) -texture = ExtResource( 3 ) -centered = false - -[node name="Sprite 4" type="Sprite" parent="clouds"] - -position = Vector2( 525, 130 ) -texture = ExtResource( 3 ) -centered = false - -[node name="Sprite 5" type="Sprite" parent="clouds"] - -position = Vector2( 255, 158 ) -texture = ExtResource( 4 ) -centered = false - -[node name="Sprite 6" type="Sprite" parent="clouds"] - -position = Vector2( 674, 70 ) -texture = ExtResource( 4 ) -centered = false - -[node name="mount_ 2" type="ParallaxLayer" parent="."] - -motion_scale = Vector2( 0.2, 1 ) -motion_offset = Vector2( 0, 0 ) -motion_mirroring = Vector2( 800, 0 ) - -[node name="Sprite" type="Sprite" parent="mount_ 2"] - -position = Vector2( 0, 225 ) -texture = ExtResource( 5 ) -centered = false -region_enabled = true -region_rect = Rect2( 0, 0, 800, 256 ) - -[node name="mount_1" type="ParallaxLayer" parent="."] - -motion_scale = Vector2( 0.4, 1 ) -motion_offset = Vector2( 0, 0 ) -motion_mirroring = Vector2( 800, 0 ) - -[node name="Sprite" type="Sprite" parent="mount_1"] - -position = Vector2( 0, 225 ) -texture = ExtResource( 6 ) -centered = false -region_enabled = true -region_rect = Rect2( 0, 0, 800, 256 ) - - diff --git a/2d/platformer/platform/MovingPlatform.tscn b/2d/platformer/platform/MovingPlatform.tscn new file mode 100644 index 00000000..55ecf8b7 --- /dev/null +++ b/2d/platformer/platform/MovingPlatform.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://platform/moving_platform.gd" type="Script" id=1] +[ext_resource path="res://platform/moving_platform.png" type="Texture" id=2] + +[node name="MovingPlatform" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Platform" type="KinematicBody2D" parent="."] + +[node name="Sprite" type="Sprite" parent="Platform"] +texture = ExtResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Platform"] +polygon = PoolVector2Array( -88, -24, 88, -24, 88, 24, -88, 24 ) + diff --git a/2d/platformer/platform/OneWayPlatform.tscn b/2d/platformer/platform/OneWayPlatform.tscn new file mode 100644 index 00000000..268d3671 --- /dev/null +++ b/2d/platformer/platform/OneWayPlatform.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://platform/one_way_platform.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 100, 10 ) + +[node name="OneWayPlatform" type="StaticBody2D"] + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 1.46304, -13.1672 ) +shape = SubResource( 1 ) +one_way_collision = true + diff --git a/2d/platformer/moving_platform.gd b/2d/platformer/platform/moving_platform.gd similarity index 72% rename from 2d/platformer/moving_platform.gd rename to 2d/platformer/platform/moving_platform.gd index 73239625..efc0adc2 100644 --- a/2d/platformer/moving_platform.gd +++ b/2d/platformer/platform/moving_platform.gd @@ -1,15 +1,17 @@ extends Node2D +class_name MovingPlatform + + # Member variables export var motion = Vector2() export var cycle = 1.0 var accum = 0.0 - func _physics_process(delta): accum += delta * (1.0 / cycle) * PI * 2.0 accum = fmod(accum, PI * 2.0) var d = sin(accum) var xf = Transform2D() - xf[2]= motion * d - $platform.transform = xf + xf[2] = motion * d + ($Platform as KinematicBody2D).transform = xf diff --git a/2d/platformer/moving_platform.png b/2d/platformer/platform/moving_platform.png similarity index 100% rename from 2d/platformer/moving_platform.png rename to 2d/platformer/platform/moving_platform.png diff --git a/2d/platformer/moving_platform.png.import b/2d/platformer/platform/moving_platform.png.import similarity index 56% rename from 2d/platformer/moving_platform.png.import rename to 2d/platformer/platform/moving_platform.png.import index 6657fabd..a5175cf6 100644 --- a/2d/platformer/moving_platform.png.import +++ b/2d/platformer/platform/moving_platform.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/moving_platform.png-1ef2f9fd1684df90d6ad38a267c1201b.stex" +path="res://.import/moving_platform.png-7e92061cd93e8b0235df711d3782cd8c.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://moving_platform.png" -source_md5="5b9fb03128b6249a94e3af4976d65033" - -dest_files=[ "res://.import/moving_platform.png-1ef2f9fd1684df90d6ad38a267c1201b.stex" ] -dest_md5="1b8e7060e89b4f682cc0e5df69b74574" +source_file="res://platform/moving_platform.png" +dest_files=[ "res://.import/moving_platform.png-7e92061cd93e8b0235df711d3782cd8c.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 @@ -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 diff --git a/2d/platformer/one_way_platform.png b/2d/platformer/platform/one_way_platform.png similarity index 100% rename from 2d/platformer/one_way_platform.png rename to 2d/platformer/platform/one_way_platform.png diff --git a/2d/platformer/one_way_platform.png.import b/2d/platformer/platform/one_way_platform.png.import similarity index 56% rename from 2d/platformer/one_way_platform.png.import rename to 2d/platformer/platform/one_way_platform.png.import index 14c261c0..c71a2e0b 100644 --- a/2d/platformer/one_way_platform.png.import +++ b/2d/platformer/platform/one_way_platform.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/one_way_platform.png-af40161497fd0e8bfbc5d400c8bd650a.stex" +path="res://.import/one_way_platform.png-2865772e209813c1636a14aee8d019a3.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://one_way_platform.png" -source_md5="94d5d85de357d84b918ac588b8bd6a8d" - -dest_files=[ "res://.import/one_way_platform.png-af40161497fd0e8bfbc5d400c8bd650a.stex" ] -dest_md5="fc01b5aa5c5312405b6180a76d05200c" +source_file="res://platform/one_way_platform.png" +dest_files=[ "res://.import/one_way_platform.png-2865772e209813c1636a14aee8d019a3.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 @@ -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 diff --git a/2d/platformer/player/Bullet.tscn b/2d/platformer/player/Bullet.tscn new file mode 100644 index 00000000..06413a6f --- /dev/null +++ b/2d/platformer/player/Bullet.tscn @@ -0,0 +1,95 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://player/bullet.gd" type="Script" id=1] +[ext_resource path="res://player/bullet.png" type="Texture" id=2] + +[sub_resource type="CanvasItemMaterial" id=1] + +[sub_resource type="CanvasItemMaterial" id=2] +blend_mode = 1 + +[sub_resource type="ParticlesMaterial" id=3] +flag_disable_z = true +spread = 0.0 +gravity = Vector3( 0, 0, 0 ) +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +scale = 0.8 +color = Color( 1, 1, 1, 0.705882 ) + +[sub_resource type="CanvasItemMaterial" id=4] + +[sub_resource type="CircleShape2D" id=5] + +[sub_resource type="Animation" id=6] +length = 1.5 +tracks/0/type = "method" +tracks/0/path = NodePath(".") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 1.31 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:self_modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Particles2D:self_modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} + +[node name="Bullet" type="RigidBody2D"] +material = SubResource( 1 ) +continuous_cd = 2 +contacts_reported = 1 +contact_monitor = true +script = ExtResource( 1 ) + +[node name="Particles2D" type="Particles2D" parent="."] +material = SubResource( 2 ) +lifetime = 0.3 +speed_scale = 3.0 +local_coords = false +process_material = SubResource( 3 ) +texture = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +material = SubResource( 4 ) +texture = ExtResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 5 ) + +[node name="Timer" type="Timer" parent="."] +one_shot = true +autostart = true + +[node name="Anim" type="AnimationPlayer" parent="."] +anims/shutdown = SubResource( 6 ) + +[connection signal="body_entered" from="." to="." method="_on_bullet_body_enter"] +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/2d/platformer/player.tscn b/2d/platformer/player/Player.tscn similarity index 61% rename from 2d/platformer/player.tscn rename to 2d/platformer/player/Player.tscn index a999e3f8..fe41e5e6 100644 --- a/2d/platformer/player.tscn +++ b/2d/platformer/player/Player.tscn @@ -1,25 +1,25 @@ [gd_scene load_steps=20 format=2] -[ext_resource path="res://player.gd" type="Script" id=1] -[ext_resource path="res://robot_demo.png" type="Texture" id=2] -[ext_resource path="res://sound_jump.wav" type="AudioStream" id=3] -[ext_resource path="res://sound_shoot.wav" type="AudioStream" id=4] -[ext_resource path="res://osb_left.png" type="Texture" id=5] -[ext_resource path="res://osb_right.png" type="Texture" id=6] -[ext_resource path="res://osb_jump.png" type="Texture" id=7] -[ext_resource path="res://osb_fire.png" type="Texture" id=8] +[ext_resource path="res://player/player.gd" type="Script" id=1] +[ext_resource path="res://player/robot_demo.png" type="Texture" id=2] +[ext_resource path="res://audio/sound_jump.wav" type="AudioStream" id=3] +[ext_resource path="res://audio/sound_shoot.wav" type="AudioStream" id=4] +[ext_resource path="res://player/osb_left.png" type="Texture" id=5] +[ext_resource path="res://player/osb_right.png" type="Texture" id=6] +[ext_resource path="res://player/osb_jump.png" type="Texture" id=7] +[ext_resource path="res://player/osb_fire.png" type="Texture" id=8] [sub_resource type="Animation" id=1] - resource_name = "crouch" length = 0.01 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -28,16 +28,16 @@ tracks/0/keys = { } [sub_resource type="Animation" id=2] - resource_name = "falling" length = 0.01 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -46,16 +46,16 @@ tracks/0/keys = { } [sub_resource type="Animation" id=3] - resource_name = "falling_weapon" length = 0.5 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -64,15 +64,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=4] - length = 7.0 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ), @@ -81,15 +81,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=5] - length = 0.5 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -98,15 +98,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=6] - length = 0.5 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5 ), "transitions": PoolRealArray( 1, 1, 1 ), @@ -115,15 +115,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=7] - length = 0.5 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), @@ -132,15 +132,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=8] - length = 1.25 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), @@ -149,15 +149,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=9] - length = 1.25 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), @@ -166,15 +166,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=10] - length = 1.25 loop = true step = 0.25 tracks/0/type = "value" -tracks/0/path = NodePath("sprite:frame") +tracks/0/path = NodePath("Sprite:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), "transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), @@ -183,40 +183,25 @@ tracks/0/keys = { } [sub_resource type="CapsuleShape2D" id=11] - -custom_solver_bias = 0.0 -radius = 10.0 height = 44.4787 -[node name="player" type="KinematicBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 +[node name="Player" type="KinematicBody2D"] script = ExtResource( 1 ) -[node name="sprite" type="Sprite" parent="."] - +[node name="Sprite" type="Sprite" parent="."] texture = ExtResource( 2 ) vframes = 2 hframes = 16 frame = 22 -[node name="smoke" type="Node2D" parent="sprite"] - +[node name="Smoke" type="Node2D" parent="Sprite"] position = Vector2( 20.7312, 3.21187 ) rotation = -1.45648 -[node name="bullet_shoot" type="Position2D" parent="sprite"] - +[node name="BulletShoot" type="Position2D" parent="Sprite"] position = Vector2( 30.6589, 6.13176 ) -[node name="anim" type="AnimationPlayer" parent="."] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +[node name="Anim" type="AnimationPlayer" parent="."] anims/crouch = SubResource( 1 ) anims/falling = SubResource( 2 ) anims/falling_weapon = SubResource( 3 ) @@ -227,120 +212,52 @@ anims/jumping_weapon = SubResource( 7 ) anims/run = SubResource( 8 ) anims/run_weapon = SubResource( 9 ) anims/standing_weapon_ready = SubResource( 10 ) -playback/active = true -playback/speed = 2.0 -blend_times = [ ] -autoplay = "" -[node name="camera" type="Camera2D" parent="."] - -anchor_mode = 1 -rotating = false +[node name="Camera" type="Camera2D" parent="."] current = true -zoom = Vector2( 1, 1 ) limit_left = 0 limit_top = 0 -limit_right = 10000000 -limit_bottom = 10000000 -limit_smoothed = false -drag_margin_h_enabled = true -drag_margin_v_enabled = true -smoothing_enabled = false -smoothing_speed = 5.0 -drag_margin_left = 0.2 -drag_margin_top = 0.2 -drag_margin_right = 0.2 -drag_margin_bottom = 0.2 -editor_draw_screen = true -editor_draw_limits = false -editor_draw_drag_margin = false [node name="CollisionShape2D" type="CollisionShape2D" parent="."] - position = Vector2( 0.291992, -0.835023 ) shape = SubResource( 11 ) -[node name="sound_jump" type="AudioStreamPlayer2D" parent="."] - +[node name="SoundJump" type="AudioStreamPlayer2D" parent="."] stream = ExtResource( 3 ) -volume_db = 0.0 -autoplay = false -max_distance = 2000.0 -attenuation = 1.0 -bus = "Master" -area_mask = 1 - -[node name="sound_shoot" type="AudioStreamPlayer2D" parent="."] +[node name="SoundShoot" type="AudioStreamPlayer2D" parent="."] stream = ExtResource( 4 ) -volume_db = 0.0 -autoplay = false -max_distance = 2000.0 -attenuation = 1.0 -bus = "Master" -area_mask = 1 - -[node name="ui" type="CanvasLayer" parent="."] +[node name="UI" type="CanvasLayer" parent="."] layer = 0 -offset = Vector2( 0, 0 ) -rotation = 0.0 -scale = Vector2( 1, 1 ) - -[node name="left" type="TouchScreenButton" parent="ui"] +[node name="Left" type="TouchScreenButton" parent="UI"] position = Vector2( 27.7593, 360.87 ) scale = Vector2( 1.49157, 1.46265 ) normal = ExtResource( 5 ) -pressed = null -bitmask = null -shape = null -shape_centered = true -shape_visible = true passby_press = true action = "move_left" visibility_mode = 1 -[node name="right" type="TouchScreenButton" parent="ui"] - +[node name="Right" type="TouchScreenButton" parent="UI"] position = Vector2( 121.542, 361.415 ) scale = Vector2( 1.49157, 1.46265 ) normal = ExtResource( 6 ) -pressed = null -bitmask = null -shape = null -shape_centered = true -shape_visible = true passby_press = true action = "move_right" visibility_mode = 1 -[node name="jump" type="TouchScreenButton" parent="ui"] - +[node name="Jump" type="TouchScreenButton" parent="UI"] position = Vector2( 666.224, 359.02 ) scale = Vector2( 1.49157, 1.46265 ) normal = ExtResource( 7 ) -pressed = null -bitmask = null -shape = null -shape_centered = true -shape_visible = true -passby_press = false action = "jump" visibility_mode = 1 -[node name="fire" type="TouchScreenButton" parent="ui"] - +[node name="Fire" type="TouchScreenButton" parent="UI"] position = Vector2( 668.073, 262.788 ) scale = Vector2( 1.49157, 1.46265 ) normal = ExtResource( 8 ) -pressed = null -bitmask = null -shape = null -shape_centered = true -shape_visible = true -passby_press = false action = "shoot" visibility_mode = 1 - diff --git a/2d/platformer/bullet.gd b/2d/platformer/player/bullet.gd similarity index 53% rename from 2d/platformer/bullet.gd rename to 2d/platformer/player/bullet.gd index 778cd2f6..49708fbc 100644 --- a/2d/platformer/bullet.gd +++ b/2d/platformer/player/bullet.gd @@ -1,8 +1,11 @@ extends RigidBody2D -func _on_bullet_body_enter( body ): +class_name Bullet + + +func _on_bullet_body_enter(body): if body.has_method("hit_by_bullet"): body.call("hit_by_bullet") func _on_Timer_timeout(): - $anim.play("shutdown") + ($Anim as AnimationPlayer).play("shutdown") diff --git a/2d/platformer/bullet.png b/2d/platformer/player/bullet.png similarity index 100% rename from 2d/platformer/bullet.png rename to 2d/platformer/player/bullet.png diff --git a/2d/platformer/bullet.png.import b/2d/platformer/player/bullet.png.import similarity index 59% rename from 2d/platformer/bullet.png.import rename to 2d/platformer/player/bullet.png.import index aa538bd7..fef2f363 100644 --- a/2d/platformer/bullet.png.import +++ b/2d/platformer/player/bullet.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/bullet.png-ff1424653e10246c11e3724e402c519e.stex" +path="res://.import/bullet.png-5615cb9904aab8db60fe6f48e996475f.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://bullet.png" -source_md5="9fe43d82e09598fc96be75bcf60df249" - -dest_files=[ "res://.import/bullet.png-ff1424653e10246c11e3724e402c519e.stex" ] -dest_md5="441db1f0cf2701a43ee3ec6fcf10fc41" +source_file="res://player/bullet.png" +dest_files=[ "res://.import/bullet.png-5615cb9904aab8db60fe6f48e996475f.stex" ] [params] compress/mode=3 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=2 flags/repeat=0 flags/filter=true @@ -26,6 +27,7 @@ flags/srgb=0 process/fix_alpha_border=false process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=false diff --git a/2d/platformer/osb_fire.png b/2d/platformer/player/osb_fire.png similarity index 100% rename from 2d/platformer/osb_fire.png rename to 2d/platformer/player/osb_fire.png diff --git a/2d/platformer/osb_left.png.import b/2d/platformer/player/osb_fire.png.import similarity index 59% rename from 2d/platformer/osb_left.png.import rename to 2d/platformer/player/osb_fire.png.import index 8fb8dc07..8dc16ac3 100644 --- a/2d/platformer/osb_left.png.import +++ b/2d/platformer/player/osb_fire.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/osb_left.png-fc7230aeb0eec74933ed08f89b893288.stex" +path="res://.import/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://osb_left.png" -source_md5="ce066828ec6ef27c9ce3809341574058" - -dest_files=[ "res://.import/osb_left.png-fc7230aeb0eec74933ed08f89b893288.stex" ] -dest_md5="f1204f132a121270977d3db6b3833c2e" +source_file="res://player/osb_fire.png" +dest_files=[ "res://.import/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8.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 @@ -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 diff --git a/2d/platformer/osb_jump.png b/2d/platformer/player/osb_jump.png similarity index 100% rename from 2d/platformer/osb_jump.png rename to 2d/platformer/player/osb_jump.png diff --git a/2d/platformer/osb_jump.png.import b/2d/platformer/player/osb_jump.png.import similarity index 58% rename from 2d/platformer/osb_jump.png.import rename to 2d/platformer/player/osb_jump.png.import index ca68eba1..14db95e3 100644 --- a/2d/platformer/osb_jump.png.import +++ b/2d/platformer/player/osb_jump.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/osb_jump.png-dbbef3b47abbb562ce6c81a9701121c6.stex" +path="res://.import/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://osb_jump.png" -source_md5="ac3e3adf52903de07cff73354f63896c" - -dest_files=[ "res://.import/osb_jump.png-dbbef3b47abbb562ce6c81a9701121c6.stex" ] -dest_md5="dadb0fd2527ced2e0592b8d84687d463" +source_file="res://player/osb_jump.png" +dest_files=[ "res://.import/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed.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 @@ -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 diff --git a/2d/platformer/osb_left.png b/2d/platformer/player/osb_left.png similarity index 100% rename from 2d/platformer/osb_left.png rename to 2d/platformer/player/osb_left.png diff --git a/2d/platformer/player/osb_left.png.import b/2d/platformer/player/osb_left.png.import new file mode 100644 index 00000000..02a50bd1 --- /dev/null +++ b/2d/platformer/player/osb_left.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/osb_left.png-95ec3a371455889d592aa8cae0a755bc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://player/osb_left.png" +dest_files=[ "res://.import/osb_left.png-95ec3a371455889d592aa8cae0a755bc.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/2d/platformer/osb_right.png b/2d/platformer/player/osb_right.png similarity index 100% rename from 2d/platformer/osb_right.png rename to 2d/platformer/player/osb_right.png diff --git a/2d/platformer/osb_fire.png.import b/2d/platformer/player/osb_right.png.import similarity index 57% rename from 2d/platformer/osb_fire.png.import rename to 2d/platformer/player/osb_right.png.import index 270a4ee7..35a3522c 100644 --- a/2d/platformer/osb_fire.png.import +++ b/2d/platformer/player/osb_right.png.import @@ -2,21 +2,22 @@ importer="texture" type="StreamTexture" -path="res://.import/osb_fire.png-e657a73546eb75918e9d9a3fea15cf70.stex" +path="res://.import/osb_right.png-db9bb4651315f3d42b87bd17a86cce76.stex" +metadata={ +"vram_texture": false +} [deps] -source_file="res://osb_fire.png" -source_md5="99a276197ee76a83312af783f33f0ab3" - -dest_files=[ "res://.import/osb_fire.png-e657a73546eb75918e9d9a3fea15cf70.stex" ] -dest_md5="6a322e882c9dc02ebfaa6f88e228f6fe" +source_file="res://player/osb_right.png" +dest_files=[ "res://.import/osb_right.png-db9bb4651315f3d42b87bd17a86cce76.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 @@ -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 diff --git a/2d/platformer/player.gd b/2d/platformer/player/player.gd similarity index 85% rename from 2d/platformer/player.gd rename to 2d/platformer/player/player.gd index 3d6b5f32..681f6573 100644 --- a/2d/platformer/player.gd +++ b/2d/platformer/player/player.gd @@ -1,5 +1,8 @@ extends KinematicBody2D +class_name Player + + const GRAVITY_VEC = Vector2(0, 900) const FLOOR_NORMAL = Vector2(0, -1) const SLOPE_SLIDE_STOP = 25.0 @@ -10,13 +13,15 @@ const BULLET_VELOCITY = 1000 const SHOOT_TIME_SHOW_WEAPON = 0.2 var linear_vel = Vector2() -var on_floor = false var shoot_time = 99999 # time since last shot var anim = "" # cache the sprite here for fast access (we will set scale to flip it often) -onready var sprite = $sprite +onready var sprite = $Sprite +# cache bullet for fast access +var Bullet = preload("res://player/Bullet.tscn") + func _physics_process(delta): # Increment counters @@ -46,16 +51,16 @@ func _physics_process(delta): # Jumping if on_floor and Input.is_action_just_pressed("jump"): linear_vel.y = -JUMP_SPEED - $sound_jump.play() + ($SoundJump as AudioStreamPlayer2D).play() # Shooting if Input.is_action_just_pressed("shoot"): - var bullet = preload("res://bullet.tscn").instance() - bullet.position = $sprite/bullet_shoot.global_position # use node for shoot position + var bullet = Bullet.instance() + bullet.position = ($Sprite/BulletShoot as Position2D).global_position # use node for shoot position bullet.linear_velocity = Vector2(sprite.scale.x * BULLET_VELOCITY, 0) bullet.add_collision_exception_with(self) # don't want player to collide with bullet get_parent().add_child(bullet) # don't want bullet to move with me, so add it as child of parent - $sound_shoot.play() + ($SoundShoot as AudioStreamPlayer2D).play() shoot_time = 0 ### ANIMATION ### @@ -89,4 +94,4 @@ func _physics_process(delta): if new_anim != anim: anim = new_anim - $anim.play(anim) + ($Anim as AnimationPlayer).play(anim) diff --git a/2d/platformer/robot_demo.png b/2d/platformer/player/robot_demo.png similarity index 100% rename from 2d/platformer/robot_demo.png rename to 2d/platformer/player/robot_demo.png diff --git a/2d/platformer/player/robot_demo.png.import b/2d/platformer/player/robot_demo.png.import new file mode 100644 index 00000000..5b984fa0 --- /dev/null +++ b/2d/platformer/player/robot_demo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://player/robot_demo.png" +dest_files=[ "res://.import/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.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/2d/platformer/project.godot b/2d/platformer/project.godot index b674bb0c..8ee9fc00 100644 --- a/2d/platformer/project.godot +++ b/2d/platformer/project.godot @@ -6,20 +6,63 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ { +"base": "RigidBody2D", +"class": "Bullet", +"language": "GDScript", +"path": "res://player/bullet.gd" +}, { +"base": "Area2D", +"class": "Coin", +"language": "GDScript", +"path": "res://coin/coin.gd" +}, { +"base": "KinematicBody2D", +"class": "Enemy", +"language": "GDScript", +"path": "res://enemy/enemy.gd" +}, { +"base": "Node2D", +"class": "MovingPlatform", +"language": "GDScript", +"path": "res://platform/moving_platform.gd" +}, { +"base": "KinematicBody2D", +"class": "Player", +"language": "GDScript", +"path": "res://player/player.gd" +} ] +_global_script_class_icons={ +"Bullet": "", +"Coin": "", +"Enemy": "", +"MovingPlatform": "", +"Player": "" +} [application] config/name="Platformer 2D" -run/main_scene="res://stage.tscn" +run/main_scene="res://Stage.tscn" config/icon="res://icon.png" target_fps="60" +[debug] + +gdscript/completion/autocomplete_setters_and_getters=true +gdscript/warnings/unsafe_property_access=true +gdscript/warnings/unsafe_method_access=true +gdscript/warnings/unsafe_cast=true +gdscript/warnings/unsafe_call_argument=true + [display] window/size/width=800 window/size/height=480 window/stretch/mode="2d" +window/stretch/aspect="keep" stretch/aspect="keep_height" stretch/mode="2d" @@ -33,22 +76,37 @@ repeat=false [input] -jump=[ 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) +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":16777232,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] -move_left=[ 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) +} +move_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) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] -move_right=[ 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) +} +move_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) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] -shoot=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +} +shoot={ +"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":32,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) ] -spawn=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777244,"unicode":0,"echo":false,"script":null) +} +spawn={ +"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":16777244,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] +} [physics] @@ -62,6 +120,15 @@ use_pixel_snap=true mipmap_policy=1 +[rendering] + +quality/intended_usage/framebuffer_allocation=0 +quality/intended_usage/framebuffer_allocation.mobile=1 +quality/filters/anisotropic_filter_level=2 +quality/filters/use_nearest_mipmap_filter=true +quality/voxel_cone_tracing/high_quality=false +quality/depth/hdr=false + [texture_import] filter=false diff --git a/2d/platformer/robot_demo.png.import b/2d/platformer/robot_demo.png.import deleted file mode 100644 index 88b0cea3..00000000 --- a/2d/platformer/robot_demo.png.import +++ /dev/null @@ -1,32 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/robot_demo.png-8502817e0037b3f31eaca3dae49dcfc5.stex" - -[deps] - -source_file="res://robot_demo.png" -source_md5="2a19cb85548217b26700914bd42617b4" - -dest_files=[ "res://.import/robot_demo.png-8502817e0037b3f31eaca3dae49dcfc5.stex" ] -dest_md5="070eb843a3e7fbd77ae02e22a0190c54" - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=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 -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/2d/platformer/sound_coin.wav.import b/2d/platformer/sound_coin.wav.import deleted file mode 100644 index c1349d91..00000000 --- a/2d/platformer/sound_coin.wav.import +++ /dev/null @@ -1,24 +0,0 @@ -[remap] - -importer="wav" -type="AudioStreamSample" -path="res://.import/sound_coin.wav-b4defacd1a1eab95585c7b5095506878.sample" - -[deps] - -source_file="res://sound_coin.wav" -source_md5="c9b8b4e85a53ce0e7add721a872d0479" - -dest_files=[ "res://.import/sound_coin.wav-b4defacd1a1eab95585c7b5095506878.sample" ] -dest_md5="bc48ea50ea226e68d159c771a7b6c318" - -[params] - -force/8_bit=false -force/mono=false -force/max_rate=false -force/max_rate_hz=44100 -edit/trim=true -edit/normalize=true -edit/loop=false -compress/mode=0 diff --git a/2d/platformer/sound_explode.wav.import b/2d/platformer/sound_explode.wav.import deleted file mode 100644 index c90dc1e4..00000000 --- a/2d/platformer/sound_explode.wav.import +++ /dev/null @@ -1,24 +0,0 @@ -[remap] - -importer="wav" -type="AudioStreamSample" -path="res://.import/sound_explode.wav-23e94be75a4346bffb517c7e07035977.sample" - -[deps] - -source_file="res://sound_explode.wav" -source_md5="c49bffd6268c2fb061a578c559fbd988" - -dest_files=[ "res://.import/sound_explode.wav-23e94be75a4346bffb517c7e07035977.sample" ] -dest_md5="f1c1ea6486e70e5f621672683eea6d33" - -[params] - -force/8_bit=false -force/mono=false -force/max_rate=false -force/max_rate_hz=44100 -edit/trim=true -edit/normalize=true -edit/loop=false -compress/mode=0 diff --git a/2d/platformer/sound_hit.wav.import b/2d/platformer/sound_hit.wav.import deleted file mode 100644 index 949b0a61..00000000 --- a/2d/platformer/sound_hit.wav.import +++ /dev/null @@ -1,24 +0,0 @@ -[remap] - -importer="wav" -type="AudioStreamSample" -path="res://.import/sound_hit.wav-d8455980ada2d4a9a73508948d7317cc.sample" - -[deps] - -source_file="res://sound_hit.wav" -source_md5="ce60125d5b1639a3b88d652aea6ca0c3" - -dest_files=[ "res://.import/sound_hit.wav-d8455980ada2d4a9a73508948d7317cc.sample" ] -dest_md5="9314e087578e39441eed950ef19f066a" - -[params] - -force/8_bit=false -force/mono=false -force/max_rate=false -force/max_rate_hz=44100 -edit/trim=true -edit/normalize=true -edit/loop=false -compress/mode=0 diff --git a/2d/platformer/sound_jump.wav.import b/2d/platformer/sound_jump.wav.import deleted file mode 100644 index dd7c2e4a..00000000 --- a/2d/platformer/sound_jump.wav.import +++ /dev/null @@ -1,24 +0,0 @@ -[remap] - -importer="wav" -type="AudioStreamSample" -path="res://.import/sound_jump.wav-4966d1f327e26a176b56ab335c03b5e1.sample" - -[deps] - -source_file="res://sound_jump.wav" -source_md5="f15f2f75683475fb46217cb108a91d44" - -dest_files=[ "res://.import/sound_jump.wav-4966d1f327e26a176b56ab335c03b5e1.sample" ] -dest_md5="d93302188764fedd122195b34b711ceb" - -[params] - -force/8_bit=false -force/mono=false -force/max_rate=false -force/max_rate_hz=44100 -edit/trim=true -edit/normalize=true -edit/loop=false -compress/mode=0 diff --git a/2d/platformer/sound_shoot.wav.import b/2d/platformer/sound_shoot.wav.import deleted file mode 100644 index 7a6b6dde..00000000 --- a/2d/platformer/sound_shoot.wav.import +++ /dev/null @@ -1,24 +0,0 @@ -[remap] - -importer="wav" -type="AudioStreamSample" -path="res://.import/sound_shoot.wav-f0f26619cba21d411b53ad23b8788116.sample" - -[deps] - -source_file="res://sound_shoot.wav" -source_md5="5c1909840119124623da414167fad697" - -dest_files=[ "res://.import/sound_shoot.wav-f0f26619cba21d411b53ad23b8788116.sample" ] -dest_md5="8c33ecb945ea94e05e6be5ee5a7b0c6b" - -[params] - -force/8_bit=false -force/mono=false -force/max_rate=false -force/max_rate_hz=44100 -edit/trim=true -edit/normalize=true -edit/loop=false -compress/mode=0 diff --git a/2d/platformer/stage.tscn b/2d/platformer/stage.tscn deleted file mode 100644 index 39dbf357..00000000 --- a/2d/platformer/stage.tscn +++ /dev/null @@ -1,376 +0,0 @@ -[gd_scene load_steps=9 format=2] - -[ext_resource path="res://tileset.tres" type="TileSet" id=1] -[ext_resource path="res://coin.tscn" type="PackedScene" id=2] -[ext_resource path="res://moving_platform.tscn" type="PackedScene" id=3] -[ext_resource path="res://one_way_platform.tscn" type="PackedScene" id=4] -[ext_resource path="res://player.tscn" type="PackedScene" id=5] -[ext_resource path="res://enemy.tscn" type="PackedScene" id=6] -[ext_resource path="res://parallax_bg.tscn" type="PackedScene" id=7] -[ext_resource path="res://music.ogg" type="AudioStream" id=8] - -[node name="stage" type="Node"] - -[node name="tile_map" type="TileMap" parent="."] - -mode = 0 -tile_set = ExtResource( 1 ) -cell_size = Vector2( 64, 64 ) -cell_quadrant_size = 8 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 -cell_tile_origin = 0 -cell_y_sort = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 -tile_data = PoolIntArray( 0, 2, 65536, 2, 131072, 2, 196608, 2, 196626, 9, 262144, 2, 262162, 8, 327680, 2, 327697, 536870921, 327698, 7, 393216, 2, 393234, 7, 393276, 536870914, 393277, 536870922, 393278, 536870922, 393279, 536870922, 393280, 536870922, 393281, 536870922, 393282, 536870922, 393283, 536870922, 393284, 536870922, 393285, 536870922, 458752, 2, 458770, 8, 458812, 536870914, 458813, 536870922, 458814, 536870922, 458815, 536870922, 458816, 536870922, 458817, 536870922, 458818, 536870922, 458819, 536870922, 458820, 536870922, 458821, 536870922, 524288, 4, 524289, 1, 524348, 536870914, 524349, 536870922, 524350, 536870922, 524351, 536870922, 524352, 536870922, 524353, 536870922, 524354, 536870922, 524355, 536870922, 524356, 536870922, 524357, 536870922, 589824, 10, 589825, 13, 589860, 536870914, 589861, 10, 589862, 10, 589863, 10, 589864, 10, 589865, 10, 589866, 10, 589867, 10, 589868, 10, 589869, 2, 589884, 536870914, 589885, 536870922, 589886, 536870922, 589887, 536870922, 589888, 536870922, 589889, 536870922, 589890, 536870922, 589891, 536870922, 589892, 536870922, 589893, 536870922, 655360, 2, 655396, 536870914, 655397, 10, 655398, 10, 655399, 10, 655400, 10, 655401, 10, 655402, 10, 655403, 10, 655404, 10, 655405, 2, 655420, 536870914, 655421, 536870922, 655422, 536870922, 655423, 536870922, 655424, 536870922, 655425, 536870922, 655426, 536870922, 655427, 536870922, 655428, 536870922, 655429, 536870922, 720896, 2, 720932, 536870914, 720933, 10, 720934, 10, 720935, 10, 720936, 10, 720937, 10, 720938, 10, 720939, 10, 720940, 10, 720941, 2, 720956, 536870914, 720957, 536870922, 720958, 536870922, 720959, 536870922, 720960, 536870922, 720961, 536870922, 720962, 536870922, 720963, 536870922, 720964, 536870922, 720965, 536870922, 786432, 2, 786437, 9, 786468, 536870914, 786469, 10, 786470, 10, 786471, 10, 786472, 10, 786473, 10, 786474, 10, 786475, 10, 786476, 10, 786477, 2, 786492, 536870914, 786493, 536870922, 786494, 536870922, 786495, 536870922, 786496, 536870922, 786497, 536870922, 786498, 536870922, 786499, 536870922, 786500, 536870922, 786501, 536870922, 851968, 2, 851973, 7, 852004, 536870914, 852005, 10, 852006, 10, 852007, 10, 852008, 10, 852009, 10, 852010, 10, 852011, 10, 852012, 10, 852013, 2, 852028, 536870914, 852029, 536870922, 852030, 536870922, 852031, 536870922, 852032, 536870922, 852033, 536870922, 852034, 536870922, 852035, 536870922, 852036, 536870922, 852037, 536870922, 917504, 2, 917506, 9, 917509, 7, 917512, 536870921, 917540, 536870914, 917541, 10, 917542, 10, 917543, 10, 917544, 10, 917545, 10, 917546, 10, 917547, 10, 917548, 10, 917549, 2, 917564, 536870914, 917565, 536870922, 917566, 536870922, 917567, 536870922, 917568, 536870922, 917569, 536870922, 917570, 536870922, 917571, 536870922, 917572, 536870922, 917573, 536870922, 983040, 2, 983042, 7, 983045, 7, 983048, 536870920, 983076, 536870914, 983077, 10, 983078, 10, 983079, 10, 983080, 10, 983081, 10, 983082, 10, 983083, 10, 983084, 10, 983085, 2, 983100, 536870914, 983101, 536870922, 983102, 536870922, 983103, 536870922, 983104, 536870922, 983105, 536870922, 983106, 536870922, 983107, 536870922, 983108, 536870922, 983109, 536870922, 1048576, 2, 1048578, 8, 1048581, 8, 1048584, 536870919, 1048612, 536870914, 1048613, 10, 1048614, 10, 1048615, 10, 1048616, 10, 1048617, 10, 1048618, 10, 1048619, 10, 1048620, 10, 1048621, 2, 1048636, 536870914, 1048637, 536870922, 1048638, 536870922, 1048639, 536870922, 1048640, 536870922, 1048641, 536870922, 1048642, 536870922, 1048643, 536870922, 1048644, 536870922, 1048645, 536870922, 1114112, 4, 1114113, 0, 1114114, 6, 1114115, 0, 1114116, 0, 1114117, 6, 1114118, 1, 1114120, 536870919, 1114127, 536870913, 1114128, 0, 1114129, 15, 1114139, 536870927, 1114140, 0, 1114141, 536870912, 1114142, 536870912, 1114143, 536870912, 1114144, 15, 1114148, 536870925, 1114149, 536870923, 1114150, 536870923, 1114151, 536870923, 1114152, 536870923, 1114153, 536870923, 1114154, 536870923, 1114155, 536870923, 1114156, 536870923, 1114157, 13, 1114172, 536870914, 1114173, 536870922, 1114174, 536870922, 1114175, 536870922, 1114176, 536870922, 1114177, 536870922, 1114178, 536870922, 1114179, 536870922, 1114180, 536870922, 1114181, 536870922, 1179648, 10, 1179649, 10, 1179650, 10, 1179651, 10, 1179652, 10, 1179653, 10, 1179654, 2, 1179656, 536870919, 1179663, 536870914, 1179664, 2, 1179676, 536870914, 1179677, 536870922, 1179678, 536870922, 1179679, 2, 1179700, 536870913, 1179701, 536870912, 1179702, 536870912, 1179703, 536870912, 1179704, 536870912, 1179705, 536870912, 1179706, 536870912, 1179707, 536870912, 1179708, 536870916, 1179709, 536870922, 1179710, 536870922, 1179711, 536870922, 1179712, 536870922, 1179713, 536870922, 1179714, 536870922, 1179715, 536870922, 1179716, 536870922, 1179717, 536870922, 1245184, 10, 1245185, 10, 1245186, 10, 1245187, 10, 1245188, 10, 1245189, 10, 1245190, 4, 1245191, 1, 1245192, 536870919, 1245199, 536870914, 1245200, 2, 1245212, 536870914, 1245213, 536870922, 1245214, 536870922, 1245215, 2, 1245236, 536870914, 1245237, 536870922, 1245238, 536870922, 1245239, 536870922, 1245240, 536870922, 1245241, 536870922, 1245242, 536870922, 1245243, 536870922, 1245244, 536870922, 1245245, 536870922, 1245246, 536870922, 1245247, 536870922, 1245248, 536870922, 1245249, 536870922, 1245250, 536870922, 1245251, 536870922, 1245252, 536870922, 1245253, 536870922, 1310720, 10, 1310721, 10, 1310722, 10, 1310723, 10, 1310724, 10, 1310725, 10, 1310726, 10, 1310727, 4, 1310728, 6, 1310729, 1, 1310735, 536870914, 1310736, 2, 1310748, 536870914, 1310749, 536870922, 1310750, 536870922, 1310751, 2, 1310772, 536870914, 1310773, 536870922, 1310774, 536870922, 1310775, 536870922, 1310776, 536870922, 1310777, 536870922, 1310778, 536870922, 1310779, 536870922, 1310780, 536870922, 1310781, 536870922, 1310782, 536870922, 1310783, 536870922, 1310784, 536870922, 1310785, 536870922, 1310786, 536870922, 1310787, 536870922, 1310788, 536870922, 1310789, 536870922, 1376256, 10, 1376257, 10, 1376258, 10, 1376259, 10, 1376260, 10, 1376261, 10, 1376262, 10, 1376263, 10, 1376264, 10, 1376265, 4, 1376266, 0, 1376267, 0, 1376268, 0, 1376269, 0, 1376270, 0, 1376271, 536870916, 1376272, 2, 1376284, 536870914, 1376285, 536870922, 1376286, 536870922, 1376287, 2, 1376308, 536870914, 1376309, 536870922, 1376310, 536870922, 1376311, 536870922, 1376312, 536870922, 1376313, 536870922, 1376314, 536870922, 1376315, 536870922, 1376316, 536870922, 1376317, 536870922, 1376318, 536870922, 1376319, 536870922, 1376320, 536870922, 1376321, 536870922, 1376322, 536870922, 1376323, 536870922, 1376324, 536870922, 1376325, 536870922, 1441792, 10, 1441793, 10, 1441794, 10, 1441795, 10, 1441796, 10, 1441797, 10, 1441798, 10, 1441799, 10, 1441800, 10, 1441801, 10, 1441802, 10, 1441803, 10, 1441804, 10, 1441805, 10, 1441806, 10, 1441807, 10, 1441808, 2, 1441820, 536870914, 1441821, 536870922, 1441822, 536870922, 1441823, 2, 1441844, 536870914, 1441845, 536870922, 1441846, 536870922, 1441847, 536870922, 1441848, 536870922, 1441849, 536870922, 1441850, 536870922, 1441851, 536870922, 1441852, 536870922, 1441853, 536870922, 1441854, 536870922, 1441855, 536870922, 1441856, 536870922, 1441857, 536870922, 1441858, 536870922, 1441859, 536870922, 1441860, 536870922, 1441861, 536870922, 1507328, 10, 1507329, 10, 1507330, 10, 1507331, 10, 1507332, 10, 1507333, 10, 1507334, 10, 1507335, 10, 1507336, 10, 1507337, 10, 1507338, 10, 1507339, 10, 1507340, 10, 1507341, 10, 1507342, 10, 1507343, 10, 1507344, 2, 1507356, 536870914, 1507357, 536870922, 1507358, 536870922, 1507359, 4, 1507360, 0, 1507361, 0, 1507362, 0, 1507363, 0, 1507364, 0, 1507365, 0, 1507366, 12, 1507380, 536870914, 1507381, 536870922, 1507382, 536870922, 1507383, 536870922, 1507384, 536870922, 1507385, 536870922, 1507386, 536870922, 1507387, 536870922, 1507388, 536870922, 1507389, 536870922, 1507390, 536870922, 1507391, 536870922, 1507392, 536870922, 1507393, 536870922, 1507394, 536870922, 1507395, 536870922, 1507396, 536870922, 1507397, 536870922, 1572864, 10, 1572865, 10, 1572866, 10, 1572867, 10, 1572868, 10, 1572869, 10, 1572870, 10, 1572871, 10, 1572872, 10, 1572873, 10, 1572874, 10, 1572875, 10, 1572876, 10, 1572877, 10, 1572878, 10, 1572879, 10, 1572880, 2, 1572892, 536870914, 1572893, 536870922, 1572894, 536870922, 1572895, 536870922, 1572896, 536870922, 1572897, 536870922, 1572898, 536870922, 1572899, 536870922, 1572900, 536870922, 1572901, 536870922, 1572903, 12, 1572916, 536870914, 1572917, 536870922, 1572918, 536870922, 1572919, 536870922, 1572920, 536870922, 1572921, 536870922, 1572922, 536870922, 1572923, 536870922, 1572924, 536870922, 1572925, 536870922, 1572926, 536870922, 1572927, 536870922, 1572928, 536870922, 1572929, 536870922, 1572930, 536870922, 1572931, 536870922, 1572932, 536870922, 1572933, 536870922, 1638400, 10, 1638401, 10, 1638402, 10, 1638403, 10, 1638404, 10, 1638405, 10, 1638406, 10, 1638407, 10, 1638408, 10, 1638409, 10, 1638410, 10, 1638411, 10, 1638412, 10, 1638413, 10, 1638414, 10, 1638415, 10, 1638416, 2, 1638428, 536870914, 1638429, 536870922, 1638430, 536870922, 1638431, 536870922, 1638432, 536870922, 1638433, 536870922, 1638434, 536870922, 1638435, 536870922, 1638436, 536870922, 1638437, 536870922, 1638438, 536870922, 1638440, 12, 1638452, 536870914, 1638453, 536870922, 1638454, 536870922, 1638455, 536870922, 1638456, 536870922, 1638457, 536870922, 1638458, 536870922, 1638459, 536870922, 1638460, 536870922, 1638461, 536870922, 1638462, 536870922, 1638463, 536870922, 1638464, 536870922, 1638465, 536870922, 1638466, 536870922, 1638467, 536870922, 1638468, 536870922, 1638469, 536870922, 1703964, 536870914, 1703965, 536870922, 1703966, 536870922, 1703967, 536870922, 1703968, 536870922, 1703969, 536870922, 1703970, 536870922, 1703971, 536870922, 1703972, 536870922, 1703973, 536870922, 1703974, 536870922, 1703975, 536870922, 1703977, 12, 1703988, 536870914, 1703989, 536870922, 1703990, 536870922, 1703991, 536870922, 1703992, 536870922, 1703993, 536870922, 1703994, 536870922, 1703995, 536870922, 1703996, 536870922, 1703997, 536870922, 1703998, 536870922, 1703999, 536870922, 1704000, 536870922, 1704001, 536870922, 1704002, 536870922, 1704003, 536870922, 1704004, 536870922, 1704005, 536870922, 1769500, 536870914, 1769501, 536870922, 1769502, 536870922, 1769503, 536870922, 1769504, 536870922, 1769505, 536870922, 1769506, 536870922, 1769507, 536870922, 1769508, 536870922, 1769509, 536870922, 1769510, 536870922, 1769511, 536870922, 1769512, 536870922, 1769514, 12, 1769524, 536870914, 1769525, 536870922, 1769526, 536870922, 1769527, 536870922, 1769528, 536870922, 1769529, 536870922, 1769530, 536870922, 1769531, 536870922, 1769532, 536870922, 1769533, 536870922, 1769534, 536870922, 1769535, 536870922, 1769536, 536870922, 1769537, 536870922, 1769538, 536870922, 1769539, 536870922, 1769540, 536870922, 1769541, 536870922, 1835036, 536870914, 1835037, 536870922, 1835038, 536870922, 1835039, 536870922, 1835040, 536870922, 1835041, 536870922, 1835042, 536870922, 1835043, 536870922, 1835044, 536870922, 1835045, 536870922, 1835046, 536870922, 1835047, 536870922, 1835048, 536870922, 1835049, 536870922, 1835051, 12, 1835060, 536870914, 1835061, 536870922, 1835062, 536870922, 1835063, 536870922, 1835064, 536870922, 1835065, 536870922, 1835066, 536870922, 1835067, 536870922, 1835068, 536870922, 1835069, 536870922, 1835070, 536870922, 1835071, 536870922, 1835072, 536870922, 1835073, 536870922, 1835074, 536870922, 1835075, 536870922, 1835076, 536870922, 1835077, 536870922, 1900572, 536870914, 1900573, 536870922, 1900574, 536870922, 1900575, 536870922, 1900576, 536870922, 1900577, 536870922, 1900578, 536870922, 1900579, 536870922, 1900580, 536870922, 1900581, 536870922, 1900582, 536870922, 1900583, 536870922, 1900584, 536870922, 1900585, 536870922, 1900586, 536870922, 1900588, 0, 1900589, 0, 1900590, 0, 1900591, 0, 1900592, 0, 1900593, 0, 1900594, 0, 1900595, 0, 1900596, 536870916, 1900597, 536870922, 1900598, 536870922, 1900599, 536870922, 1900600, 536870922, 1900601, 536870922, 1900602, 536870922, 1900603, 536870922, 1900604, 536870922, 1900605, 536870922, 1900606, 536870922, 1900607, 536870922, 1900608, 536870922, 1900609, 536870922, 1900610, 536870922, 1900611, 536870922, 1900612, 536870922, 1900613, 536870922, 1966108, 536870914, 1966109, 536870922, 1966110, 536870922, 1966111, 536870922, 1966112, 536870922, 1966113, 536870922, 1966114, 536870922, 1966115, 536870922, 1966116, 536870922, 1966117, 536870922, 1966118, 536870922, 1966119, 536870922, 1966120, 536870922, 1966121, 536870922, 1966122, 536870922, 1966123, 536870922, 1966124, 536870922, 1966125, 536870922, 1966126, 536870922, 1966127, 536870922, 1966128, 536870922, 1966129, 536870922, 1966130, 536870922, 1966131, 536870922, 1966132, 536870922, 1966133, 536870922, 1966134, 536870922, 1966135, 536870922, 1966136, 536870922, 1966137, 536870922, 1966138, 536870922, 1966139, 536870922, 1966140, 536870922, 1966141, 536870922, 1966142, 536870922, 1966143, 536870922, 1966144, 536870922, 1966145, 536870922, 1966146, 536870922, 1966147, 536870922, 1966148, 536870922, 1966149, 536870922, 2031644, 536870914, 2031645, 536870922, 2031646, 536870922, 2031647, 536870922, 2031648, 536870922, 2031649, 536870922, 2031650, 536870922, 2031651, 536870922, 2031652, 536870922, 2031653, 536870922, 2031654, 536870922, 2031655, 536870922, 2031656, 536870922, 2031657, 536870922, 2031658, 536870922, 2031659, 536870922, 2031660, 536870922, 2031661, 536870922, 2031662, 536870922, 2031663, 536870922, 2031664, 536870922, 2031665, 536870922, 2031666, 536870922, 2031667, 536870922, 2031668, 536870922, 2031669, 536870922, 2031670, 536870922, 2031671, 536870922, 2031672, 536870922, 2031673, 536870922, 2031674, 536870922, 2031675, 536870922, 2031676, 536870922, 2031677, 536870922, 2031678, 536870922, 2031679, 536870922, 2031680, 536870922, 2031681, 536870922, 2031682, 536870922, 2031683, 536870922, 2031684, 536870922, 2031685, 536870922, 2097180, 536870914, 2097181, 536870922, 2097182, 536870922, 2097183, 536870922, 2097184, 536870922, 2097185, 536870922, 2097186, 536870922, 2097187, 536870922, 2097188, 536870922, 2097189, 536870922, 2097190, 536870922, 2097191, 536870922, 2097192, 536870922, 2097193, 536870922, 2097194, 536870922, 2097195, 536870922, 2097196, 536870922, 2097197, 536870922, 2097198, 536870922, 2097199, 536870922, 2097200, 536870922, 2097201, 536870922, 2097202, 536870922, 2097203, 536870922, 2097204, 536870922, 2097205, 536870922, 2097206, 536870922, 2097207, 536870922, 2097208, 536870922, 2097209, 536870922, 2097210, 536870922, 2097211, 536870922, 2097212, 536870922, 2097213, 536870922, 2097214, 536870922, 2097215, 536870922, 2097216, 536870922, 2097217, 536870922, 2097218, 536870922, 2097219, 536870922, 2097220, 536870922, 2097221, 536870922, 2162716, 536870914, 2162717, 536870922, 2162718, 536870922, 2162719, 536870922, 2162720, 536870922, 2162721, 536870922, 2162722, 536870922, 2162723, 536870922, 2162724, 536870922, 2162725, 536870922, 2162726, 536870922, 2162727, 536870922, 2162728, 536870922, 2162729, 536870922, 2162730, 536870922, 2162731, 536870922, 2162732, 536870922, 2162733, 536870922, 2162734, 536870922, 2162735, 536870922, 2162736, 536870922, 2162737, 536870922, 2162738, 536870922, 2162739, 536870922, 2162740, 536870922, 2162741, 536870922, 2162742, 536870922, 2162743, 536870922, 2162744, 536870922, 2162745, 536870922, 2162746, 536870922, 2162747, 536870922, 2162748, 536870922, 2162749, 536870922, 2162750, 536870922, 2162751, 536870922, 2162752, 536870922, 2162753, 536870922, 2162754, 536870922, 2162755, 536870922, 2162756, 536870922, 2162757, 536870922, 2228252, 536870914, 2228253, 536870922, 2228254, 536870922, 2228255, 536870922, 2228256, 536870922, 2228257, 536870922, 2228258, 536870922, 2228259, 536870922, 2228260, 536870922, 2228261, 536870922, 2228262, 536870922, 2228263, 536870922, 2228264, 536870922, 2228265, 536870922, 2228266, 536870922, 2228267, 536870922, 2228268, 536870922, 2228269, 536870922, 2228270, 536870922, 2228271, 536870922, 2228272, 536870922, 2228273, 536870922, 2228274, 536870922, 2228275, 536870922, 2228276, 536870922, 2228277, 536870922, 2228278, 536870922, 2228279, 536870922, 2228280, 536870922, 2228281, 536870922, 2228282, 536870922, 2228283, 536870922, 2228284, 536870922, 2228285, 536870922, 2228286, 536870922, 2228287, 536870922, 2228288, 536870922, 2228289, 536870922, 2228290, 536870922, 2228291, 536870922, 2228292, 536870922, 2228293, 536870922, 2293788, 536870914, 2293789, 536870922, 2293790, 536870922, 2293791, 536870922, 2293792, 536870922, 2293793, 536870922, 2293794, 536870922, 2293795, 536870922, 2293796, 536870922, 2293797, 536870922, 2293798, 536870922, 2293799, 536870922, 2293800, 536870922, 2293801, 536870922, 2293802, 536870922, 2293803, 536870922, 2293804, 536870922, 2293805, 536870922, 2293806, 536870922, 2293807, 536870922, 2293808, 536870922, 2293809, 536870922, 2293810, 536870922, 2293811, 536870922, 2293812, 536870922, 2293813, 536870922, 2293814, 536870922, 2293815, 536870922, 2293816, 536870922, 2293817, 536870922, 2293818, 536870922, 2293819, 536870922, 2293820, 536870922, 2293821, 536870922, 2293822, 536870922, 2293823, 536870922, 2293824, 536870922, 2293825, 536870922, 2293826, 536870922, 2293827, 536870922, 2293828, 536870922, 2293829, 536870922, 2293830, 536870922, 2359324, 536870914, 2359325, 536870922, 2359326, 536870922, 2359327, 536870922, 2359328, 536870922, 2359329, 536870922, 2359330, 536870922, 2359331, 536870922, 2359332, 536870922, 2359333, 536870922, 2359334, 536870922, 2359335, 536870922, 2359336, 536870922, 2359337, 536870922, 2359338, 536870922, 2359339, 536870922, 2359340, 536870922, 2359341, 536870922, 2359342, 536870922, 2359343, 536870922, 2359344, 536870922, 2359345, 536870922, 2359346, 536870922, 2359347, 536870922, 2359348, 536870922, 2359349, 536870922, 2359350, 536870922, 2359351, 536870922, 2359352, 536870922, 2359353, 536870922, 2359354, 536870922, 2359355, 536870922, 2359356, 536870922, 2359357, 536870922, 2359358, 536870922, 2359359, 536870922, 2359360, 536870922, 2359361, 536870922, 2359362, 536870922, 2359363, 536870922, 2359364, 536870922, 2359365, 536870922, 2359366, 536870922, 2424860, 536870914, 2424861, 536870922, 2424862, 536870922, 2424863, 536870922, 2424864, 536870922, 2424865, 536870922, 2424866, 536870922, 2424867, 536870922, 2424868, 536870922, 2424869, 536870922, 2424870, 536870922, 2424871, 536870922, 2424872, 536870922, 2424873, 536870922, 2424874, 536870922, 2424875, 536870922, 2424876, 536870922, 2424877, 536870922, 2424878, 536870922, 2424879, 536870922, 2424880, 536870922, 2424881, 536870922, 2424882, 536870922, 2424883, 536870922, 2424884, 536870922, 2424885, 536870922, 2424886, 536870922, 2424887, 536870922, 2424888, 536870922, 2424889, 536870922, 2424890, 536870922, 2424891, 536870922, 2424892, 536870922, 2424893, 536870922, 2424894, 536870922, 2424895, 536870922, 2424896, 536870922, 2424897, 536870922, 2424898, 536870922, 2424899, 536870922, 2424900, 536870922, 2424901, 536870922, 2424902, 536870922, 2490397, 536870922, 2490398, 536870922, 2490399, 536870922, 2490400, 536870922, 2490401, 536870922, 2490402, 536870922, 2490403, 536870922, 2490404, 536870922, 2490405, 536870922, 2490406, 536870922, 2490407, 536870922, 2490408, 536870922, 2490409, 536870922, 2490410, 536870922, 2490411, 536870922, 2490412, 536870922, 2490413, 536870922, 2490414, 536870922, 2490415, 536870922, 2490416, 536870922, 2490417, 536870922, 2490418, 536870922, 2490419, 536870922, 2490420, 536870922, 2490421, 536870922, 2490422, 536870922, 2490423, 536870922, 2490424, 536870922, 2490425, 536870922, 2490426, 536870922, 2490427, 536870922, 2490428, 536870922, 2490429, 536870922, 2490430, 536870922, 2490431, 536870922, 2490432, 536870922, 2490433, 536870922, 2490434, 536870922, 2490435, 536870922, 2490436, 536870922, 2490437, 536870922, 2555933, 536870922, 2555934, 536870922, 2555935, 536870922, 2555936, 536870922, 2555937, 536870922, 2555938, 536870922, 2555939, 536870922, 2555940, 536870922, 2555941, 536870922, 2555942, 536870922, 2555943, 536870922, 2555944, 536870922, 2555945, 536870922, 2555946, 536870922, 2555947, 536870922, 2555948, 536870922, 2555949, 536870922, 2555950, 536870922, 2555951, 536870922, 2555952, 536870922, 2555953, 536870922, 2555954, 536870922, 2555955, 536870922, 2555956, 536870922, 2555957, 536870922, 2555958, 536870922, 2555959, 536870922, 2555960, 536870922, 2555961, 536870922, 2555962, 536870922, 2555963, 536870922, 2555964, 536870922, 2555965, 536870922, 2555966, 536870922, 2555967, 536870922, 2555968, 536870922, 2555969, 536870922, 2555970, 536870922, 2555971, 536870922, 2555972, 536870922, 2555973, 536870922, 2621469, 536870922, 2621470, 536870922, 2621471, 536870922, 2621472, 536870922, 2621473, 536870922, 2621474, 536870922, 2621475, 536870922, 2621476, 536870922, 2621477, 536870922, 2621478, 536870922, 2621479, 536870922, 2621480, 536870922, 2621481, 536870922, 2621482, 536870922, 2621483, 536870922, 2621484, 536870922, 2621485, 536870922, 2621486, 536870922, 2621487, 536870922, 2621488, 536870922, 2621489, 536870922, 2621490, 536870922, 2621491, 536870922, 2621492, 536870922, 2621493, 536870922, 2621494, 536870922, 2621495, 536870922, 2621496, 536870922, 2621497, 536870922, 2621498, 536870922, 2621499, 536870922, 2621500, 536870922, 2621501, 536870922, 2621502, 536870922, 2621503, 536870922, 2621504, 536870922, 2621505, 536870922, 2621506, 536870922, 2621507, 536870922, 2621508, 536870922, 2687006, 536870922, 2687007, 536870922, 2687008, 536870922, 2687009, 536870922, 2687010, 536870922, 2687011, 536870922, 2687012, 536870922, 2687013, 536870922, 2687014, 536870922, 2687015, 536870922, 2687016, 536870922, 2687017, 536870922, 2687018, 536870922, 2687019, 536870922, 2687020, 536870922, 2687021, 536870922, 2687022, 536870922, 2687023, 536870922, 2687024, 536870922, 2687025, 536870922, 2687026, 536870922, 2687027, 536870922, 2687028, 536870922, 2687029, 536870922, 2687030, 536870922, 2687031, 536870922, 2687032, 536870922, 2687033, 536870922, 2687034, 536870922, 2687035, 536870922, 2687036, 536870922, 2687037, 536870922, 2687038, 536870922, 2687039, 536870922, 2687040, 536870922, 2687041, 536870922, 2687042, 536870922, 2687043, 536870922, 2687044, 536870922, 2752543, 536870922, 2752544, 536870922, 2752545, 536870922, 2752546, 536870922, 2752547, 536870922, 2752548, 536870922, 2752549, 536870922, 2752550, 536870922, 2752551, 536870922, 2752552, 536870922, 2752553, 536870922, 2752554, 536870922, 2752555, 536870922, 2752556, 536870922, 2752557, 536870922, 2752558, 536870922, 2752559, 536870922, 2752560, 536870922, 2752561, 536870922, 2752562, 536870922, 2752563, 536870922, 2752564, 536870922, 2752565, 536870922, 2752566, 536870922, 2752567, 536870922, 2752568, 536870922, 2752569, 536870922, 2752570, 536870922, 2752571, 536870922, 2752572, 536870922, 2752573, 536870922, 2752574, 536870922, 2752575, 536870922, 2752576, 536870922, 2752577, 536870922, 2752578, 536870922, 2752579, 536870922, 2818083, 536870922, 2818084, 536870922, 2818085, 536870922, 2818086, 536870922, 2818087, 536870922, 2818088, 536870922, 2818089, 536870922, 2818090, 536870922, 2818091, 536870922, 2818092, 536870922, 2818093, 536870922, 2818094, 536870922, 2818095, 536870922, 2818096, 536870922, 2818097, 536870922, 2818098, 536870922, 2818099, 536870922, 2818100, 536870922, 2818101, 536870922, 2818102, 536870922, 2818103, 536870922, 2818104, 536870922, 2818105, 536870922, 2818106, 536870922, 2818107, 536870922, 2818108, 536870922, 2818109, 536870922, 2818110, 536870922, 2818111, 536870922, 2818112, 536870922, 2818113, 536870922 ) -__meta__ = { -"_edit_lock_": true -} - -[node name="coins" type="Node" parent="."] - -editor/display_folded = true - -[node name="coin" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 672, 1179 ) - -[node name="coin 2" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 704, 1179 ) - -[node name="coin 3" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 736, 1179 ) - -[node name="coin 4" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1120, 992 ) - -[node name="coin 5" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1152, 992 ) - -[node name="coin 6" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1184, 992 ) - -[node name="coin 7" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1216, 992 ) - -[node name="coin 8" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1248, 992 ) - -[node name="coin 9" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1568, 864 ) - -[node name="coin 10" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1632, 864 ) - -[node name="coin 11" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1169.44, 677.369 ) - -[node name="coin 12" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1233.44, 677.369 ) - -[node name="coin 13" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 924.453, 566.264 ) - -[node name="coin 14" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 988.453, 566.264 ) - -[node name="coin 15" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 983.872, 336.653 ) - -[node name="coin 16" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1047.87, 336.653 ) - -[node name="coin 17" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1111.87, 336.653 ) - -[node name="coin 18" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1111.87, 272.653 ) - -[node name="coin 19" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 1047.87, 272.653 ) - -[node name="coin 20" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 983.872, 272.653 ) - -[node name="coin 21" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 3726.65, 1102.79 ) - -[node name="coin 22" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 89.5989, 481.217 ) - -[node name="coin 23" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 3735.94, 1095.49 ) - -[node name="coin 24" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 3743.9, 1084.22 ) - -[node name="coin 25" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 3745.23, 1072.28 ) - -[node name="coin 26" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 3733.95, 1063.65 ) - -[node name="coin 27" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 3725.99, 1072.94 ) - -[node name="coin 28" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 88.272, 448.71 ) - -[node name="coin 29" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 79.6476, 457.334 ) - -[node name="coin 30" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 82.9647, 468.612 ) - -[node name="coin 31" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 2159.07, 1356.49 ) - -[node name="coin 31 2" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 2223.07, 1356.49 ) - -[node name="coin 31 3" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 2287.07, 1356.49 ) - -[node name="coin 31 4" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 2287.07, 1292.49 ) - -[node name="coin 31 5" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 2223.07, 1292.49 ) - -[node name="coin 31 6" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 2159.07, 1292.49 ) - -[node name="coin 32" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 4172.75, 605.058 ) - -[node name="coin 31 7" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 4236.75, 605.058 ) - -[node name="coin 31 7 2" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 4300.75, 605.058 ) - -[node name="coin 31 7 3" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 4300.75, 541.058 ) - -[node name="coin 31 7 4" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 4236.75, 541.058 ) - -[node name="coin 31 7 5" parent="coins" instance=ExtResource( 2 )] - -position = Vector2( 4172.75, 541.058 ) - -[node name="props" type="Node" parent="."] - -editor/display_folded = true - -[node name="moving_platform" parent="props" instance=ExtResource( 3 )] - -position = Vector2( 1451.86, 742.969 ) - -[node name="moving_platform 2" parent="props" instance=ExtResource( 3 )] - -position = Vector2( 719.199, 1123.81 ) -motion = Vector2( 100, 0 ) -cycle = 4.0 - -[node name="still" parent="props" instance=ExtResource( 3 )] - -position = Vector2( 1231.37, 1105.18 ) -rotation = -0.163314 - -[node name="still1" parent="props" instance=ExtResource( 3 )] - -position = Vector2( 1384.28, 1066.4 ) -rotation = -0.321902 - -[node name="still2" parent="props" instance=ExtResource( 3 )] - -position = Vector2( 1552.7, 1032.05 ) -rotation = -0.0826906 - -[node name="still3" parent="props" instance=ExtResource( 3 )] - -position = Vector2( 1700.06, 1066.92 ) -rotation = 0.547997 - -[node name="one_way_platform" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 1099.56, 940.804 ) - -[node name="one_way_platform13" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 1339.63, 967.879 ) - -[node name="one_way_platform1" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 967.609, 836.547 ) - -[node name="one_way_platform2" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 1190.78, 754.282 ) - -[node name="one_way_platform3" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 953.762, 638.622 ) - -[node name="one_way_platform6" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 1192.93, 520.298 ) - -[node name="one_way_platform4" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 1256.76, 638.622 ) - -[node name="one_way_platform7" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 2784.9, 1655.71 ) - -[node name="one_way_platform8" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 2976.23, 1555 ) - -[node name="one_way_platform9" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 3122.25, 1469.41 ) - -[node name="one_way_platform10" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 3200.29, 1353.6 ) - -[node name="one_way_platform11" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 3200.29, 1237.8 ) - -[node name="one_way_platform5" parent="props" instance=ExtResource( 4 )] - -position = Vector2( 1039.29, 409.746 ) - -[node name="player" parent="." instance=ExtResource( 5 )] - -position = Vector2( 251.684, 1045.6 ) - -[node name="enemies" type="Node" parent="."] - -editor/display_folded = true - -[node name="enemy 5" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 734.693, 1064.22 ) - -[node name="enemy 6" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 707.665, 1225.05 ) - -[node name="enemy 7" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 1125.21, 1053.06 ) - -[node name="enemy 8" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 1292.11, 1059.24 ) - -[node name="enemy 9" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 968.927, 766.466 ) - -[node name="enemy 10" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 3080.34, 1807.61 ) - -[node name="enemy 11" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 1457.6, 688.741 ) - -[node name="enemy 12" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 1264.06, 571.713 ) - -[node name="enemy 13" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 3590.85, 1114.86 ) - -[node name="enemy 14" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 3546.2, 1356.19 ) - -[node name="enemy 15" parent="enemies" instance=ExtResource( 6 )] - -position = Vector2( 2215.3, 1429.39 ) - -[node name="parallax_bg" parent="." instance=ExtResource( 7 )] - -[node name="Label" type="Label" parent="."] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 -margin_left = 12.0 -margin_top = -202.0 -margin_right = 358.0 -margin_bottom = -10.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -size_flags_horizontal = 2 -size_flags_vertical = 0 -text = "This is a simple demo on how to make a platformer game with Godot.\"This version uses physics and the 2D physics engine for motion and collision.\"\"The demo also shows the benefits of using the scene system, where coins,\"enemies and the player are edited separatedly and instanced in the stage.\"\"To edit the base tiles for the tileset, open the tileset_edit.tscn file and follow \"instructions.\"" -autowrap = true -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 - -[node name="music" type="AudioStreamPlayer" parent="."] - -stream = ExtResource( 8 ) -volume_db = 0.0 -autoplay = true -mix_target = 0 -bus = "Master" - - diff --git a/2d/platformer/tiles_demo.png.import b/2d/platformer/tiles_demo.png.import index c8c7714e..9c560d55 100644 --- a/2d/platformer/tiles_demo.png.import +++ b/2d/platformer/tiles_demo.png.import @@ -3,20 +3,21 @@ importer="texture" type="StreamTexture" path="res://.import/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086bd.stex" +metadata={ +"vram_texture": false +} [deps] source_file="res://tiles_demo.png" -source_md5="6ec267217d26ae9bec28a948ef2a2aec" - dest_files=[ "res://.import/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086bd.stex" ] -dest_md5="bad5b7f4a678554dadd7a95695a76507" [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=false