abyss WIP
This commit is contained in:
parent
ac3248a912
commit
4120529a53
12 changed files with 311 additions and 10 deletions
BIN
audio/music/moon_trail.mp3
Normal file
BIN
audio/music/moon_trail.mp3
Normal file
Binary file not shown.
15
audio/music/moon_trail.mp3.import
Normal file
15
audio/music/moon_trail.mp3.import
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
path="res://.import/moon_trail.mp3-e5596d3a9a378d4307b426522ca94d8d.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://audio/music/moon_trail.mp3"
|
||||||
|
dest_files=[ "res://.import/moon_trail.mp3-e5596d3a9a378d4307b426522ca94d8d.mp3str" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0
|
BIN
graphics/backgrounds/abyss.png
Normal file
BIN
graphics/backgrounds/abyss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
35
graphics/backgrounds/abyss.png.import
Normal file
35
graphics/backgrounds/abyss.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/abyss.png-ce2d2c9a469b6a1269abd6a6791bd5a0.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/backgrounds/abyss.png"
|
||||||
|
dest_files=[ "res://.import/abyss.png-ce2d2c9a469b6a1269abd6a6791bd5a0.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
graphics/particles/bubble.png
Normal file
BIN
graphics/particles/bubble.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.1 KiB |
35
graphics/particles/bubble.png.import
Normal file
35
graphics/particles/bubble.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/bubble.png-161ac864ae4d227c6f7027dcb5a47f62.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/particles/bubble.png"
|
||||||
|
dest_files=[ "res://.import/bubble.png-161ac864ae4d227c6f7027dcb5a47f62.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
graphics/tiles/abyss.png
Normal file
BIN
graphics/tiles/abyss.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
35
graphics/tiles/abyss.png.import
Normal file
35
graphics/tiles/abyss.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/abyss.png-6103d4163b29dbc50f76fbe18bca735e.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/tiles/abyss.png"
|
||||||
|
dest_files=[ "res://.import/abyss.png-6103d4163b29dbc50f76fbe18bca735e.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=11 format=2]
|
[gd_scene load_steps=13 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://level_data.gd" type="Script" id=1]
|
[ext_resource path="res://level_data.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://maps/map01.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://maps/map01.tscn" type="PackedScene" id=2]
|
||||||
|
@ -6,6 +6,7 @@
|
||||||
[ext_resource path="res://maps/cave.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://maps/cave.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://scripts/level_entry.gd" type="Script" id=5]
|
[ext_resource path="res://scripts/level_entry.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://maps/mountain.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://maps/mountain.tscn" type="PackedScene" id=6]
|
||||||
|
[ext_resource path="res://maps/abyss.tscn" type="PackedScene" id=7]
|
||||||
|
|
||||||
[sub_resource type="Resource" id=1]
|
[sub_resource type="Resource" id=1]
|
||||||
resource_name = "Verdant Hills"
|
resource_name = "Verdant Hills"
|
||||||
|
@ -39,6 +40,14 @@ shard_titles = [ "Star-Crossed Lovers", "The Snail Cave", "Members Only!", "Over
|
||||||
save_id = "cave"
|
save_id = "cave"
|
||||||
scene = ExtResource( 4 )
|
scene = ExtResource( 4 )
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id=5]
|
||||||
|
resource_name = "Eepy Abyss"
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
title = "Eepy Abyss"
|
||||||
|
shard_titles = [ "You", "Can", "(not)", "Breathe", "5 Rainbow Stars", "Collection Bonus", "Time Bonus", "Life Bonus" ]
|
||||||
|
save_id = "abyss"
|
||||||
|
scene = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="LevelData" type="Node"]
|
[node name="LevelData" type="Node"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
levels = [ SubResource( 1 ), SubResource( 2 ), SubResource( 4 ), SubResource( 3 ) ]
|
levels = [ SubResource( 1 ), SubResource( 2 ), SubResource( 4 ), SubResource( 3 ), SubResource( 5 ) ]
|
||||||
|
|
175
maps/abyss.tscn
175
maps/abyss.tscn
|
@ -1,36 +1,197 @@
|
||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=22 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://maps/map.gd" type="Script" id=1]
|
[ext_resource path="res://maps/map.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://objects/hud/hud.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://objects/hud/hud.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://graphics/backgrounds/abyss.png" type="Texture" id=3]
|
[ext_resource path="res://graphics/backgrounds/abyss.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://scripts/water_ripple.gdshader" type="Shader" id=4]
|
[ext_resource path="res://scripts/water_ripple.gdshader" type="Shader" id=4]
|
||||||
[ext_resource path="res://audio/music/moon_trail.ogg" type="AudioStream" id=5]
|
[ext_resource path="res://audio/music/moon_trail.mp3" type="AudioStream" id=5]
|
||||||
|
[ext_resource path="res://graphics/tiles/abyss.png" type="Texture" id=6]
|
||||||
|
[ext_resource path="res://objects/Camera2D.tscn" type="PackedScene" id=7]
|
||||||
|
[ext_resource path="res://objects/player/player.tscn" type="PackedScene" id=8]
|
||||||
|
[ext_resource path="res://objects/environment/ladder/ladder.tscn" type="PackedScene" id=9]
|
||||||
|
[ext_resource path="res://graphics/particles/bubble.png" type="Texture" id=10]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=1]
|
[sub_resource type="ShaderMaterial" id=1]
|
||||||
shader = ExtResource( 4 )
|
shader = ExtResource( 4 )
|
||||||
shader_param/offset = 1.5
|
shader_param/offset = 0.5
|
||||||
shader_param/speed = 0.5
|
shader_param/speed = 1.0
|
||||||
shader_param/waves = 2.0
|
shader_param/waves = 32.0
|
||||||
|
shader_param/color_amount = 0.3
|
||||||
|
|
||||||
|
[sub_resource type="Shader" id=9]
|
||||||
|
code = "shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform vec4 distortion_color: hint_color = vec4(1.0, 0.0, 1.0, 1.0);
|
||||||
|
uniform float frames = 4.0;
|
||||||
|
|
||||||
|
float rand(float co){
|
||||||
|
return fract(sin(dot(vec2(co, 0.0) ,vec2(12.9898,78.233))) * 43758.5453);
|
||||||
|
}
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
VERTEX.x /= frames;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
COLOR = texture(TEXTURE, vec2(UV.x / frames + COLOR.r, UV.y));
|
||||||
|
}"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id=10]
|
||||||
|
shader = SubResource( 9 )
|
||||||
|
shader_param/distortion_color = Color( 1, 0, 1, 1 )
|
||||||
|
shader_param/frames = 4.0
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id=11]
|
||||||
|
interpolation_mode = 1
|
||||||
|
offsets = PoolRealArray( 0, 0.25, 0.5, 0.75 )
|
||||||
|
colors = PoolColorArray( 0, 0, 0, 1, 0.25, 0, 0, 1, 0.501961, 0, 0, 1, 0.75, 0, 0, 1 )
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=7]
|
||||||
|
extents = Vector2( 4, 320 )
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=8]
|
||||||
|
extents = Vector2( 128, 4 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=2]
|
||||||
|
points = PoolVector2Array( 8, 8, 0, 8, 0, 0, 8, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=3]
|
||||||
|
points = PoolVector2Array( 8, 8, 0, 8, 0, 0, 8, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=4]
|
||||||
|
points = PoolVector2Array( 8, 8, 0, 8, 0, 0, 8, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=5]
|
||||||
|
points = PoolVector2Array( 8, 8, 0, 8, 0, 0, 8, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="TileSet" id=6]
|
||||||
|
0/name = "abyss"
|
||||||
|
0/texture = ExtResource( 6 )
|
||||||
|
0/tex_offset = Vector2( 0, 0 )
|
||||||
|
0/modulate = Color( 1, 1, 1, 1 )
|
||||||
|
0/region = Rect2( 0, 0, 32, 40 )
|
||||||
|
0/tile_mode = 2
|
||||||
|
0/autotile/icon_coordinate = Vector2( 0, 0 )
|
||||||
|
0/autotile/tile_size = Vector2( 8, 8 )
|
||||||
|
0/autotile/spacing = 0
|
||||||
|
0/autotile/occluder_map = [ ]
|
||||||
|
0/autotile/navpoly_map = [ ]
|
||||||
|
0/autotile/priority_map = [ ]
|
||||||
|
0/autotile/z_index_map = [ ]
|
||||||
|
0/occluder_offset = Vector2( 0, 0 )
|
||||||
|
0/navigation_offset = Vector2( 0, 0 )
|
||||||
|
0/shape_offset = Vector2( 0, 0 )
|
||||||
|
0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
0/shape = SubResource( 2 )
|
||||||
|
0/shape_one_way = false
|
||||||
|
0/shape_one_way_margin = 1.0
|
||||||
|
0/shapes = [ {
|
||||||
|
"autotile_coord": Vector2( 0, 0 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 2 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 0, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 3 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 1, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 4 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
}, {
|
||||||
|
"autotile_coord": Vector2( 2, 1 ),
|
||||||
|
"one_way": false,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 5 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
} ]
|
||||||
|
0/z_index = 0
|
||||||
|
|
||||||
[node name="Map" type="Node2D" groups=["map"]]
|
[node name="Map" type="Node2D" groups=["map"]]
|
||||||
|
pause_mode = 1
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
target_time_any = 60
|
target_time_any = 60
|
||||||
target_time_100 = 120
|
target_time_100 = 120
|
||||||
music = ExtResource( 5 )
|
music = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="Camera2D" parent="." instance=ExtResource( 7 )]
|
||||||
|
scroll_h = false
|
||||||
|
scroll_v = true
|
||||||
|
respawn_h = false
|
||||||
|
|
||||||
[node name="BackgroundLayer" type="CanvasLayer" parent="."]
|
[node name="BackgroundLayer" type="CanvasLayer" parent="."]
|
||||||
layer = -50
|
layer = -50
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="BackgroundLayer"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_top = 384.0
|
||||||
|
margin_bottom = 384.0
|
||||||
|
color = Color( 0.168627, 0.556863, 0.572549, 0.247059 )
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="BackgroundLayer"]
|
[node name="Sprite" type="Sprite" parent="BackgroundLayer"]
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
[node name="WaterEffect" type="CanvasLayer" parent="."]
|
[node name="EffectLayer" type="CanvasLayer" parent="."]
|
||||||
layer = 50
|
layer = 50
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="WaterEffect"]
|
[node name="WaterRipple" type="ColorRect" parent="EffectLayer"]
|
||||||
material = SubResource( 1 )
|
material = SubResource( 1 )
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
color = Color( 0.054902, 0.0666667, 0.329412, 1 )
|
||||||
|
|
||||||
|
[node name="Bubbles" type="CPUParticles2D" parent="EffectLayer"]
|
||||||
|
material = SubResource( 10 )
|
||||||
|
position = Vector2( 128, 200 )
|
||||||
|
lifetime = 13.0
|
||||||
|
local_coords = false
|
||||||
|
texture = ExtResource( 10 )
|
||||||
|
emission_shape = 2
|
||||||
|
emission_rect_extents = Vector2( 128, 0 )
|
||||||
|
direction = Vector2( 0, -1 )
|
||||||
|
spread = 0.0
|
||||||
|
gravity = Vector2( 0, 0 )
|
||||||
|
initial_velocity = 16.0
|
||||||
|
color_initial_ramp = SubResource( 11 )
|
||||||
|
|
||||||
[node name="HUD" parent="." instance=ExtResource( 2 )]
|
[node name="HUD" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource( 8 )]
|
||||||
|
position = Vector2( 16, 48 )
|
||||||
|
gravity = 2
|
||||||
|
max_fall_speed = 60.0
|
||||||
|
jump_force = 80
|
||||||
|
doublejump_force = 60
|
||||||
|
|
||||||
|
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||||
|
position = Vector2( -4, 256 )
|
||||||
|
shape = SubResource( 7 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D2" type="CollisionShape2D" parent="StaticBody2D"]
|
||||||
|
position = Vector2( 260, 256 )
|
||||||
|
shape = SubResource( 7 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D3" type="CollisionShape2D" parent="StaticBody2D"]
|
||||||
|
position = Vector2( 128, 580 )
|
||||||
|
shape = SubResource( 8 )
|
||||||
|
|
||||||
|
[node name="Tilemaps" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Ground" type="TileMap" parent="Tilemaps"]
|
||||||
|
tile_set = SubResource( 6 )
|
||||||
|
cell_size = Vector2( 8, 8 )
|
||||||
|
format = 1
|
||||||
|
tile_data = PoolIntArray( 393233, 0, 196608, 458752, 0, 65536, 458753, 0, 65537, 458754, 0, 65537, 458755, 0, 65537, 458756, 0, 65537, 458757, 0, 65537, 458758, 0, 65538, 458769, 0, 196608, 458770, 0, 0, 458771, 0, 0, 524302, 0, 0, 524303, 0, 0, 524305, 0, 196608, 589835, 0, 0, 589841, 0, 196608, 655368, 0, 0, 655377, 0, 196608, 720913, 0, 196608, 786449, 0, 196608, 851976, 0, 0, 851977, 0, 0, 851978, 0, 0, 851979, 0, 0, 851980, 0, 0, 851981, 0, 0, 851982, 0, 0, 851983, 0, 0, 851984, 0, 0, 851985, 0, 0, 851986, 0, 0, 851987, 0, 0, 917511, 0, 0, 917512, 0, 0, 917513, 0, 0, 917514, 0, 0, 917515, 0, 0, 917516, 0, 0, 917517, 0, 0, 917518, 0, 0, 917519, 0, 0, 917520, 0, 0, 917521, 0, 0, 917522, 0, 0, 983048, 0, 0, 983049, 0, 0, 983050, 0, 0, 983051, 0, 0, 983052, 0, 0, 983053, 0, 0, 983054, 0, 0, 983055, 0, 0, 983056, 0, 0, 983057, 0, 0, 983058, 0, 0, 1048586, 0, 0, 1048587, 0, 0, 1048588, 0, 0, 1048589, 0, 0, 1048590, 0, 0, 1048591, 0, 0, 1048592, 0, 0, 1048593, 0, 0, 1114124, 0, 0, 1114125, 0, 0, 1114126, 0, 0, 1114127, 0, 0, 1114128, 0, 0 )
|
||||||
|
|
||||||
|
[node name="Ladder" parent="Tilemaps/Ground" instance=ExtResource( 9 )]
|
||||||
|
position = Vector2( 136, 48 )
|
||||||
|
scale = Vector2( 1, 7 )
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
[node name="Map" type="Node2D" groups=["map"]]
|
[node name="Map" type="Node2D" groups=["map"]]
|
||||||
pause_mode = 1
|
pause_mode = 1
|
||||||
script = ExtResource( 4 )
|
script = ExtResource( 4 )
|
||||||
save_location = 3
|
|
||||||
|
|
||||||
[node name="Camera2D" parent="." instance=ExtResource( 3 )]
|
[node name="Camera2D" parent="." instance=ExtResource( 3 )]
|
||||||
|
|
||||||
|
|
12
scripts/water_ripple.gdshader
Normal file
12
scripts/water_ripple.gdshader
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform float offset = 1.5;
|
||||||
|
uniform float speed = 0.5;
|
||||||
|
uniform float waves = 2.0;
|
||||||
|
uniform float color_amount = 0.2;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
vec2 uv = SCREEN_UV;
|
||||||
|
uv.x += floor(sin(TIME * speed - SCREEN_UV.y * waves) * offset) * SCREEN_PIXEL_SIZE.x;
|
||||||
|
COLOR = mix(texture(SCREEN_TEXTURE, uv), COLOR, color_amount);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue