Hi everyone!
I have been setting up a system to chose a sprite from an atlas when a projectile is created to randomly vary the projectiles. The code for this is below.
The issue I'm having is that the sprite doesn't seem to be updating after setting the render region. Is there some call I need to make to let godot know it needs to update the texture? Currently, it's calculating the sprite_position correctly, but there are no visible changes.
Thanks!
@onready var _sprite = $Sprite2D
var rand = RandomNumberGenerator.new()
var sprites = 4
var sprite_size = Vector2(64, 64)
var sprite_start = Vector2(0, 0)
var sprite_position = Vector2()
func _ready():
setup_sprite()
func setup_sprite():
# set initial rotation
_sprite.rotation = dir.angle()
# Select random sprite from availabe
var chosen_sprite = rand.randi_range(0, sprites-1)
print(chosen_sprite)
sprite_position = sprite_start
sprite_position.x = sprite_start.x + sprite_size.x * chosen_sprite
_sprite.region_rect.position = sprite_position