25 lines
636 B
GDScript
25 lines
636 B
GDScript
extends Sprite2D
|
|
|
|
# Creates a simple shadow circle sprite at runtime
|
|
|
|
func _ready():
|
|
var size = 48 # Shadow size
|
|
var image = Image.create(size, size, false, Image.FORMAT_RGBA8)
|
|
|
|
# Draw a semi-transparent black circle for shadow
|
|
for x in range(size):
|
|
for y in range(size):
|
|
var dx = x - size / 2.0
|
|
var dy = y - size / 2.0
|
|
var distance = sqrt(dx * dx + dy * dy)
|
|
|
|
if distance <= size / 2.0:
|
|
# Softer edges
|
|
var alpha = 0.4 * (1.0 - distance / (size / 2.0)) * 0.5
|
|
image.set_pixel(x, y, Color(0, 0, 0, alpha))
|
|
|
|
# Create texture from image
|
|
texture = ImageTexture.create_from_image(image)
|
|
centered = true
|
|
|