Skip to content

Commit

Permalink
~55 add vignette
Browse files Browse the repository at this point in the history
  • Loading branch information
sh-cho committed Jun 8, 2024
1 parent 922e3c5 commit 8db6c5f
Show file tree
Hide file tree
Showing 6 changed files with 129 additions and 1 deletion.
5 changes: 5 additions & 0 deletions scenes/autoload/game_events.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ extends Node

signal experience_vial_collected(number: float)
signal ability_upgrade_added(upgrade: AbilityUpgrade, current_upgrades: Dictionary)
signal player_damaged


func emit_experience_vial_collected(number: float):
Expand All @@ -10,3 +11,7 @@ func emit_experience_vial_collected(number: float):

func emit_ability_upgrade_added(upgrade: AbilityUpgrade, current_upgrades: Dictionary):
ability_upgrade_added.emit(upgrade, current_upgrades)


func emit_player_damaged():
player_damaged.emit()
1 change: 1 addition & 0 deletions scenes/game_object/player/player.gd
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ func on_damage_interval_timer_timeout():


func on_health_changed():
GameEvents.emit_player_damaged()
update_health_display()


Expand Down
5 changes: 4 additions & 1 deletion scenes/main/main.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://mapie6ivpd7j"]
[gd_scene load_steps=13 format=3 uid="uid://mapie6ivpd7j"]

[ext_resource type="PackedScene" uid="uid://5jwlcn6cm23o" path="res://scenes/game_object/game_camera/game_camera.tscn" id="1_4i4ay"]
[ext_resource type="PackedScene" uid="uid://bpgwbwa1p3m6i" path="res://scenes/game_object/player/player.tscn" id="1_55gsj"]
Expand All @@ -11,11 +11,14 @@
[ext_resource type="PackedScene" uid="uid://vqjgdqb3t2ju" path="res://scenes/ui/end_screen.tscn" id="2_8tx6c"]
[ext_resource type="PackedScene" uid="uid://c5kgkd7ly41sq" path="res://scenes/manager/experience_manager.tscn" id="4_ak51j"]
[ext_resource type="PackedScene" uid="uid://c5b76ailnfref" path="res://scenes/manager/upgrade_manager.tscn" id="6_08ukk"]
[ext_resource type="PackedScene" uid="uid://gisddfn8bqx" path="res://scenes/ui/vignette.tscn" id="12_jgtmh"]

[node name="Main" type="Node"]
script = ExtResource("1_v8wic")
end_screen_scene = ExtResource("2_8tx6c")

[node name="Vignette" parent="." instance=ExtResource("12_jgtmh")]

[node name="ArenaTimeUI" parent="." node_paths=PackedStringArray("arena_time_manager") instance=ExtResource("1_sfy4a")]
arena_time_manager = NodePath("../ArenaTimeManager")

Expand Down
9 changes: 9 additions & 0 deletions scenes/ui/vignette.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extends CanvasLayer


func _ready():
GameEvents.player_damaged.connect(on_player_damaged)


func on_player_damaged():
$AnimationPlayer.play("hit")
20 changes: 20 additions & 0 deletions scenes/ui/vignette.gdshader
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
shader_type canvas_item;

uniform float vignette_intensity = 0.4;
uniform float vignette_opacity: hint_range(0.0, 1.0) = 0.5;
uniform vec4 vignette_rgb: source_color = vec4(0.0, 0.0, 0.0, 1.0);

float vignette(vec2 uv){
uv *= 1.0 - uv.xy;
float vignette = uv.x * uv.y * 15.0;
return pow(vignette, vignette_intensity * vignette_opacity);
}

void fragment(){
vec4 text = texture(TEXTURE, UV);

text.rgba *= (vignette_rgb.rgba);
text.rgba *= (1.0 - vignette(UV));

COLOR = vec4(text.rgb, text.a);
}
90 changes: 90 additions & 0 deletions scenes/ui/vignette.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
[gd_scene load_steps=7 format=3 uid="uid://gisddfn8bqx"]

[ext_resource type="Script" path="res://scenes/ui/vignette.gd" id="1_abhjy"]
[ext_resource type="Shader" path="res://scenes/ui/vignette.gdshader" id="1_yjtis"]

[sub_resource type="Animation" id="Animation_681uw"]
resource_name = "hit"
length = 0.4
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:material:shader_parameter/vignette_intensity")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.05, 0.4),
"transitions": PackedFloat32Array(1, 2.29739, 1),
"update": 0,
"values": [0.59, 2.85, 0.59]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ColorRect:material:shader_parameter/vignette_rgb")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.05, 0.4),
"transitions": PackedFloat32Array(1, 2.2974, 1),
"update": 0,
"values": [Color(0.247059, 0.14902, 0.192157, 1), Color(0.909804, 0.270588, 0.215686, 1), Color(0.247059, 0.14902, 0.192157, 1)]
}

[sub_resource type="Animation" id="Animation_d22ku"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ColorRect:material:shader_parameter/vignette_intensity")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.59]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ColorRect:material:shader_parameter/vignette_rgb")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.247059, 0.14902, 0.192157, 1)]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_vnynl"]
_data = {
"RESET": SubResource("Animation_d22ku"),
"hit": SubResource("Animation_681uw")
}

[sub_resource type="ShaderMaterial" id="ShaderMaterial_38j4d"]
shader = ExtResource("1_yjtis")
shader_parameter/vignette_intensity = 0.59
shader_parameter/vignette_opacity = 0.115
shader_parameter/vignette_rgb = Color(0.247059, 0.14902, 0.192157, 1)

[node name="Vignette" type="CanvasLayer"]
script = ExtResource("1_abhjy")

[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_vnynl")
}

[node name="ColorRect" type="ColorRect" parent="."]
material = SubResource("ShaderMaterial_38j4d")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(1.00191, 1)
mouse_filter = 2

0 comments on commit 8db6c5f

Please sign in to comment.