Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Robster | |
Old Version | Published before Godot 3 was released. |
Hi all,
I have a sprite (a man in this case) and I want it to scale up and down just once to draw the user’s eye to it.
I tried this:
extends Node2D
onready var man = get_node("Sprite")
onready var tween = get_node("Tween")
func _ready():
growShrinkSprite(man, tween, 2, .5)
func growShrinkSprite(spriteName, tweenName, scaleUp, seconds):
#scale up
tweenName.interpolate_property(spriteName, "transform/scale", Vector2(0,0), Vector2(scaleUp,scaleUp), seconds, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tweenName.start()
… and it works perfectly to scale UP, but I am unsure now of how to make it scale back down again.
I tried placing another interpolate straight after like so:
tweenName.interpolate_property(spriteName, "transform/scale", Vector2(0,0), Vector2(scaleUp,scaleUp), seconds, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tweenName.interpolate_property(spriteName, "transform/scale", Vector2(scaleUp,scaleUp), Vector2(0,0), seconds, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tweenName.start()
… but that only triggers the last one. So it scales from full size down to 0. Not both, one after the other like I’d hoped.
I’ve played with a range of variations but can’t crack it.
Can anyone shed some light to help out a (insert sob story here)?