Difference between revisions of "GTween"
From GiderosMobile
(Created page with "__NOTOC__ '''Supported platforms:''' File:Platform android.pngFile:Platform ios.pngFile:Platform pc.pngFile:Platform mac.pngFile:Platform winrt.pngFile:P...") |
|||
| Line 20: | Line 20: | ||
* deterministic, so setting a position on a tween will (almost) always result in predictable results | * 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 | + | '''GTween (Gideros Tween) is more a Class than a plugin per se''' |
To use the GTween library, add the following file to your project: | To use the GTween library, add the following file to your project: | ||
* '''[[Media:gtween.lua|Gtween.lua]]''' '''tip: right click and "Save Link As"''' | * '''[[Media:gtween.lua|Gtween.lua]]''' '''tip: right click and "Save Link As"''' | ||
| − | '''Note''': GTween uses the '''Easing''' plugin so make sure to add it | + | '''Note''': GTween uses the '''Easing''' plugin so make sure to add it to your project Plugins |
| − | === | + | === Examples === |
| + | '''Moving an image''' | ||
| + | <syntaxhighlight lang="lua"> | ||
| + | --[[ | ||
| + | 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, | ||
| + | } | ||
| + | ) | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | '''And a Pixel''' | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
require "easing" | require "easing" | ||
Revision as of 05:01, 6 December 2025
Supported platforms: ![]()
![]()
![]()
![]()
![]()
![]()
![]()
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:
- Gtween.lua tip: right click and "Save Link As"
Note: GTween uses the Easing plugin so make sure to add it to your project Plugins
Examples
Moving an image
--[[
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,
}
)
And a Pixel
require "easing"
application:setBackgroundColor(0x626262)
local x = 8*32
local y = 8*32
local pixel = Pixel.new(math.random(0xffffff), 1, 32, 32)
pixel:setAnchorPoint(0.5, 0.5)
pixel:setPosition(x, y)
stage:addChild(pixel)
--function GTween:init(target, duration, values, props)
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)
See also