Difference between revisions of "GTween"

From GiderosMobile
(TODO: it would be nice to add all the functions as usual)
(WIP)
(One intermediate revision by the same user not shown)
Line 27: Line 27:
 
  '''Note''': GTween uses the '''Easing''' plugin so make sure to add it to your project Plugins
 
  '''Note''': GTween uses the '''Easing''' plugin so make sure to add it to your project Plugins
  
=== Examples ===
+
=== Example ===
'''Moving an image'''
 
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
--[[
 
--[[
Line 58: Line 57:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''And a Pixel'''
+
=== See also ===
<syntaxhighlight lang="lua">
+
'''[[Ftf_libs#GFX]]'''</br>
require "easing"
+
'''[[Easing]]'''</br>
  
application:setBackgroundColor(0x626262)
+
{|-
 +
| style="width: 50%; vertical-align:top;"|
  
local x = 8*32
+
=== Methods ===
local y = 8*32
+
[[GTween.new]] ''creates a new GTween''<br/><!--GIDEROSMTD:GTween.new(target,duration,values,props) creates a new GTween-->
local pixel = Pixel.new(math.random(0xffffff), 1, 32, 32)
+
<!--[[GTween:getColor]] ''returns the color(s) of the Pixel''<br/><!--GIDEROSMTD:Pixel:getColor() gets the color(s) of the Pixel-->-->
pixel:setAnchorPoint(0.5, 0.5)
+
<!--[[GTween:getDimensions]] ''returns the current size of the Pixel''<br/><!--GIDEROSMTD:Pixel:getDimensions() returns the current size of the Pixel-->-->
pixel:setPosition(x, y)
 
stage:addChild(pixel)
 
  
--function GTween:init(target, duration, values, props)
+
| style="width: 50%; vertical-align:top;"|
local tween = GTween.new(
 
pixel, 1,
 
{
 
x=x,
 
y=y-4*32,
 
alpha=1.7,
 
scaleY=2.5,
 
},
 
{
 
delay=4,
 
ease=easing.outBack,
 
repeatCount=1,
 
dispatchEvents=true,
 
}
 
)
 
tween.nextTween = GTween.new(
 
pixel, 0.7,
 
{
 
y=y,
 
alpha=1,
 
scaleY=1,
 
},
 
{
 
ease=easing.outBounce,
 
repeatCount=1,
 
}
 
)
 
tween:addEventListener("complete", function()
 
-- tween:toEnd() -- toBeginning(), toEnd()
 
-- tween:setPosition(0.75)
 
print("tweened!")
 
end)
 
</syntaxhighlight>
 
  
=== See also ===
+
=== Events ===
'''[[Ftf_libs#GFX]]'''</br>
+
=== Constants ===
'''[[Easing]]'''</br>
+
|}
  
 
{{GIDEROS IMPORTANT LINKS}}
 
{{GIDEROS IMPORTANT LINKS}}

Revision as of 08:50, 7 December 2025

Supported platforms: Platform android.pngPlatform ios.pngPlatform pc.pngPlatform mac.pngPlatform winrt.pngPlatform win32.pngPlatform linux.png
Available since: Gideros 2010-2011

Description

GTween is a light-weight instance oriented tween engine. This means that you instantiate tweens for specific purposes, and then reuse, update or discard them.

This is different than centralized tween engines where you "register" tweens with a global object. This provides a more familiar and useful interface for object oriented programmers.

GTween boasts a number of advanced features:

  • frame and time based durations/positions which can be set per tween
  • simple sequenced tweens using .nextTween
  • pause and resume individual tweens or all tweens
  • jump directly to the end or beginning of a tween with :toEnd() or :toBeginning()
  • jump to any arbitrary point in the tween with :setPosition()
  • complete, init, and change callbacks
  • smart garbage collector interactions (prevents collection while active, allows collection if target is collected)
  • easy to set up in a single line of code
  • can repeat or reflect a tween a specified number of times
  • deterministic, so setting a position on a tween will (almost) always result in predictable results
GTween (Gideros Tween) is more a Class than a plugin per se

To use the GTween library, add the following file to your project:

Note: GTween uses the Easing plugin so make sure to add it to your project Plugins

Example

--[[
Demonstration of GTween class

This code is MIT licensed, see http://www.opensource.org/licenses/mit-license.php
(C) 2010 - 2011 Gideros Mobile 
]]

require "easing"

application:setBackgroundColor(0x626262)

local sprite = Bitmap.new(Texture.new("box.png"))
stage:addChild(sprite)

GTween.new(
	sprite, 2,
	{
		x = 240,
	},
	{
		delay = 0.2,
		ease = easing.outBounce,
		repeatCount = 2,
		reflect = true,
	}
)

See also

Ftf_libs#GFX
Easing

Methods

GTween.new creates a new GTween
--> -->

Events

Constants