diff --git a/components/Bullets/Laser.tscn b/components/Bullets/Laser.tscn index 64b5380..2e1f801 100644 --- a/components/Bullets/Laser.tscn +++ b/components/Bullets/Laser.tscn @@ -8,6 +8,9 @@ [sub_resource type="ShaderMaterial" id="ShaderMaterial_5n8cv"] shader = ExtResource("2_h6cxi") +shader_parameter/color = Color(0.654902, 1, 1, 1) +shader_parameter/laser_width = 0.01 +shader_parameter/soft_edge = 0.5 [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_y85id"] height = 300.0 @@ -29,10 +32,9 @@ sprite_frames = SubResource("SpriteFrames_yip5k") material = SubResource("ShaderMaterial_5n8cv") offset_left = -10.0 offset_top = -300.0 -offset_right = 19.0 +offset_right = 10.0 [node name="hitbox" parent="." index="1"] -visible = false position = Vector2(150, 0) rotation = 1.5708 shape = SubResource("CapsuleShape2D_y85id") diff --git a/shaders/Laser.gdshader b/shaders/Laser.gdshader index a629778..4154724 100644 --- a/shaders/Laser.gdshader +++ b/shaders/Laser.gdshader @@ -3,14 +3,10 @@ uniform vec4 color: source_color; uniform float laser_width: hint_range(0.01, 1.0) = 0; uniform float soft_edge: hint_range(0.0, 0.5) = 0.5; void fragment() { - float textureWidth=float(textureSize(TEXTURE,0).x); - float textureHeight=float(textureSize(TEXTURE,0).y); - float radius=textureHeight/2.0; - float radiusU=radius*TEXTURE_PIXEL_SIZE; - float dist = distance(vec2(0.5,clamp(UV.y,radiusU,1.0-radiusU)),UV); + float dist = abs(UV.x - 0.5); float core = 1.0 - smoothstep(0.0, laser_width, dist); - float edge=1.0 - smoothstep(laser_width, laser_width + soft_edge, dist); - float alpha = max(core, edge); + float edge = 1.0 - smoothstep(laser_width, laser_width + soft_edge, dist); + float alpha = max(core, edge); COLOR = color; COLOR.a = alpha; } \ No newline at end of file