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>
This commit is contained in:
Hugo Locurcio
2024-02-10 01:40:04 +01:00
committed by GitHub
parent 8fc246a051
commit 4d01a2678f
344 changed files with 13796 additions and 2803 deletions

View File

@@ -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 demos 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 levels 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
![Player shooting in the direction of an enemy](screenshots/shoot.webp)
![The entire level layout viewed in the editor](screenshots/layout.webp)
![2D Platformer](screenshots/platformer.webp)
## Music
"Pompy" by Hubert Lamontagne (madbr) https://soundcloud.com/madbr/pompy
[*Pompy*](https://soundcloud.com/madbr/pompy) by Hubert Lamontagne (madbr)

View File

@@ -0,0 +1,4 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://cxpxlqmmdcbk2"]
[resource]
bus/0/volume_db = -11.9576

View File

@@ -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:

View File

@@ -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="."]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -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

View File

@@ -2,7 +2,7 @@
importer="wav"
type="AudioStreamWAV"
uid="uid://bbxjxs8sms61b"
uid="uid://duwm7i44o75o2"
path="res://.godot/imported/explode.wav-2389d0cf62710ef336bf397194eae82e.sample"
[deps]

View File

@@ -2,7 +2,7 @@
importer="wav"
type="AudioStreamWAV"
uid="uid://brtn51vs7jaet"
uid="uid://dm7wsawmylc7b"
path="res://.godot/imported/hit.wav-02ea2b331eef4f150ed1e5cb9477122b.sample"
[deps]

View File

@@ -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"]

View File

@@ -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"]

View File

@@ -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"

View File

@@ -0,0 +1,5 @@
[gd_resource type="FontFile" format=2]
[resource]
antialiased = false
font_path = "res://assets/theme/fonts/kenney_mini_square.ttf"

View File

@@ -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]

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 B

After

Width:  |  Height:  |  Size: 670 B

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

After

Width:  |  Height:  |  Size: 560 B

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 532 B

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

After

Width:  |  Height:  |  Size: 536 B

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 844 B

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -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]

View 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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -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]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 B

View File

@@ -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")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View 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

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

View File

@@ -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)

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -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]

View 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")

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

View File

@@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 B

View File

@@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

View File

@@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

View 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

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://cx6hrmvjvhkt5"
uid="uid://dp0tta14mu7ux"
path="res://.godot/imported/music.ogg-3bd46d3a4b41702b152014078d12a390.oggvorbisstr"
[deps]

View File

@@ -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

View File

@@ -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"]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 B

After

Width:  |  Height:  |  Size: 154 B

View File

@@ -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

View File

@@ -2,7 +2,7 @@
importer="wav"
type="AudioStreamWAV"
uid="uid://bw67pgdlhpqd0"
uid="uid://w4j7xs5uhoer"
path="res://.godot/imported/coin_pickup.wav-cc06e43e2f58c4fe505090708655bec0.sample"
[deps]

View File

@@ -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)

View File

@@ -2,7 +2,7 @@
importer="wav"
type="AudioStreamWAV"
uid="uid://i2vnokf2khqj"
uid="uid://sjod173axgwf"
path="res://.godot/imported/jump.wav-d94eb6ad27159bf77e7ba7ab65914fbd.sample"
[deps]

View File

@@ -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.

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -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]

View File

@@ -2,7 +2,7 @@
importer="wav"
type="AudioStreamWAV"
uid="uid://bpxywy45eqgwy"
uid="uid://b01brytl75mwa"
path="res://.godot/imported/shoot.wav-c76164c7ce3589c9fdcbf989e9819ed2.sample"
[deps]

Some files were not shown because too many files have changed in this diff Show More