Godot 4.3
So I’ve got an issue. Right now I have a y velocity passing into a shader’s speed parameter and for some reason it’s getting faster every time I call it. I checked the y velocity and it stays consistent, the variable value stays consistent, and the shader parameter stays consistent as well. Strangely enough the x value doesn’t do this. It doesn’t get any faster so I’m thinking maybe it’s the rate of change? At this point I’m throwing in the towel and asking for any help.
extends Node2D
@onready var main_sprite = %Sprites_Animations
@onready var player = get_node("../")
@onready var cape = %Cape
@onready var player_states = %PlayerStateMachine
var flap_speed
func _ready():
cape.offset.x = 3.535
cape.offset.y = 1.015
func _process(delta: float) -> void:
if main_sprite.flip_h == false:
cape.flip_h = true
if player_states.active_state != player_states.states["AirState"]:
cape.offset.x = -2.13
cape.offset.y = 2
if main_sprite.flip_h == true:
cape.flip_h = false
if player_states.active_state != player_states.states["AirState"]:
cape.offset.x = 2.13
cape.offset.y = 2
func _physics_process(delta):
flap_speed = player.velocity.y + player.velocity.x
#print(player.direction_access)
#print(player.recorded_direct)
#print(player.is_on_floor())
#print(player_states.active_state)
#print(player.velocity.y)
#print(cape.rotation_degrees)
print(flap_speed)
#print( cape.material.get_shader_parameter("xspeed"))
#print(player.gravity)
var elapsed = .5
#print(elapsed)
if player.direction_access == 0 and player_states.active_state == player_states.states["IdleState"]:
sway_idle()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(0), elapsed)
elapsed += delta
if player.direction_access == 1 and player_states.active_state == player_states.states["RunState"]:
sway_run()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(17), elapsed)
elapsed += delta
if player.direction_access == -1 and player_states.active_state == player_states.states["RunState"]:
sway_run()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(-17), elapsed)
elapsed += delta
if player_states.active_state == player_states.states["GrapplingState"]:
sway_grapple()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(0), elapsed)
elapsed += delta
if player.direction_access == 1 and player_states.active_state == player_states.states["AirStrafeState"] and player.velocity.y < 708:
sway_air_strafe()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(53), elapsed)
elapsed += delta
if player.direction_access == -1 and player_states.active_state == player_states.states["AirStrafeState"] and player.velocity.y < 708:
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(-53), elapsed)
elapsed += delta
sway_air_strafe()
if cape.flip_h == true and player_states.active_state == player_states.states["AirState"] and player.velocity.y < 708:
sway_air_state_rise()
#print(cape.material.get_shader_parameter("xspeed"))
cape.offset.x = -3.6
cape.offset.y = 3
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(17), elapsed)
elapsed += delta
if cape.flip_h == false and player_states.active_state == player_states.states["AirState"] and player.velocity.y < 708:
sway_air_state_rise()
#print(cape.material.get_shader_parameter("xspeed"))
cape.offset.x = 3.6
cape.offset.y = 3
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(-17), elapsed)
elapsed += delta
if player.velocity.y > 708 and cape.flip_h == false:
sway_air_state_fall()
cape.offset.x = 3.035
cape.offset.y = 4.14
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(-127.1), elapsed)
elapsed += delta
if player.velocity.y > 708 and cape.flip_h == true:
sway_air_state_fall()
cape.offset.x = -3.04
cape.offset.y = 5.17
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(116.4), elapsed)
elapsed += delta
if cape.flip_h == true and player_states.active_state == player_states.states["ShoulderCheckState"]:
sway_shoulder_check()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(53), elapsed)
elapsed += delta
cape.offset.x = -2.7
if cape.flip_h == false and player_states.active_state == player_states.states["ShoulderCheckState"]:
sway_shoulder_check()
cape.rotation = lerp_angle(deg_to_rad(cape.rotation_degrees), deg_to_rad(-53), elapsed)
elapsed += delta
cape.offset.x = 4.1
cape.offset.y = 0
func sway_run():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 1)
cape.material.set_shader_parameter("xspeed", flap_speed/10)
cape.material.set_shader_parameter("xwave", 5)
func sway_idle():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 0.5)
cape.material.set_shader_parameter("xspeed",2)
cape.material.set_shader_parameter("xwave", 5)
func sway_grapple():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 1)
cape.material.set_shader_parameter("xspeed", flap_speed/200)
cape.material.set_shader_parameter("xwave", 10)
func sway_air_strafe():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 1)
cape.material.set_shader_parameter("xspeed", flap_speed/200)
cape.material.set_shader_parameter("xwave", 10)
func sway_air_state_fall():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 3)
cape.material.set_shader_parameter("xspeed", flap_speed/500)
cape.material.set_shader_parameter("xwave", 10)
func sway_air_state_rise():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 1.5)
cape.material.set_shader_parameter("xspeed", flap_speed/500)
cape.material.set_shader_parameter("xwave", 10)
func sway_shoulder_check():
cape.material.set_shader_parameter("risenfall", 0)
cape.material.set_shader_parameter("yspeed", 0)
cape.material.set_shader_parameter("ywave", 0)
cape.material.set_shader_parameter("sway", 1.3)
cape.material.set_shader_parameter("xspeed", flap_speed)
cape.material.set_shader_parameter("xwave", 20)