This commit is contained in:
Victor Turgeon 2022-10-11 13:13:21 -04:00
commit bd870a430b
5 changed files with 187 additions and 2 deletions

View File

@ -7,6 +7,9 @@ export var air_acceleration = 1
export var normal_acceleration = 6 export var normal_acceleration = 6
export var gravity = 100 export var gravity = 100
export var jump = 30 export var jump = 30
var slap = 0.0
var chargeSlap = false
var isSlap = false;
export var mouse_sensitivity = 0.03 export var mouse_sensitivity = 0.03
@ -65,6 +68,21 @@ func _physics_process(delta):
elif Input.is_action_pressed("move_right"): elif Input.is_action_pressed("move_right"):
direction += transform.basis.x direction += transform.basis.x
# Slappening
if Input.is_action_just_pressed("slap"):
chargeSlap = true;
elif Input.is_action_just_released("slap"):
chargeSlap = false;
isSlap = true;
else:
isSlap = false;
if (chargeSlap):
slap += delta * 1.5;
else:
slap -= delta * 8.0;
slap = clamp(slap, 0.0, 1.0)
get_node("/root/Spatial/HUD/ActualHUD/SlapGauge").fill = slap;
direction = direction.normalized() direction = direction.normalized()
h_velocity = h_velocity.linear_interpolate(direction * speed, h_acceleration * delta) h_velocity = h_velocity.linear_interpolate(direction * speed, h_acceleration * delta)

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=8 format=2]
[gd_scene load_steps=15 format=2]
[ext_resource path="res://Materials/Dark_ProtoMat.tres" type="Material" id=1] [ext_resource path="res://Materials/Dark_ProtoMat.tres" type="Material" id=1]
[ext_resource path="res://Scenes/Player.tscn" type="PackedScene" id=2] [ext_resource path="res://Scenes/Player.tscn" type="PackedScene" id=2]
[ext_resource path="res://Materials/Orange_ProtoMat.tres" type="Material" id=3] [ext_resource path="res://Materials/Orange_ProtoMat.tres" type="Material" id=3]
[ext_resource path="res://AllSkyFree_Skyboxes/Epic_BlueSunset_EquiRect_flat.png" type="Texture" id=4] [ext_resource path="res://AllSkyFree_Skyboxes/Epic_BlueSunset_EquiRect_flat.png" type="Texture" id=4]
[ext_resource path="res://Scenes/Enemy.tscn" type="PackedScene" id=5] [ext_resource path="res://Scenes/Enemy.tscn" type="PackedScene" id=5]
[ext_resource path="res://Title Timer.gd" type="Script" id=5]
[ext_resource path="res://fonts/TorontoSubwayRegular.ttf" type="DynamicFontData" id=6]
[ext_resource path="res://SlapGauge.gd" type="Script" id=7]
[sub_resource type="PanoramaSky" id=1] [sub_resource type="PanoramaSky" id=1]
panorama = ExtResource( 4 ) panorama = ExtResource( 4 )
@ -39,6 +47,60 @@ glow_bloom = 0.02
glow_hdr_threshold = 0.44 glow_hdr_threshold = 0.44
glow_bicubic_upscale = true glow_bicubic_upscale = true
[sub_resource type="DynamicFont" id=3]
size = 88
outline_size = 5
outline_color = Color( 0, 0, 0, 1 )
use_filter = true
font_data = ExtResource( 6 )
[sub_resource type="DynamicFont" id=4]
size = 19
outline_size = 2
outline_color = Color( 0, 0, 0, 1 )
use_mipmaps = true
use_filter = true
font_data = ExtResource( 6 )
[sub_resource type="Theme" id=5]
default_font = SubResource( 4 )
[sub_resource type="Shader" id=6]
code = "shader_type canvas_item;
render_mode unshaded;
uniform float fill;
uniform float kill;
uniform vec4 bkgcol = vec4(0.0, 0.0, 0.0, 0.3);
uniform vec4 kilcol = vec4(0.5, 0.0, 0.0, 0.3);
void fragment() {
bool is = false;
if (fill >= UV.x) {
COLOR = vec4(UV.x,-UV.x + .5,-UV.x + 1.0,1.0);
COLOR.rgb *= vec3(cos(UV.y * 2.0) / 1.5,cos(UV.y * 2.0) / 1.5,cos(UV.y * 2.0) / 1.5);
is = true;
if (kill >= UV.x)
COLOR.rgb += vec3(0.1,0.1,0.1);
}
else if (UV.x > kill + 0.001)
COLOR = kilcol;
else COLOR = bkgcol;
if ((UV.y < .2 || UV.y > 0.8) && (UV.x > kill + 0.001 || UV.x < kill - 0.001) && !is)
COLOR.a = 0.05;
}"
[sub_resource type="ShaderMaterial" id=7]
shader = SubResource( 6 )
shader_param/fill = 0.0
shader_param/kill = null
shader_param/bkgcol = Plane( 0, 0, 0, 0.3 )
shader_param/kilcol = Plane( 0.5, 0, 0, 0.3 )
[node name="Spatial" type="Spatial"] [node name="Spatial" type="Spatial"]
[node name="CSGCombiner" type="CSGCombiner" parent="."] [node name="CSGCombiner" type="CSGCombiner" parent="."]
@ -67,5 +129,74 @@ light_color = Color( 1, 0.924276, 0.869018, 1 )
light_specular = 1.0 light_specular = 1.0
shadow_enabled = true shadow_enabled = true
[node name="Enemy" parent="." instance=ExtResource( 5 )] [node name="Enemy" parent="." instance=ExtResource( 5 )]
transform = Transform( 0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 1.17105, 2.7605, -13.5942 ) transform = Transform( 0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 1.17105, 2.7605, -13.5942 )
[node name="HUD" type="CanvasLayer" parent="."]
__meta__ = {
"_editor_description_": "Heads Up Display"
}
[node name="Start" type="Control" parent="HUD"]
visible = false
margin_right = 40.0
margin_bottom = 40.0
[node name="Title" type="Label" parent="HUD/Start"]
anchor_left = 12.9
anchor_top = 7.625
anchor_right = 12.9
anchor_bottom = 7.625
margin_left = -439.0
margin_top = -54.0
margin_right = 443.0
margin_bottom = 48.0
custom_fonts/font = SubResource( 3 )
text = "FIRST PERSON SLAPPER"
[node name="Title Timer" type="Timer" parent="HUD/Start"]
one_shot = true
script = ExtResource( 5 )
[node name="New Game" type="Button" parent="HUD/Start"]
anchor_left = 12.85
anchor_top = 10.525
anchor_right = 12.85
anchor_bottom = 10.525
margin_left = -67.0
margin_top = -20.0
margin_right = 70.0
margin_bottom = 16.0
theme = SubResource( 5 )
text = "New Game"
[node name="ActualHUD" type="Control" parent="HUD"]
margin_right = 40.0
margin_bottom = 40.0
theme = SubResource( 5 )
[node name="SlapGauge" type="ColorRect" parent="HUD/ActualHUD"]
material = SubResource( 7 )
anchor_left = 12.875
anchor_top = 7.625
anchor_right = 12.875
anchor_bottom = 7.625
margin_left = -451.0
margin_top = 218.0
margin_right = -161.0
margin_bottom = 241.0
script = ExtResource( 7 )
[node name="SlapLabel" type="Label" parent="HUD/ActualHUD"]
modulate = Color( 1, 1, 1, 0.611765 )
anchor_left = 12.662
anchor_top = 7.324
anchor_right = 12.662
anchor_bottom = 7.324
margin_left = -436.48
margin_top = 229.04
margin_right = -325.48
margin_bottom = 261.04
text = "Slap"

14
SlapGauge.gd Normal file
View File

@ -0,0 +1,14 @@
extends ColorRect
var Mat;
var fill = 0.0;
var kill = 0.66;
# Called when the node enters the scene tree for the first time.
func _ready():
pass
func _process(delta):
material.set_shader_param("fill",clamp(fill, 0.0, 1.0))
material.set_shader_param("kill",clamp(kill, 0.0, 1.0))

17
Title Timer.gd Normal file
View File

@ -0,0 +1,17 @@
extends Timer
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View File

@ -59,6 +59,11 @@ sprint={
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"physical_scancode":0,"unicode":0,"echo":false,"script":null) "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
] ]
} }
slap={
"deadzone": 0.5,
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
]
}
[physics] [physics]