Browse Source

Add tween delay support
Add tween get_runtime function
Update demo for tween delay sample

sanikoyes 11 years ago
parent
commit
d064bdbec3
2 changed files with 16 additions and 6 deletions
  1. 12 3
      misc/tween/main.gd
  2. 4 3
      misc/tween/main.xml

+ 12 - 3
misc/tween/main.gd

@@ -89,17 +89,21 @@ func reset_tween():
 	
 	if get_node("modes/move").is_pressed():
 		tween.interpolate_method(sprite, "set_pos", Vector2(0,0), Vector2(736, 184), 2, state.trans, state.eases)
+		tween.interpolate_method(sprite, "set_pos", Vector2(736,184), Vector2(0, 0), 2, state.trans, state.eases, 2)
 	
 	if get_node("modes/color").is_pressed():
 		tween.interpolate_method(sprite, "set_modulate", get_node("color/color_from").get_color(), get_node("color/color_to").get_color(), 2, state.trans, state.eases)
+		tween.interpolate_method(sprite, "set_modulate", get_node("color/color_to").get_color(), get_node("color/color_from").get_color(), 2, state.trans, state.eases, 2)
 	else:
 		sprite.set_modulate(Color(1, 1, 1, 1))
 	
 	if get_node("modes/scale").is_pressed():
 		tween.interpolate_method(sprite, "set_scale", Vector2(0.5,0.5), Vector2(1.5, 1.5), 2, state.trans, state.eases)
+		tween.interpolate_method(sprite, "set_scale", Vector2(1.5,1.5), Vector2(0.5, 0.5), 2, state.trans, state.eases, 2)
 	
 	if get_node("modes/rotate").is_pressed():
-		tween.interpolate_method(sprite, "set_rot", 0.0, 6.28, 2, state.trans, state.eases)
+		tween.interpolate_method(sprite, "set_rot", 0, 6.28, 2, state.trans, state.eases)
+		tween.interpolate_method(sprite, "set_rot", 6.28, 0, 2, state.trans, state.eases, 2)
 	
 	tween.set_repeat(get_node("modes/repeat").is_pressed())
 	tween.start()
@@ -114,7 +118,11 @@ func reset_tween():
 	
 func _on_tween_step( object, key, elapsed, value ):
 	var timeline = get_node("timeline")
-	var ratio = 100 * (elapsed / 2)
+
+	var tween = get_node("tween")
+	var runtime = tween.get_runtime()
+
+	var ratio = 100 * (elapsed / runtime)
 	timeline.set_value(ratio)
 	
 
@@ -123,5 +131,6 @@ func _on_timeline_value_changed( value ):
 		return
 	
 	var tween = get_node("tween")
-	tween.seek(2.0 * value / 100)
+	var runtime = tween.get_runtime()
+	tween.seek(runtime * value / 100)
 	

File diff suppressed because it is too large
+ 4 - 3
misc/tween/main.xml


Some files were not shown because too many files changed in this diff