quick-cocos2dx-lua之幸运大转盘实现
2016-08-15 01:01
991 查看
好久没有用quick引擎开发了,最近又要整quick了,有种熟悉感。
今天主要记录一下研究了半天的大转盘的实现。
如图:
local num = 10
--转盘角度数据
local zhuanpanData =
{
{start = (num-10)*ALLROATE/num + 0, ended = (num-9)*ALLROATE/num},
{start = (num-9)*ALLROATE/num + 1, ended = (num-8)*ALLROATE/num},
{start = (num-8)*ALLROATE/num + 1, ended = (num-7)*ALLROATE/num},
{start = (num-7)*ALLROATE/num + 1, ended = (num-6)*ALLROATE/num},
{start = (num-6)*ALLROATE/num + 1, ended = (num-5)*ALLROATE/num},
{start = (num-5)*ALLROATE/num + 1, ended = (num-4)*ALLROATE/num},
{start = (num-4)*ALLROATE/num + 1, ended = (num-3)*ALLROATE/num},
{start = (num-3)*ALLROATE/num + 1, ended = (num-2)*ALLROATE/num},
{start = (num-2)*ALLROATE/num + 1, ended = (num-1)*ALLROATE/num},
{start = (num-1)*ALLROATE/num + 1, ended = (num-0)*ALLROATE/num},
}
local duration = 5 --转动持续时间
local rotateNum = 5 --转动圈数
local function Act()
local targetIdx = 7 --服务器传来的值。
scheduler.performWithDelayGlobal(function(dt)
local targetData = zhuanpanData[targetIdx]
local rotateAngle = - math.random(targetData.start, targetData.ended) - 360 * rotateNum
print("随机角度是:", rotateAngle)
--第二次需要重置坐标点
if lastAngle ~= 0 then
self:rotateSprite(self.panbg, duration, rotateAngle + lastAngle)
else
self:rotateSprite(self.panbg, duration, rotateAngle)
end
lastAngle = -360 - rotateAngle - 360 * rotateNum
end, 0)
end
2、封装转盘的主要method,直接复制调用然后传参数就可以啦,请仔细看参数说明
-- sprite 精灵
-- time 旋转的时间
-- rotateAngle_ 旋转的角度
local function rotateSprite(sprite, time, rotateAngle_)
local action = cc.RotateBy:create(time, rotateAngle_)
local easeAction = cc.EaseCubicActionInOut:create(action)
sprite:runAction(easeAction)
end
如果有更好的实现效果请,留言一同探讨。
今天主要记录一下研究了半天的大转盘的实现。
如图:
1、主要精华如下:
local ALLROATE = 360--360度local num = 10
--转盘角度数据
local zhuanpanData =
{
{start = (num-10)*ALLROATE/num + 0, ended = (num-9)*ALLROATE/num},
{start = (num-9)*ALLROATE/num + 1, ended = (num-8)*ALLROATE/num},
{start = (num-8)*ALLROATE/num + 1, ended = (num-7)*ALLROATE/num},
{start = (num-7)*ALLROATE/num + 1, ended = (num-6)*ALLROATE/num},
{start = (num-6)*ALLROATE/num + 1, ended = (num-5)*ALLROATE/num},
{start = (num-5)*ALLROATE/num + 1, ended = (num-4)*ALLROATE/num},
{start = (num-4)*ALLROATE/num + 1, ended = (num-3)*ALLROATE/num},
{start = (num-3)*ALLROATE/num + 1, ended = (num-2)*ALLROATE/num},
{start = (num-2)*ALLROATE/num + 1, ended = (num-1)*ALLROATE/num},
{start = (num-1)*ALLROATE/num + 1, ended = (num-0)*ALLROATE/num},
}
local duration = 5 --转动持续时间
local rotateNum = 5 --转动圈数
local function Act()
local targetIdx = 7 --服务器传来的值。
scheduler.performWithDelayGlobal(function(dt)
local targetData = zhuanpanData[targetIdx]
local rotateAngle = - math.random(targetData.start, targetData.ended) - 360 * rotateNum
print("随机角度是:", rotateAngle)
--第二次需要重置坐标点
if lastAngle ~= 0 then
self:rotateSprite(self.panbg, duration, rotateAngle + lastAngle)
else
self:rotateSprite(self.panbg, duration, rotateAngle)
end
lastAngle = -360 - rotateAngle - 360 * rotateNum
end, 0)
end
2、封装转盘的主要method,直接复制调用然后传参数就可以啦,请仔细看参数说明
-- sprite 精灵
-- time 旋转的时间
-- rotateAngle_ 旋转的角度
local function rotateSprite(sprite, time, rotateAngle_)
local action = cc.RotateBy:create(time, rotateAngle_)
local easeAction = cc.EaseCubicActionInOut:create(action)
sprite:runAction(easeAction)
end
如果有更好的实现效果请,留言一同探讨。
相关文章推荐
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- cocos2dx 3.3 quick lua 实现返回键退出程序
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- lua教程八----不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- 把quick-3.5的UIWebview移植到quick-cocos2dx2.2.6 详解 quick cocos2dx 2.2.6增加WebView库 实现lua和webview交互
- 【COCOS2DX-LUA 脚本开发之八】使用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- lua、quick-cocos2d-x(lua)、lua基本语法、lua类的实现、lua类的继承【新手必读】
- 基于Quick-cocos2dx 2.2.3 的动态更新实现(不需修改任何框架上的)
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
- cocos2dx + Lua 实现的2048小游戏
- 【COCOS2DX-LUA 脚本开发之十二】利用AssetsManager实现在线更新资源文件
- quick-cocos2dx在eclipse下的lua调试
- cocos2dx中lua实现继承详解
- quick-cocos2d-x (cocos2dx binding lua)
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
- 【COCOS2DX-LUA 脚本开发之八】使用Lua实现Http交互