Port demos with remade art assets to Godot 4 (#922)
This re-ports the following demos to Godot 4 following their latest `3.x` versions: - 2D Navigation with AStarGrid2D - 2D JRPG Demo - 2D Isometric Game - 2D Platformer Some tweaks have also been made in the process, such as split screen players having different colors in the 2D Platformer demo. Co-authored-by: Nonparoxysmic <69494951+Nonparoxysmic@users.noreply.github.com>
@@ -1,42 +1,45 @@
|
||||
# 2D Platformer
|
||||
|
||||
This demo is a pixel art 2D platformer with single-player
|
||||
and two player splitscreen multiplayer.
|
||||
This demo is a pixel art 2D platformer with graphics and sound.
|
||||
|
||||
It demonstrates how to code characters and physics-based objects
|
||||
It shows you how to code characters and physics-based objects
|
||||
in a real game context. This is a relatively complete demo
|
||||
where the player can jump, walk on slopes, fire bullets,
|
||||
interact with enemies, and collect items. It contains one
|
||||
level. The player is invincible, unlike the enemies.
|
||||
interact with enemies, and more. It contains one closed
|
||||
level, and the player is invincible, unlike the enemies.
|
||||
|
||||
You will find most of the demo’s content in the `level.tscn` scene.
|
||||
You can open it from the default `game.tscn` scene, or double
|
||||
click on `level.tscn` in the `src/level/` directory.
|
||||
|
||||
We invite you to open the demo's GDScript files in the editor as
|
||||
they contain a lot of comments that explain how each class works.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
Renderer: Forward Plus
|
||||
Renderer: GLES 2
|
||||
|
||||
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/120
|
||||
|
||||
## Features
|
||||
|
||||
- Side-scrolling player controller using [`CharacterBody2D`](https://docs.godotengine.org/en/latest/classes/class_characterbody2d.html).
|
||||
- Can walk smoothly up and down slopes.
|
||||
- Can shoot, including while jumping.
|
||||
- Has a double jump that provides a horizontal momentum boost.
|
||||
- Side-scrolling player controller using [`KinematicBody2D`](https://docs.godotengine.org/en/latest/classes/class_kinematicbody2d.html).
|
||||
- Can walk on and snap to slopes.
|
||||
- Can shoot, including while jumping.
|
||||
- Enemies that crawl on the floor and change direction when they encounter an obstacle.
|
||||
- Camera that stays within the level’s bounds.
|
||||
- Keyboard and gamepad control support.
|
||||
- Supports keyboard and gamepad controls.
|
||||
- Platforms that can move in any direction.
|
||||
- Gun that shoots bullets with rigid body (natural) physics.
|
||||
- Collectible coins.
|
||||
- Pausing and a pause menu.
|
||||
- Pause and pause menu.
|
||||
- Pixel art visuals.
|
||||
- Sound effects and music.
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## Music
|
||||
|
||||
"Pompy" by Hubert Lamontagne (madbr) https://soundcloud.com/madbr/pompy
|
||||
[*Pompy*](https://soundcloud.com/madbr/pompy) by Hubert Lamontagne (madbr)
|
||||
|
||||
4
2d/platformer/default_bus_layout.tres
Normal file
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="AudioBusLayout" format=3 uid="uid://cxpxlqmmdcbk2"]
|
||||
|
||||
[resource]
|
||||
bus/0/volume_db = -11.9576
|
||||
@@ -6,7 +6,7 @@ enum State {
|
||||
DEAD,
|
||||
}
|
||||
|
||||
const WALK_SPEED = 100.0
|
||||
const WALK_SPEED = 22.0
|
||||
|
||||
var _state := State.WALKING
|
||||
|
||||
@@ -33,9 +33,9 @@ func _physics_process(delta: float) -> void:
|
||||
move_and_slide()
|
||||
|
||||
if velocity.x > 0.0:
|
||||
sprite.scale.x = 1.0
|
||||
sprite.scale.x = 0.8
|
||||
elif velocity.x < 0.0:
|
||||
sprite.scale.x = -1.0
|
||||
sprite.scale.x = -0.8
|
||||
|
||||
var animation := get_new_animation()
|
||||
if animation != animation_player.current_animation:
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
[gd_scene load_steps=15 format=3 uid="uid://bd478yrtijbfn"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://6mtip3ruyn"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c2aisfmq85suf" path="res://player/bullet.webp" id="1"]
|
||||
[ext_resource type="AudioStream" uid="uid://bbxjxs8sms61b" path="res://enemy/explode.wav" id="2"]
|
||||
[ext_resource type="AudioStream" uid="uid://brtn51vs7jaet" path="res://enemy/hit.wav" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://cdy6gikv8wka7" path="res://enemy/enemy.webp" id="4"]
|
||||
[ext_resource type="Texture2D" uid="uid://coj0d33vyyqx1" path="res://player/bullet.webp" id="1"]
|
||||
[ext_resource type="AudioStream" uid="uid://duwm7i44o75o2" path="res://enemy/explode.wav" id="2"]
|
||||
[ext_resource type="AudioStream" uid="uid://dm7wsawmylc7b" path="res://enemy/hit.wav" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://bjjywmvba0sve" path="res://enemy/enemy.webp" id="4"]
|
||||
[ext_resource type="Script" path="res://enemy/enemy.gd" id="5"]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="1"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_67t2c"]
|
||||
[sub_resource type="Animation" id="8"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:collision_layer")
|
||||
tracks/0/path = NodePath("Explosion:scale_amount")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [2]
|
||||
"update": 0,
|
||||
"values": [4.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
@@ -31,44 +31,32 @@ tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"update": 0,
|
||||
"values": [0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:position")
|
||||
tracks/2/path = NodePath("Explosion:scale_amount_max")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0)]
|
||||
"values": [1.0]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite2D:rotation")
|
||||
tracks/3/path = NodePath(".:collision_layer")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
"update": 1,
|
||||
"values": [2]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="2"]
|
||||
@@ -105,7 +93,7 @@ tracks/2/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.9, 1.3),
|
||||
"times": PackedFloat32Array(0, 0.5, 1.1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
@@ -117,7 +105,7 @@ tracks/3/path = NodePath("Explosion:emitting")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"times": PackedFloat32Array(0, 0.6),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
@@ -141,7 +129,7 @@ tracks/5/path = NodePath("Explode:playing")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0.8),
|
||||
"times": PackedFloat32Array(0.6),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
@@ -184,9 +172,34 @@ tracks/8/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0), Vector2(0, -32), Vector2(0, 0)]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("Explosion:scale_amount_min")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0.6, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [1.0, 4.0]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("Explosion:scale_amount_max")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(0.6, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [1.0, 4.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="3"]
|
||||
length = 6.75
|
||||
length = 3.0
|
||||
loop_mode = 1
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
@@ -195,15 +208,14 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75),
|
||||
"times": PackedFloat32Array(0, 0.333, 0.666, 0.999, 1.332, 1.665, 1.998, 2.331, 2.664, 2.997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [5, 6, 5, 6, 5, 6, 7, 6, 7, 5]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="4"]
|
||||
length = 1.25
|
||||
step = 0.25
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
@@ -211,23 +223,23 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 0.062475, 0.12495, 0.187425, 0.2499, 0.312375, 0.37485, 0.437325, 0.4998, 0.562275, 0.62475, 0.687225, 0.7497, 0.812175, 0.87465, 0.937125),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2, 3, 4, 0]
|
||||
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_nnb1f"]
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_0kjfc"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_67t2c"),
|
||||
"RESET": SubResource("8"),
|
||||
"destroy": SubResource("2"),
|
||||
"idle": SubResource("3"),
|
||||
"walk": SubResource("4")
|
||||
}
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="5"]
|
||||
radius = 8.0
|
||||
height = 22.0
|
||||
radius = 18.0
|
||||
height = 50.0
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="6"]
|
||||
blend_mode = 1
|
||||
@@ -238,31 +250,35 @@ colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
|
||||
|
||||
[node name="Enemy" type="CharacterBody2D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 26
|
||||
collision_priority = 2.0
|
||||
collision_mask = 24
|
||||
script = ExtResource("5")
|
||||
|
||||
[node name="PlatformDetector" type="RayCast2D" parent="."]
|
||||
position = Vector2(0, 6)
|
||||
target_position = Vector2(0, 8)
|
||||
collision_mask = 8
|
||||
|
||||
[node name="FloorDetectorLeft" type="RayCast2D" parent="."]
|
||||
position = Vector2(-15, -4)
|
||||
target_position = Vector2(0, 35)
|
||||
collision_mask = 24
|
||||
|
||||
[node name="FloorDetectorRight" type="RayCast2D" parent="."]
|
||||
position = Vector2(15.5, -3)
|
||||
target_position = Vector2(0, 35)
|
||||
collision_mask = 24
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource("1")
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("4")
|
||||
flip_h = true
|
||||
hframes = 8
|
||||
vframes = 2
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_nnb1f")
|
||||
"": SubResource("AnimationLibrary_0kjfc")
|
||||
}
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
@@ -277,17 +293,13 @@ amount = 32
|
||||
lifetime = 0.5
|
||||
one_shot = true
|
||||
speed_scale = 1.2
|
||||
explosiveness = 0.76
|
||||
explosiveness = 0.7
|
||||
draw_order = 215832976
|
||||
texture = ExtResource("1")
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 8.0
|
||||
emission_sphere_radius = 16.0
|
||||
spread = 180.0
|
||||
gravity = Vector2(0, 250)
|
||||
initial_velocity_min = 25.0
|
||||
initial_velocity_max = 80.0
|
||||
angular_velocity_max = 45.0
|
||||
scale_amount_max = 1.2
|
||||
gravity = Vector2(0, -250)
|
||||
color_ramp = SubResource("7")
|
||||
|
||||
[node name="Hit" type="AudioStreamPlayer2D" parent="."]
|
||||
|
||||
|
Before Width: | Height: | Size: 786 B After Width: | Height: | Size: 9.7 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cdy6gikv8wka7"
|
||||
uid="uid://bjjywmvba0sve"
|
||||
path="res://.godot/imported/enemy.webp-c5e00d5c5f64233c41f70dc392999636.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bbxjxs8sms61b"
|
||||
uid="uid://duwm7i44o75o2"
|
||||
path="res://.godot/imported/explode.wav-2389d0cf62710ef336bf397194eae82e.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://brtn51vs7jaet"
|
||||
uid="uid://dm7wsawmylc7b"
|
||||
path="res://.godot/imported/hit.wav-02ea2b331eef4f150ed1e5cb9477122b.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bf3wnwihk7ymg"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bf3wnwihk7ymg"]
|
||||
|
||||
[ext_resource type="Script" path="res://game.gd" id="2"]
|
||||
[ext_resource type="PackedScene" uid="uid://dr2p70jo7e4kn" path="res://level/level.tscn" id="3"]
|
||||
[ext_resource type="PackedScene" uid="uid://d0ni64ucb3ym2" path="res://player/player.tscn" id="4"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctgumjaytuoch" path="res://level/level.tscn" id="3"]
|
||||
[ext_resource type="PackedScene" uid="uid://vh7pmputa7r3" path="res://player/player.tscn" id="4"]
|
||||
[ext_resource type="PackedScene" uid="uid://c7ai4bigaryci" path="res://gui/pause_menu_singleplayer.tscn" id="4_x6l06"]
|
||||
[ext_resource type="PackedScene" uid="uid://do7htx4sqmcnh" path="res://music.tscn" id="5_rkna2"]
|
||||
|
||||
[node name="Game" type="Node"]
|
||||
process_mode = 3
|
||||
@@ -20,6 +19,4 @@ layer = 100
|
||||
|
||||
[node name="PauseMenu" parent="InterfaceLayer" instance=ExtResource("4_x6l06")]
|
||||
|
||||
[node name="Music" parent="." instance=ExtResource("5_rkna2")]
|
||||
|
||||
[connection signal="coin_collected" from="Level/Player" to="InterfaceLayer/PauseMenu" method="_on_coin_collected"]
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://2elur2m0il32"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://2elur2m0il32"]
|
||||
|
||||
[ext_resource type="Script" path="res://game_splitscreen.gd" id="1_60qgt"]
|
||||
[ext_resource type="PackedScene" uid="uid://dggactv0aho4p" path="res://gui/pause_menu_splitscreen.tscn" id="2_xkexm"]
|
||||
[ext_resource type="PackedScene" uid="uid://dr2p70jo7e4kn" path="res://level/level.tscn" id="3_e0nyr"]
|
||||
[ext_resource type="PackedScene" uid="uid://d0ni64ucb3ym2" path="res://player/player.tscn" id="4_8j0va"]
|
||||
[ext_resource type="PackedScene" uid="uid://bkyw3e13rupar" path="res://level/parallax_background.tscn" id="5_47vt4"]
|
||||
[ext_resource type="PackedScene" uid="uid://do7htx4sqmcnh" path="res://music.tscn" id="6_q2yet"]
|
||||
[ext_resource type="PackedScene" uid="uid://ctgumjaytuoch" path="res://level/level.tscn" id="3_e0nyr"]
|
||||
[ext_resource type="PackedScene" uid="uid://vh7pmputa7r3" path="res://player/player.tscn" id="4_8j0va"]
|
||||
[ext_resource type="PackedScene" uid="uid://cw6nldo3rjyyq" path="res://level/background/parallax_background.tscn" id="5_47vt4"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_77njx"]
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_5sxld"]
|
||||
gradient = SubResource("Gradient_77njx")
|
||||
width = 2
|
||||
|
||||
[node name="GameSplitscreen" type="Node"]
|
||||
process_mode = 3
|
||||
@@ -27,6 +32,8 @@ anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 0
|
||||
theme_override_icons/grabber = SubResource("GradientTexture1D_5sxld")
|
||||
dragger_visibility = 1
|
||||
|
||||
[node name="ViewportContainer1" type="SubViewportContainer" parent="Black/SplitContainer"]
|
||||
@@ -40,18 +47,20 @@ unique_name_in_owner = true
|
||||
handle_input_locally = false
|
||||
canvas_item_default_texture_filter = 0
|
||||
audio_listener_enable_2d = true
|
||||
size = Vector2i(394, 480)
|
||||
size = Vector2i(399, 480)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="Level" parent="Black/SplitContainer/ViewportContainer1/Viewport1" instance=ExtResource("3_e0nyr")]
|
||||
|
||||
[node name="Player1" parent="Black/SplitContainer/ViewportContainer1/Viewport1" instance=ExtResource("4_8j0va")]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1.5, 2.5, 1)
|
||||
position = Vector2(90, 546)
|
||||
action_suffix = "_p1"
|
||||
|
||||
[node name="Player2" parent="Black/SplitContainer/ViewportContainer1/Viewport1" instance=ExtResource("4_8j0va")]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(3, 1, 1, 1)
|
||||
position = Vector2(120, 546)
|
||||
action_suffix = "_p2"
|
||||
|
||||
@@ -66,7 +75,7 @@ unique_name_in_owner = true
|
||||
handle_input_locally = false
|
||||
canvas_item_default_texture_filter = 0
|
||||
audio_listener_enable_2d = true
|
||||
size = Vector2i(394, 480)
|
||||
size = Vector2i(399, 480)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="ParallaxBackground" parent="Black/SplitContainer/ViewportContainer2/Viewport2" instance=ExtResource("5_47vt4")]
|
||||
@@ -76,7 +85,5 @@ layer = 100
|
||||
|
||||
[node name="PauseMenu" parent="InterfaceLayer" instance=ExtResource("2_xkexm")]
|
||||
|
||||
[node name="Music" parent="." instance=ExtResource("6_q2yet")]
|
||||
|
||||
[connection signal="coin_collected" from="Black/SplitContainer/ViewportContainer1/Viewport1/Player1" to="InterfaceLayer/PauseMenu" method="_on_coin_collected"]
|
||||
[connection signal="coin_collected" from="Black/SplitContainer/ViewportContainer1/Viewport1/Player2" to="InterfaceLayer/PauseMenu" method="_on_coin_collected"]
|
||||
|
||||
@@ -1,49 +1,99 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://bsyqg6eh3wl5i"]
|
||||
[gd_scene load_steps=17 format=3 uid="uid://bsyqg6eh3wl5i"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://da4noqsij73it" path="res://gui/theme.tres" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://l42us5qso8v4" path="res://level/coin.webp" id="2"]
|
||||
[ext_resource type="Theme" uid="uid://da4noqsij73it" path="res://gui/theme.tres" id="1_mctnl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cj2absxg54f75" path="res://level/coin.webp" id="2"]
|
||||
[ext_resource type="Script" path="res://gui/coins_counter.gd" id="3"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="2"]
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0ik14"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(0, 0, 8, 8)
|
||||
region = Rect2(0, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="3"]
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_yoomt"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(8, 0, 8, 8)
|
||||
region = Rect2(32, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="4"]
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_8eq38"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(16, 0, 8, 8)
|
||||
region = Rect2(64, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="5"]
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_2j420"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(24, 0, 8, 8)
|
||||
region = Rect2(96, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5fk3k"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(128, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7u8xx"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(160, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_8cxbx"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(192, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0rdkm"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(224, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6q04a"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(0, 32, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_tbg33"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(32, 32, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_tpmon"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(64, 32, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hsrt4"]
|
||||
atlas = ExtResource("2")
|
||||
region = Rect2(96, 32, 32, 32)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="6"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("2")
|
||||
"texture": SubResource("AtlasTexture_0ik14")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("3")
|
||||
"texture": SubResource("AtlasTexture_yoomt")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("4")
|
||||
"texture": SubResource("AtlasTexture_8eq38")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("5")
|
||||
"texture": SubResource("AtlasTexture_2j420")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("4")
|
||||
"texture": SubResource("AtlasTexture_5fk3k")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("3")
|
||||
"texture": SubResource("AtlasTexture_7u8xx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_8cxbx")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_0rdkm")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_6q04a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_tbg33")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_tpmon")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hsrt4")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"coin_spinning",
|
||||
"speed": 6.5
|
||||
"speed": 12.0
|
||||
}]
|
||||
|
||||
[node name="CoinsCounter" type="Panel"]
|
||||
@@ -51,20 +101,27 @@ offset_left = 5.0
|
||||
offset_top = 5.0
|
||||
offset_right = 100.0
|
||||
offset_bottom = 45.0
|
||||
theme = ExtResource("1")
|
||||
theme = ExtResource("1_mctnl")
|
||||
script = ExtResource("3")
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 0
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_right = -8.0
|
||||
text = "100"
|
||||
offset_left = -1.0
|
||||
offset_top = -3.0
|
||||
offset_right = -9.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 8
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "99"
|
||||
horizontal_alignment = 2
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
position = Vector2(21.5, 22.5)
|
||||
scale = Vector2(4.375, 4.375)
|
||||
position = Vector2(23.5, 24.5)
|
||||
sprite_frames = SubResource("6")
|
||||
animation = &"coin_spinning"
|
||||
|
||||
5
2d/platformer/gui/kenney_mini_square.tres
Normal file
@@ -0,0 +1,5 @@
|
||||
[gd_resource type="FontFile" format=2]
|
||||
|
||||
[resource]
|
||||
antialiased = false
|
||||
font_path = "res://assets/theme/fonts/kenney_mini_square.ttf"
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://bk80b6owsrioj"
|
||||
uid="uid://wqrno8lackrm"
|
||||
path="res://.godot/imported/kenney_mini_square.ttf-14b0a28a89225c31efd7626f5228f467.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_resource type="Theme" load_steps=7 format=3 uid="uid://da4noqsij73it"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://bk80b6owsrioj" path="res://gui/kenney_mini_square.ttf" id="1_f0sjs"]
|
||||
[ext_resource type="FontFile" uid="uid://wqrno8lackrm" path="res://gui/kenney_mini_square.ttf" id="1_f0sjs"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="1"]
|
||||
content_margin_left = 6.0
|
||||
|
||||
|
Before Width: | Height: | Size: 930 B After Width: | Height: | Size: 670 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkvmtr3ieug3l"
|
||||
uid="uid://tgw4f8fu0btj"
|
||||
path="res://.godot/imported/touch_button_fire.webp-dccf84dcf0f617f42794a4bab6e5b347.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 552 B After Width: | Height: | Size: 560 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://xbywv0ti1u0h"
|
||||
uid="uid://c6rum08i3ntoo"
|
||||
path="res://.godot/imported/touch_button_jump.webp-72d09f543801d684298fbadf893197c2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 532 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://byv1xhmnegdap"
|
||||
uid="uid://8g15fmgwiffk"
|
||||
path="res://.godot/imported/touch_button_left.webp-f44154539d59fd4f5b3597e8703bbc6a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 538 B After Width: | Height: | Size: 536 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://byg0psif5h7ak"
|
||||
uid="uid://d3frwb2tyw2r7"
|
||||
path="res://.godot/imported/touch_button_right.webp-ec9f97ce35fcf0bf570ff19f4fcaecc8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 844 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dpxlcfssx0etu"
|
||||
uid="uid://bi5cse7d4spxa"
|
||||
path="res://.godot/imported/icon.webp-e94f9a68b0f625a567a797079e4d325f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
BIN
2d/platformer/level/background/cloud_1.webp
Normal file
|
After Width: | Height: | Size: 830 B |
34
2d/platformer/level/background/cloud_1.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://t8otskslwopy"
|
||||
path="res://.godot/imported/cloud_1.webp-c65f6a46c6e6e73306ba4ed0326c749e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/background/cloud_1.webp"
|
||||
dest_files=["res://.godot/imported/cloud_1.webp-c65f6a46c6e6e73306ba4ed0326c749e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/background/cloud_2.webp
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
34
2d/platformer/level/background/cloud_2.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dud80ds6rq6vr"
|
||||
path="res://.godot/imported/cloud_2.webp-32c8608178e58b5f5de05f3d51d6cca6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/background/cloud_2.webp"
|
||||
dest_files=["res://.godot/imported/cloud_2.webp-32c8608178e58b5f5de05f3d51d6cca6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/background/cloud_3.webp
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
34
2d/platformer/level/background/cloud_3.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://twy8cs78gqbv"
|
||||
path="res://.godot/imported/cloud_3.webp-b6b85fc4dad9fe6169463a7352ceaa46.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/background/cloud_3.webp"
|
||||
dest_files=["res://.godot/imported/cloud_3.webp-b6b85fc4dad9fe6169463a7352ceaa46.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/background/distant_platforms_1.webp
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://eeitd2vus25o"
|
||||
path="res://.godot/imported/distant_platforms_1.webp-dd0c47297581991d9270b74920caa0de.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/background/distant_platforms_1.webp"
|
||||
dest_files=["res://.godot/imported/distant_platforms_1.webp-dd0c47297581991d9270b74920caa0de.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/background/distant_platforms_2.webp
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d003shl6ntver"
|
||||
path="res://.godot/imported/distant_platforms_2.webp-cfb64fd24d51633ea9b69670abc2c765.ctex"
|
||||
uid="uid://cvknem5bj24sc"
|
||||
path="res://.godot/imported/distant_platforms_2.webp-c94d775a28abafa5c8dffb39f952d140.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/distant_platforms_2.webp"
|
||||
dest_files=["res://.godot/imported/distant_platforms_2.webp-cfb64fd24d51633ea9b69670abc2c765.ctex"]
|
||||
source_file="res://level/background/distant_platforms_2.webp"
|
||||
dest_files=["res://.godot/imported/distant_platforms_2.webp-c94d775a28abafa5c8dffb39f952d140.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
156
2d/platformer/level/background/parallax_background.tscn
Normal file
@@ -0,0 +1,156 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://cw6nldo3rjyyq"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cvknem5bj24sc" path="res://level/background/distant_platforms_2.webp" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://osu4k0jdk3wa" path="res://level/background/sky.webp" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://twy8cs78gqbv" path="res://level/background/cloud_3.webp" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://dud80ds6rq6vr" path="res://level/background/cloud_2.webp" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://eeitd2vus25o" path="res://level/background/distant_platforms_1.webp" id="6"]
|
||||
[ext_resource type="Texture2D" uid="uid://t8otskslwopy" path="res://level/background/cloud_1.webp" id="7"]
|
||||
|
||||
[node name="ParallaxBackground" type="ParallaxBackground"]
|
||||
scroll_base_scale = Vector2(0.1, 0)
|
||||
|
||||
[node name="Sky" type="ParallaxLayer" parent="."]
|
||||
motion_scale = Vector2(0.2, 1)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Sky"]
|
||||
position = Vector2(-809, 58)
|
||||
scale = Vector2(1.2, 1.2)
|
||||
texture = ExtResource("2")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Sky"]
|
||||
position = Vector2(-809, 0)
|
||||
scale = Vector2(1.2, 1.2)
|
||||
texture = ExtResource("2")
|
||||
centered = false
|
||||
|
||||
[node name="Clouds" type="ParallaxLayer" parent="."]
|
||||
motion_scale = Vector2(0.1, 1)
|
||||
motion_offset = Vector2(-550, 0)
|
||||
|
||||
[node name="CloudGroup1" type="Node2D" parent="Clouds"]
|
||||
position = Vector2(-780, 0)
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(470, 4)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(726, 91)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(1133, 113)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(1513, 165)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(396, 109)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup2" type="Node2D" parent="Clouds"]
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-135, 213)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(19, 77)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite7" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(140, 261)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup3" type="Node2D" parent="Clouds"]
|
||||
position = Vector2(390, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(1034, -60)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite7" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(491, 251)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(545, 108)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-164, 212)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite8" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(287, 220)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup4" type="Node2D" parent="Clouds"]
|
||||
position = Vector2(780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-293, 64)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-229, 199)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(83, 115)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite7" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(7, 177)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(226, 14)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("7")
|
||||
centered = false
|
||||
|
||||
[node name="Mountains2" type="ParallaxLayer" parent="."]
|
||||
position = Vector2(0, 243)
|
||||
motion_scale = Vector2(0.2, 1)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains2"]
|
||||
position = Vector2(567, 301.2)
|
||||
texture = ExtResource("1")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 2048, 251.104)
|
||||
|
||||
[node name="Mountains1" type="ParallaxLayer" parent="."]
|
||||
position = Vector2(0, 246)
|
||||
motion_scale = Vector2(0.4, 1)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains1"]
|
||||
position = Vector2(437, 278.2)
|
||||
scale = Vector2(1.2, 1.2)
|
||||
texture = ExtResource("6")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 2048, 251.104)
|
||||
BIN
2d/platformer/level/background/sky.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://go76jbr7e1px"
|
||||
path="res://.godot/imported/player.webp-f8efd9c2246a95708b9c4853ed21513e.ctex"
|
||||
uid="uid://osu4k0jdk3wa"
|
||||
path="res://.godot/imported/sky.webp-eab5274085f2398ffa09838fc9108cee.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://player/player.webp"
|
||||
dest_files=["res://.godot/imported/player.webp-f8efd9c2246a95708b9c4853ed21513e.ctex"]
|
||||
source_file="res://level/background/sky.webp"
|
||||
dest_files=["res://.godot/imported/sky.webp-eab5274085f2398ffa09838fc9108cee.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 138 B |
|
Before Width: | Height: | Size: 214 B |
|
Before Width: | Height: | Size: 104 B |
@@ -1,12 +1,11 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://b2xsfn7h7komw"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://c3dh7xb6ef76q"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://l42us5qso8v4" path="res://level/coin.webp" id="2"]
|
||||
[ext_resource type="AudioStream" uid="uid://bw67pgdlhpqd0" path="res://player/coin_pickup.wav" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://cj2absxg54f75" path="res://level/coin.webp" id="1"]
|
||||
[ext_resource type="AudioStream" uid="uid://w4j7xs5uhoer" path="res://player/coin_pickup.wav" id="3"]
|
||||
[ext_resource type="Script" path="res://level/coin.gd" id="4"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_mfug7"]
|
||||
resource_name = "RESET"
|
||||
length = 0.01
|
||||
[sub_resource type="Animation" id="Animation_4kkvr"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
@@ -16,45 +15,9 @@ tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"update": 0,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite2D:frame")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="1"]
|
||||
resource_name = "picked"
|
||||
@@ -67,10 +30,10 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"times": PackedFloat32Array(0, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0]
|
||||
"values": [0, 11]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
@@ -79,7 +42,7 @@ tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(1.5),
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
@@ -93,7 +56,7 @@ tracks/2/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.25, 1.25),
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
@@ -107,7 +70,7 @@ tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"update": 0,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
@@ -139,7 +102,6 @@ tracks/5/keys = {
|
||||
tracks/5/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="2"]
|
||||
length = 1.5
|
||||
loop_mode = 1
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
@@ -149,7 +111,7 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5),
|
||||
"times": PackedFloat32Array(0, 0.16675, 0.3335, 0.50025, 0.667, 0.83375, 1.0005),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2, 3, 2, 1, 0]
|
||||
@@ -191,29 +153,32 @@ tracks/3/keys = {
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fwb0h"]
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_i7oeb"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_mfug7"),
|
||||
"RESET": SubResource("Animation_4kkvr"),
|
||||
"picked": SubResource("1"),
|
||||
"spinning": SubResource("2")
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id="3"]
|
||||
radius = 5.0
|
||||
radius = 10.0499
|
||||
|
||||
[node name="Coin" type="Area2D"]
|
||||
collision_layer = 0
|
||||
monitorable = false
|
||||
script = ExtResource("4")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2")
|
||||
hframes = 4
|
||||
scale = Vector2(0.65, 0.65)
|
||||
texture = ExtResource("1")
|
||||
hframes = 8
|
||||
vframes = 2
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
autoplay = "spinning"
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_fwb0h")
|
||||
"": SubResource("AnimationLibrary_i7oeb")
|
||||
}
|
||||
autoplay = "spinning"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("3")
|
||||
|
||||
|
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 1.3 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://l42us5qso8v4"
|
||||
uid="uid://cj2absxg54f75"
|
||||
path="res://.godot/imported/coin.webp-1d50c095672512acb2df6e9dbf7e85c6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
17
2d/platformer/level/level.gd
Normal file
@@ -0,0 +1,17 @@
|
||||
extends Node2D
|
||||
|
||||
|
||||
const LIMIT_LEFT = -315
|
||||
const LIMIT_TOP = -250
|
||||
const LIMIT_RIGHT = 955
|
||||
const LIMIT_BOTTOM = 690
|
||||
|
||||
|
||||
func _ready():
|
||||
for child in get_children():
|
||||
if child is Player:
|
||||
var camera = child.get_node("Camera")
|
||||
camera.limit_left = LIMIT_LEFT
|
||||
camera.limit_top = LIMIT_TOP
|
||||
camera.limit_right = LIMIT_RIGHT
|
||||
camera.limit_bottom = LIMIT_BOTTOM
|
||||
|
Before Width: | Height: | Size: 544 B |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dpdd5ioofxcur"
|
||||
path="res://.godot/imported/one_way_platform.png-ff82db5f4cf9bbd816ae5115d1b41cf7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/one_way_platform.png"
|
||||
dest_files=["res://.godot/imported/one_way_platform.png-ff82db5f4cf9bbd816ae5115d1b41cf7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
Before Width: | Height: | Size: 484 B |
@@ -1,178 +0,0 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bkyw3e13rupar"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://d003shl6ntver" path="res://level/distant_platforms_2.webp" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://cnxf4hsvrcgka" path="res://level/sky.webp" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://b4n7s65t0qoep" path="res://level/cloud_1.webp" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://cubkvnu4fdwki" path="res://level/cloud_2.webp" id="4"]
|
||||
[ext_resource type="Texture2D" uid="uid://5tho6j8r4eam" path="res://level/cloud_3.webp" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://smxp1wviat8" path="res://level/distant_platforms_1.webp" id="6"]
|
||||
|
||||
[node name="ParallaxBackground" type="ParallaxBackground"]
|
||||
scroll_base_scale = Vector2(0.4, 0)
|
||||
|
||||
[node name="Sky" type="ParallaxLayer" parent="."]
|
||||
motion_mirroring = Vector2(400, 0)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Sky"]
|
||||
scale = Vector2(64, 0.94)
|
||||
texture = ExtResource("2")
|
||||
centered = false
|
||||
|
||||
[node name="Clouds" type="ParallaxLayer" parent="."]
|
||||
motion_scale = Vector2(0.1, 1)
|
||||
motion_offset = Vector2(-550, 0)
|
||||
|
||||
[node name="CloudGroup1" type="Node2D" parent="Clouds"]
|
||||
position = Vector2(-780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup1"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup2" type="Node2D" parent="Clouds"]
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup2"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup3" type="Node2D" parent="Clouds"]
|
||||
position = Vector2(390, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup3"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="CloudGroup4" type="Node2D" parent="Clouds"]
|
||||
position = Vector2(780, 0)
|
||||
|
||||
[node name="Sprite1" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-200, 120)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite2" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(100, 10)
|
||||
texture = ExtResource("3")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite3" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(-60, 40)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite4" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(150, 65)
|
||||
texture = ExtResource("4")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite5" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(15, 75)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Sprite6" type="Sprite2D" parent="Clouds/CloudGroup4"]
|
||||
position = Vector2(225, 35)
|
||||
texture = ExtResource("5")
|
||||
centered = false
|
||||
|
||||
[node name="Mountains2" type="ParallaxLayer" parent="."]
|
||||
position = Vector2(0, 243)
|
||||
motion_scale = Vector2(0.2, 1)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains2"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource("1")
|
||||
centered = false
|
||||
offset = Vector2(0, -64)
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 2048, 128)
|
||||
|
||||
[node name="Mountains1" type="ParallaxLayer" parent="."]
|
||||
position = Vector2(0, 246)
|
||||
motion_scale = Vector2(0.4, 1)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Mountains1"]
|
||||
position = Vector2(0, -64)
|
||||
texture = ExtResource("6")
|
||||
centered = false
|
||||
offset = Vector2(0, -64)
|
||||
region_enabled = true
|
||||
region_rect = Rect2(0, 0, 2048, 128)
|
||||
@@ -1,19 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bfylfwu4pwywv"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://8p65ui1ydnff" path="res://level/moving_platform.webp" id="2"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="1"]
|
||||
size = Vector2(94, 12)
|
||||
|
||||
[node name="Platform" type="CharacterBody2D"]
|
||||
z_index = -1
|
||||
collision_layer = 8
|
||||
collision_mask = 0
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -4)
|
||||
shape = SubResource("1")
|
||||
one_way_collision = true
|
||||
BIN
2d/platformer/level/platforms/moving_platform.webp
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://smxp1wviat8"
|
||||
path="res://.godot/imported/distant_platforms_1.webp-3e434db11cd91084f2225ce02ba95102.ctex"
|
||||
uid="uid://bxsmiv7k3fngt"
|
||||
path="res://.godot/imported/moving_platform.webp-824eb0b4847e7f3addce4f7937b2372d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/distant_platforms_1.webp"
|
||||
dest_files=["res://.godot/imported/distant_platforms_1.webp-3e434db11cd91084f2225ce02ba95102.ctex"]
|
||||
source_file="res://level/platforms/moving_platform.webp"
|
||||
dest_files=["res://.godot/imported/moving_platform.webp-824eb0b4847e7f3addce4f7937b2372d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
2d/platformer/level/platforms/one_way_platform.webp
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://db21c324q8p5n"
|
||||
path="res://.godot/imported/one_way_platform.webp-184fac31b4e1b4bd4c4e6085ce99357a.ctex"
|
||||
uid="uid://dbcbwhddtu3x"
|
||||
path="res://.godot/imported/one_way_platform.webp-c9ee141e1641b48bda593a8585ce20a7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/one_way_platform.webp"
|
||||
dest_files=["res://.godot/imported/one_way_platform.webp-184fac31b4e1b4bd4c4e6085ce99357a.ctex"]
|
||||
source_file="res://level/platforms/one_way_platform.webp"
|
||||
dest_files=["res://.godot/imported/one_way_platform.webp-c9ee141e1641b48bda593a8585ce20a7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
174
2d/platformer/level/platforms/platform.tscn
Normal file
@@ -0,0 +1,174 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://cky6e5nl0nyod"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://djwm5nol3d801" path="res://level/props/wind_sway.tres" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bxsmiv7k3fngt" path="res://level/platforms/moving_platform.webp" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://bj6am5nfc0k73" path="res://level/props/grass_1.webp" id="3"]
|
||||
[ext_resource type="Texture2D" uid="uid://bju7r7jqn8bqy" path="res://level/props/grass_2.webp" id="4"]
|
||||
[ext_resource type="Texture2D" uid="uid://upfcr5xg5fvh" path="res://level/props/grass_3.webp" id="5"]
|
||||
[ext_resource type="Texture2D" uid="uid://cqydct6vajobg" path="res://level/props/bush_1.webp" id="6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bu54lwrkcng25" path="res://level/props/vine_2.webp" id="7"]
|
||||
[ext_resource type="Texture2D" uid="uid://bvu4vgnc84r84" path="res://level/props/vine_1.webp" id="8"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="1"]
|
||||
size = Vector2(192, 27)
|
||||
|
||||
[node name="Platform" type="AnimatableBody2D"]
|
||||
z_index = -1
|
||||
position = Vector2(-1, 0)
|
||||
collision_layer = 8
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -7.5)
|
||||
shape = SubResource("1")
|
||||
one_way_collision = true
|
||||
|
||||
[node name="g67" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(77, -37)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("3")
|
||||
|
||||
[node name="g69" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-1.99999, -38)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("3")
|
||||
|
||||
[node name="g68" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-52, -35)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("3")
|
||||
|
||||
[node name="g1" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-36, -35)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("5")
|
||||
|
||||
[node name="g3" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-82, -33)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("5")
|
||||
|
||||
[node name="g2" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(31, -36)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("5")
|
||||
|
||||
[node name="g4" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-22, -30)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("5")
|
||||
|
||||
[node name="g14" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(51, -38)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("4")
|
||||
|
||||
[node name="g17" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(65, -32)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("4")
|
||||
|
||||
[node name="g16" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(17, -36)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("4")
|
||||
|
||||
[node name="g15" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-71, -35)
|
||||
scale = Vector2(0.8, 0.8)
|
||||
texture = ExtResource("4")
|
||||
|
||||
[node name="B3" type="Sprite2D" parent="."]
|
||||
z_index = -2
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-2, -58)
|
||||
rotation = -3.14159
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("6")
|
||||
|
||||
[node name="B4" type="Sprite2D" parent="."]
|
||||
z_index = -2
|
||||
material = ExtResource("1")
|
||||
position = Vector2(37, -42)
|
||||
rotation = -3.14159
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("6")
|
||||
|
||||
[node name="B5" type="Sprite2D" parent="."]
|
||||
z_index = -2
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-32, -41)
|
||||
texture = ExtResource("6")
|
||||
|
||||
[node name="v31" type="Sprite2D" parent="."]
|
||||
z_index = 1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-21, 18)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("8")
|
||||
|
||||
[node name="v35" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(35, 7)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("8")
|
||||
|
||||
[node name="v32" type="Sprite2D" parent="."]
|
||||
z_index = 1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(87, 16)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("8")
|
||||
|
||||
[node name="v33" type="Sprite2D" parent="."]
|
||||
z_index = 1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-85, 15)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("7")
|
||||
|
||||
[node name="v34" type="Sprite2D" parent="."]
|
||||
z_index = 1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(56, 18)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("7")
|
||||
|
||||
[node name="v36" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-9, 11)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("7")
|
||||
|
||||
[node name="v37" type="Sprite2D" parent="."]
|
||||
z_index = -1
|
||||
material = ExtResource("1")
|
||||
position = Vector2(-61, 7)
|
||||
scale = Vector2(1, -1)
|
||||
texture = ExtResource("7")
|
||||
BIN
2d/platformer/level/props/bush_1.webp
Normal file
|
After Width: | Height: | Size: 726 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b4n7s65t0qoep"
|
||||
path="res://.godot/imported/cloud_1.webp-d4440f8a56714fd63d83c7074d20ace3.ctex"
|
||||
uid="uid://cqydct6vajobg"
|
||||
path="res://.godot/imported/bush_1.webp-2c941d4905fffb7aac8b9a4f0795f477.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/cloud_1.webp"
|
||||
dest_files=["res://.godot/imported/cloud_1.webp-d4440f8a56714fd63d83c7074d20ace3.ctex"]
|
||||
source_file="res://level/props/bush_1.webp"
|
||||
dest_files=["res://.godot/imported/bush_1.webp-2c941d4905fffb7aac8b9a4f0795f477.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
2d/platformer/level/props/fern_1.webp
Normal file
|
After Width: | Height: | Size: 850 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cubkvnu4fdwki"
|
||||
path="res://.godot/imported/cloud_2.webp-6870de4e2ed6536e37af4c22aa731ad1.ctex"
|
||||
uid="uid://c5xpotfxdi0ms"
|
||||
path="res://.godot/imported/fern_1.webp-6432deec8f4738ae772ee4830c3e28c1.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/cloud_2.webp"
|
||||
dest_files=["res://.godot/imported/cloud_2.webp-6870de4e2ed6536e37af4c22aa731ad1.ctex"]
|
||||
source_file="res://level/props/fern_1.webp"
|
||||
dest_files=["res://.godot/imported/fern_1.webp-6432deec8f4738ae772ee4830c3e28c1.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
2d/platformer/level/props/flower_1.webp
Normal file
|
After Width: | Height: | Size: 190 B |
34
2d/platformer/level/props/flower_1.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ddmq5iwm2qd1j"
|
||||
path="res://.godot/imported/flower_1.webp-84ba29d4e2ecc60b0572e1c5d894fe0d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/flower_1.webp"
|
||||
dest_files=["res://.godot/imported/flower_1.webp-84ba29d4e2ecc60b0572e1c5d894fe0d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/grass_1.webp
Normal file
|
After Width: | Height: | Size: 294 B |
34
2d/platformer/level/props/grass_1.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bj6am5nfc0k73"
|
||||
path="res://.godot/imported/grass_1.webp-1b5cfbc212a9ab5d9a705dce57a0e8a2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/grass_1.webp"
|
||||
dest_files=["res://.godot/imported/grass_1.webp-1b5cfbc212a9ab5d9a705dce57a0e8a2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/grass_2.webp
Normal file
|
After Width: | Height: | Size: 276 B |
34
2d/platformer/level/props/grass_2.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bju7r7jqn8bqy"
|
||||
path="res://.godot/imported/grass_2.webp-0428af689a89f0d5f399b3adac76e01e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/grass_2.webp"
|
||||
dest_files=["res://.godot/imported/grass_2.webp-0428af689a89f0d5f399b3adac76e01e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/grass_3.webp
Normal file
|
After Width: | Height: | Size: 294 B |
34
2d/platformer/level/props/grass_3.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://upfcr5xg5fvh"
|
||||
path="res://.godot/imported/grass_3.webp-ed068a7b9ddb78a9d7877cb89604c0fd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/grass_3.webp"
|
||||
dest_files=["res://.godot/imported/grass_3.webp-ed068a7b9ddb78a9d7877cb89604c0fd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/ground_flowers_1.webp
Normal file
|
After Width: | Height: | Size: 90 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://8p65ui1ydnff"
|
||||
path="res://.godot/imported/moving_platform.webp-dd4a79a18c99da84f4c06de09878b0a4.ctex"
|
||||
uid="uid://crfy1osk1c1gc"
|
||||
path="res://.godot/imported/ground_flowers_1.webp-708b8de83edb7e5a8a4e4107d5ce362b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/moving_platform.webp"
|
||||
dest_files=["res://.godot/imported/moving_platform.webp-dd4a79a18c99da84f4c06de09878b0a4.ctex"]
|
||||
source_file="res://level/props/ground_flowers_1.webp"
|
||||
dest_files=["res://.godot/imported/ground_flowers_1.webp-708b8de83edb7e5a8a4e4107d5ce362b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
2d/platformer/level/props/rock_1.webp
Normal file
|
After Width: | Height: | Size: 656 B |
34
2d/platformer/level/props/rock_1.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://co8bwstg3ea6x"
|
||||
path="res://.godot/imported/rock_1.webp-c802a1ccc33f04fcad7b9e7f864b9b7c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/rock_1.webp"
|
||||
dest_files=["res://.godot/imported/rock_1.webp-c802a1ccc33f04fcad7b9e7f864b9b7c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/tree_1.webp
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://5tho6j8r4eam"
|
||||
path="res://.godot/imported/cloud_3.webp-a303ee6af47d3df137be263a98a9fa7d.ctex"
|
||||
uid="uid://icddaryasunc"
|
||||
path="res://.godot/imported/tree_1.webp-f58e5053ffaef9e0095066ea1992f7cb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/cloud_3.webp"
|
||||
dest_files=["res://.godot/imported/cloud_3.webp-a303ee6af47d3df137be263a98a9fa7d.ctex"]
|
||||
source_file="res://level/props/tree_1.webp"
|
||||
dest_files=["res://.godot/imported/tree_1.webp-f58e5053ffaef9e0095066ea1992f7cb.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
BIN
2d/platformer/level/props/tree_2.webp
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
34
2d/platformer/level/props/tree_2.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dea1a76o6b0ix"
|
||||
path="res://.godot/imported/tree_2.webp-c6a111f52655a9e5158dd0dc90d26884.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/tree_2.webp"
|
||||
dest_files=["res://.godot/imported/tree_2.webp-c6a111f52655a9e5158dd0dc90d26884.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/vine_1.webp
Normal file
|
After Width: | Height: | Size: 156 B |
34
2d/platformer/level/props/vine_1.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bvu4vgnc84r84"
|
||||
path="res://.godot/imported/vine_1.webp-6dd0b81d28006107c2ef3c2b0712758c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/vine_1.webp"
|
||||
dest_files=["res://.godot/imported/vine_1.webp-6dd0b81d28006107c2ef3c2b0712758c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
2d/platformer/level/props/vine_2.webp
Normal file
|
After Width: | Height: | Size: 178 B |
34
2d/platformer/level/props/vine_2.webp.import
Normal file
@@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bu54lwrkcng25"
|
||||
path="res://.godot/imported/vine_2.webp-fefcb8be103ba2c2eadfee25e1253e7a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/props/vine_2.webp"
|
||||
dest_files=["res://.godot/imported/vine_2.webp-fefcb8be103ba2c2eadfee25e1253e7a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
58
2d/platformer/level/props/wind_sway.tres
Normal file
@@ -0,0 +1,58 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://djwm5nol3d801"]
|
||||
|
||||
[sub_resource type="Shader" id="1"]
|
||||
code = "// original wind shader from https://github.com/Maujoe/godot-simple-wind-shader-2d/tree/master/assets/maujoe.simple_wind_shader_2d
|
||||
// original script modified by HungryProton so that the assets are moving differently : https://pastebin.com/VL3AfV8D
|
||||
//
|
||||
// speed - The speed of the wind movement.
|
||||
// minStrength - The minimal strength of the wind movement.
|
||||
// maxStrength - The maximal strength of the wind movement.
|
||||
// strengthScale - Scalefactor for the wind strength.
|
||||
// interval - The time between minimal and maximal strength changes.
|
||||
// detail - The detail (number of waves) of the wind movement.
|
||||
// distortion - The strength of geometry distortion.
|
||||
// heightOffset - The height where the wind begins to move. By default 0.0.
|
||||
|
||||
shader_type canvas_item;
|
||||
render_mode blend_mix;
|
||||
|
||||
// Wind settings.
|
||||
uniform float speed = 1.0;
|
||||
uniform float minStrength : hint_range(0.0, 1.0) = 0.05;
|
||||
uniform float maxStrength : hint_range(0.0, 1.0) = 0.01;
|
||||
uniform float strengthScale = 100.0;
|
||||
uniform float interval = 3.5;
|
||||
uniform float detail = 1.0;
|
||||
uniform float distortion : hint_range(0.0, 1.0);
|
||||
uniform float heightOffset : hint_range(0.0, 1.0);
|
||||
|
||||
// With the offset value, you can if you want different moves for each asset. Just put a random value (1, 2, 3) in the editor. Don't forget to mark the material as unique if you use this
|
||||
uniform float offset = 0;
|
||||
|
||||
|
||||
float getWind(vec2 vertex, vec2 uv, float time){
|
||||
float diff = pow(maxStrength - minStrength, 2.0);
|
||||
float strength = clamp(minStrength + diff + sin(time / interval) * diff, minStrength, maxStrength) * strengthScale;
|
||||
float wind = (sin(time) + cos(time * detail)) * strength * max(0.0, (1.0-uv.y) - heightOffset);
|
||||
|
||||
return wind;
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
vec4 pos = MODEL_MATRIX * vec4(0.0, 0.0, 0.0, 1.0);
|
||||
float time = TIME * speed + offset;
|
||||
//float time = TIME * speed + pos.x * pos.y ; not working when moving...
|
||||
VERTEX.x += getWind(VERTEX.xy, UV, time);
|
||||
}"
|
||||
|
||||
[resource]
|
||||
shader = SubResource("1")
|
||||
shader_parameter/speed = 1.0
|
||||
shader_parameter/minStrength = 0.05
|
||||
shader_parameter/maxStrength = 0.01
|
||||
shader_parameter/strengthScale = 100.0
|
||||
shader_parameter/interval = 3.5
|
||||
shader_parameter/detail = 1.0
|
||||
shader_parameter/distortion = null
|
||||
shader_parameter/heightOffset = null
|
||||
shader_parameter/offset = 0.0
|
||||
|
Before Width: | Height: | Size: 558 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 10 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c1hixfwf86y2q"
|
||||
uid="uid://d0ops71sk562g"
|
||||
path="res://.godot/imported/tiles.webp-4f56cd8ea452f8ba920d65a0b9099010.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://cx6hrmvjvhkt5"
|
||||
uid="uid://dp0tta14mu7ux"
|
||||
path="res://.godot/imported/music.ogg-3bd46d3a4b41702b152014078d12a390.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://do7htx4sqmcnh"]
|
||||
|
||||
[ext_resource type="AudioStream" uid="uid://cx6hrmvjvhkt5" path="res://music.ogg" id="1_8pjkj"]
|
||||
[ext_resource type="AudioStream" uid="uid://dp0tta14mu7ux" path="res://music.ogg" id="1_8pjkj"]
|
||||
|
||||
[node name="Music" type="AudioStreamPlayer"]
|
||||
process_mode = 1
|
||||
stream = ExtResource("1_8pjkj")
|
||||
volume_db = -3.0
|
||||
autoplay = true
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://bdeyraansvyga"]
|
||||
[gd_scene load_steps=13 format=3 uid="uid://df7ddsoclivwe"]
|
||||
|
||||
[ext_resource type="Script" path="res://player/bullet.gd" id="1_cokcn"]
|
||||
[ext_resource type="Texture2D" uid="uid://c2aisfmq85suf" path="res://player/bullet.webp" id="2_4bup8"]
|
||||
[ext_resource type="Texture2D" uid="uid://coj0d33vyyqx1" path="res://player/bullet.webp" id="1"]
|
||||
[ext_resource type="Script" path="res://player/bullet.gd" id="2"]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="1"]
|
||||
|
||||
@@ -10,8 +10,36 @@ blend_mode = 1
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="3"]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_ltbhv"]
|
||||
blend_mode = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_o13ul"]
|
||||
interpolation_mode = 2
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_0sj74"]
|
||||
gradient = SubResource("Gradient_o13ul")
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.5, 0.01)
|
||||
|
||||
[sub_resource type="CircleShape2D" id="4"]
|
||||
radius = 4.5
|
||||
radius = 8.0
|
||||
|
||||
[sub_resource type="Animation" id="Animation_v7668"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="5"]
|
||||
resource_name = "destroy"
|
||||
@@ -33,7 +61,7 @@ tracks/0/keys = {
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite2D:self_modulate")
|
||||
tracks/1/path = NodePath("CPUParticles2D:self_modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
@@ -45,7 +73,7 @@ tracks/1/keys = {
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("GPUParticles2D:self_modulate")
|
||||
tracks/2/path = NodePath("Sprite2D:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
@@ -55,33 +83,44 @@ tracks/2/keys = {
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_li3y6"]
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_iv8gr"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_v7668"),
|
||||
"destroy": SubResource("5")
|
||||
}
|
||||
|
||||
[node name="Bullet" type="RigidBody2D"]
|
||||
z_index = 5
|
||||
material = SubResource("1")
|
||||
collision_layer = 0
|
||||
collision_mask = 26
|
||||
mass = 0.0283333
|
||||
gravity_scale = 0.1
|
||||
continuous_cd = 2
|
||||
max_contacts_reported = 4
|
||||
max_contacts_reported = 1
|
||||
contact_monitor = true
|
||||
script = ExtResource("1_cokcn")
|
||||
script = ExtResource("2")
|
||||
|
||||
[node name="GPUParticles2D" type="CPUParticles2D" parent="."]
|
||||
[node name="CPUParticles2D" type="CPUParticles2D" parent="."]
|
||||
self_modulate = Color(1, 1, 1, 0)
|
||||
material = SubResource("2")
|
||||
emitting = false
|
||||
lifetime = 0.3
|
||||
lifetime = 0.1
|
||||
speed_scale = 3.0
|
||||
texture = ExtResource("2_4bup8")
|
||||
texture = ExtResource("1")
|
||||
spread = 0.0
|
||||
gravity = Vector2(0, 0)
|
||||
color = Color(1, 1, 1, 0.705882)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource("3")
|
||||
texture = ExtResource("2_4bup8")
|
||||
texture = ExtResource("1")
|
||||
|
||||
[node name="Glow" type="Sprite2D" parent="Sprite2D"]
|
||||
modulate = Color(0.501961, 1, 1, 0.25098)
|
||||
material = SubResource("CanvasItemMaterial_ltbhv")
|
||||
scale = Vector2(0.667, 0.667)
|
||||
texture = SubResource("GradientTexture2D_0sj74")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("4")
|
||||
@@ -92,7 +131,7 @@ autostart = true
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_li3y6")
|
||||
"": SubResource("AnimationLibrary_iv8gr")
|
||||
}
|
||||
|
||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||
|
||||
|
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 154 B |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c2aisfmq85suf"
|
||||
uid="uid://coj0d33vyyqx1"
|
||||
path="res://.godot/imported/bullet.webp-afcd8f50a20e81f25285b6f580e633e3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bw67pgdlhpqd0"
|
||||
uid="uid://w4j7xs5uhoer"
|
||||
path="res://.godot/imported/coin_pickup.wav-cc06e43e2f58c4fe505090708655bec0.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
@@ -3,8 +3,8 @@ class_name Gun extends Marker2D
|
||||
## The Cooldown timer controls the cooldown duration between shots.
|
||||
|
||||
|
||||
const BULLET_VELOCITY = 500.0
|
||||
const Bullet = preload("res://player/bullet.tscn")
|
||||
const BULLET_VELOCITY = 850.0
|
||||
const BULLET_SCENE = preload("res://player/bullet.tscn")
|
||||
|
||||
@onready var sound_shoot := $Shoot as AudioStreamPlayer2D
|
||||
@onready var timer := $Cooldown as Timer
|
||||
@@ -14,7 +14,7 @@ const Bullet = preload("res://player/bullet.tscn")
|
||||
func shoot(direction: float = 1.0) -> bool:
|
||||
if not timer.is_stopped():
|
||||
return false
|
||||
var bullet := Bullet.instantiate() as Bullet
|
||||
var bullet := BULLET_SCENE.instantiate() as Bullet
|
||||
bullet.global_position = global_position
|
||||
bullet.linear_velocity = Vector2(direction * BULLET_VELOCITY, 0.0)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://i2vnokf2khqj"
|
||||
uid="uid://sjod173axgwf"
|
||||
path="res://.godot/imported/jump.wav-d94eb6ad27159bf77e7ba7ab65914fbd.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
@@ -3,11 +3,11 @@ class_name Player extends CharacterBody2D
|
||||
|
||||
signal coin_collected()
|
||||
|
||||
const WALK_SPEED = 200.0
|
||||
const WALK_SPEED = 300.0
|
||||
const ACCELERATION_SPEED = WALK_SPEED * 6.0
|
||||
const JUMP_VELOCITY = -400.0
|
||||
const JUMP_VELOCITY = -725.0
|
||||
## Maximum speed at which the player can fall.
|
||||
const TERMINAL_VELOCITY = 400
|
||||
const TERMINAL_VELOCITY = 700
|
||||
|
||||
## The player listens for input actions appended with this suffix.[br]
|
||||
## Used to separate controls for multiple players in splitscreen.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[gd_scene load_steps=18 format=3 uid="uid://d0ni64ucb3ym2"]
|
||||
[gd_scene load_steps=18 format=3 uid="uid://vh7pmputa7r3"]
|
||||
|
||||
[ext_resource type="Script" path="res://player/player.gd" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://go76jbr7e1px" path="res://player/player.webp" id="2"]
|
||||
[ext_resource type="AudioStream" uid="uid://i2vnokf2khqj" path="res://player/jump.wav" id="3"]
|
||||
[ext_resource type="AudioStream" uid="uid://bpxywy45eqgwy" path="res://player/shoot.wav" id="4"]
|
||||
[ext_resource type="Script" path="res://player/gun.gd" id="9"]
|
||||
[ext_resource type="Script" path="res://player/player.gd" id="3"]
|
||||
[ext_resource type="AudioStream" uid="uid://sjod173axgwf" path="res://player/jump.wav" id="5"]
|
||||
[ext_resource type="AudioStream" uid="uid://b01brytl75mwa" path="res://player/shoot.wav" id="6"]
|
||||
[ext_resource type="Script" path="res://player/gun.gd" id="8"]
|
||||
[ext_resource type="Texture2D" uid="uid://cc7o7t0ramd6y" path="res://player/robot.webp" id="9"]
|
||||
|
||||
[sub_resource type="Animation" id="1"]
|
||||
resource_name = "crouch"
|
||||
@@ -20,7 +20,7 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [22]
|
||||
"values": [42]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="2"]
|
||||
@@ -37,7 +37,7 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [21]
|
||||
"values": [48]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="3"]
|
||||
@@ -58,7 +58,7 @@ tracks/0/keys = {
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="4"]
|
||||
length = 7.0
|
||||
loop_mode = 1
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
@@ -67,14 +67,13 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [16, 17, 18, 16, 19, 20, 19, 16]
|
||||
"values": [30, 31, 32, 33]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="5"]
|
||||
length = 0.5
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
@@ -83,10 +82,10 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [25]
|
||||
"values": [34, 35, 36, 37]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="6"]
|
||||
@@ -99,10 +98,10 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [23, 24, 23]
|
||||
"values": [45]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="7"]
|
||||
@@ -118,12 +117,12 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [26]
|
||||
"values": [46]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="8"]
|
||||
length = 1.25
|
||||
step = 0.25
|
||||
length = 0.6
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
@@ -131,15 +130,14 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 0.06003, 0.12006, 0.18009, 0.24012, 0.30015, 0.36018, 0.42021, 0.48024, 0.54027),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2, 3, 4, 0]
|
||||
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="9"]
|
||||
length = 1.25
|
||||
step = 0.25
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
@@ -147,14 +145,15 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 0.06, 0.12, 0.18, 0.24, 0.3, 0.36, 0.42, 0.48, 0.54),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [5, 6, 7, 8, 9, 5]
|
||||
"values": [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="10"]
|
||||
length = 1.25
|
||||
loop_mode = 1
|
||||
step = 0.25
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
@@ -163,13 +162,13 @@ tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 0.25, 0.75, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [10, 11, 12, 13, 14, 5]
|
||||
"values": [34, 35, 36, 37]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_r678v"]
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jnr5f"]
|
||||
_data = {
|
||||
"crouch": SubResource("1"),
|
||||
"falling": SubResource("2"),
|
||||
@@ -184,36 +183,36 @@ _data = {
|
||||
}
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="11"]
|
||||
size = Vector2(20, 28)
|
||||
size = Vector2(42.5, 54.5)
|
||||
|
||||
[node name="Player" type="CharacterBody2D"]
|
||||
collision_mask = 28
|
||||
floor_max_angle = 0.907571
|
||||
floor_snap_length = 20.0
|
||||
safe_margin = 0.2
|
||||
script = ExtResource("1")
|
||||
scale = Vector2(0.8, 0.8)
|
||||
collision_mask = 30
|
||||
floor_constant_speed = true
|
||||
platform_on_leave = 2
|
||||
script = ExtResource("3")
|
||||
|
||||
[node name="ShootAnimation" type="Timer" parent="."]
|
||||
wait_time = 0.2
|
||||
one_shot = true
|
||||
|
||||
[node name="PlatformDetector" type="RayCast2D" parent="."]
|
||||
target_position = Vector2(0, 6)
|
||||
collision_mask = 8
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
position = Vector2(0, -14)
|
||||
texture = ExtResource("2")
|
||||
hframes = 16
|
||||
vframes = 2
|
||||
frame = 16
|
||||
texture = ExtResource("9")
|
||||
hframes = 8
|
||||
vframes = 8
|
||||
|
||||
[node name="Gun" type="Marker2D" parent="Sprite2D"]
|
||||
position = Vector2(14, 1)
|
||||
script = ExtResource("9")
|
||||
script = ExtResource("8")
|
||||
|
||||
[node name="Shoot" type="AudioStreamPlayer2D" parent="Sprite2D/Gun"]
|
||||
position = Vector2(-30.6589, -6.13176)
|
||||
stream = ExtResource("4")
|
||||
stream = ExtResource("6")
|
||||
|
||||
[node name="Cooldown" type="Timer" parent="Sprite2D/Gun"]
|
||||
wait_time = 0.3
|
||||
@@ -221,15 +220,15 @@ one_shot = true
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_r678v")
|
||||
"": SubResource("AnimationLibrary_jnr5f")
|
||||
}
|
||||
|
||||
[node name="Camera" type="Camera2D" parent="."]
|
||||
position = Vector2(0, -28)
|
||||
zoom = Vector2(2, 2)
|
||||
limit_left = -315
|
||||
offset = Vector2(0, 50)
|
||||
limit_left = -715
|
||||
limit_top = -250
|
||||
limit_right = 955
|
||||
limit_right = 1425
|
||||
limit_bottom = 690
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
@@ -237,33 +236,34 @@ position = Vector2(0, -14)
|
||||
shape = SubResource("11")
|
||||
|
||||
[node name="Jump" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("3")
|
||||
stream = ExtResource("5")
|
||||
volume_db = -3.0
|
||||
|
||||
[node name="UI" type="CanvasLayer" parent="."]
|
||||
layer = 0
|
||||
|
||||
[node name="Left" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2(27.7593, 360.87)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
position = Vector2(157, 813)
|
||||
scale = Vector2(2, 2)
|
||||
passby_press = true
|
||||
action = "move_left"
|
||||
visibility_mode = 1
|
||||
|
||||
[node name="Right" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2(121.542, 361.415)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
position = Vector2(425, 813)
|
||||
scale = Vector2(2, 2)
|
||||
passby_press = true
|
||||
action = "move_right"
|
||||
visibility_mode = 1
|
||||
|
||||
[node name="Jump" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2(666.224, 359.02)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
position = Vector2(1871, 813)
|
||||
scale = Vector2(2, 2)
|
||||
action = "jump"
|
||||
visibility_mode = 1
|
||||
|
||||
[node name="Fire" type="TouchScreenButton" parent="UI"]
|
||||
position = Vector2(668.073, 262.788)
|
||||
scale = Vector2(1.49157, 1.46265)
|
||||
position = Vector2(1870, 564)
|
||||
scale = Vector2(2, 2)
|
||||
action = "shoot"
|
||||
visibility_mode = 1
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
BIN
2d/platformer/player/robot.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cnxf4hsvrcgka"
|
||||
path="res://.godot/imported/sky.webp-378e3d4469ee1943579600be36d5a9f5.ctex"
|
||||
uid="uid://cc7o7t0ramd6y"
|
||||
path="res://.godot/imported/robot.webp-39f680d53df0b170662860aae7393568.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://level/sky.webp"
|
||||
dest_files=["res://.godot/imported/sky.webp-378e3d4469ee1943579600be36d5a9f5.ctex"]
|
||||
source_file="res://player/robot.webp"
|
||||
dest_files=["res://.godot/imported/robot.webp-39f680d53df0b170662860aae7393568.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bpxywy45eqgwy"
|
||||
uid="uid://b01brytl75mwa"
|
||||
path="res://.godot/imported/shoot.wav-c76164c7ce3589c9fdcbf989e9819ed2.sample"
|
||||
|
||||
[deps]
|
||||
|
||||