coronasdk - 电晕几个transition.to失相
问题描述
我正在创建几个显示对象并使用 transition.to 水平移动它们。除了对象 x 位置偏离相位/位置外,一切正常。对象应该永远具有相同的 X 位置,但运行时间越长,它们的位置就越偏离。
local function onLoopXListener( )
transition.to( platform, { time=2000, x=0, transition=easing.inOutSine, delay=0} );
transition.to( platform, { time=2000, x=320, transition=easing.inOutSine, delay=2000, onComplete=onLoopXListener} );
end
local function StartTransition( )
transition.to( platform, { time=2000, x=0, transition=easing.inOutSine, delay=1000 } );
transition.to( platform, { time=2000, x=320, transition=easing.inOutSine, delay=3000, onComplete=onLoopXListener} );
end
for i = 1, 4, 1 do
--create a new platform displayobject
--seperate it vertically
StartTransition( )
end
如果我的代码很丑陋,请原谅我(我已经删除了不相关的代码——除了位置之外它都有效)——这是我在这里询问的转换概念。
解决方案
我用过“enterFrame”,它工作正常。这是我的实现:
local _lastTime = 0
local function OnEnterFrame( event )
deltaTime = event.time - _lastTime
_lastTime = event.time
MoveMyPlatformOnEnterFrame(deltaTime)
end
Runtime:addEventListener( "enterFrame", OnEnterFrame )
这就是我实现 sin() 转换的方式:记住这需要超越函数调用。
local _loopTime = someValue
local _xRadians =0
local _amplitude = someOtherValue
local _platform --this is the Display Object I want to move
function MoveMyPlatformOnEnterFrame( deltaTime )
delta = deltaTime / _loopTime * (44/7)
_xRadians = _xRadians + delta
_xRadians = math.fmod( _xRadians, (44/7) )
_platform.x = _position.x + math.sin( _xRadians ) * _amplitude
end
推荐阅读
- for-loop - 网页抓取时无法遍历多个页面
- arrays - C - 从数组中删除重复项
- javascript - Reactjs Stripe 支付不适用于 Node/Express
- r - 使用带有 reprex::reprex() 的特殊字符时出错
- python - 如何更改泡菜数据集中的标签?
- mysql - 根据位置列对所有行进行排序
- django - 如果用户名由于错误而为空,Django 使用 pre_save 将用户名分配给用户
- javascript - 检查文件类型照片/视频/文本reactjs
- c# - 解析 JSON 数组以建模 .NET Core 导致空集
- maven - Jenkins:我应该为我的构建使用不同的本地 maven 存储库吗?