• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

采用cocos2d-xlua制作数字滚动效果样例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

require "Cocos2d"
require "Cocos2dConstants"
local testscene = class("testscene",function()
        return cc.Scene:create()
end)
function testscene:create()
local  scene = testscene.new()
    return scene
end
--默认函数
function testscene:ctor()
--创建层-将层加入场景中
    local layer = cc.Layer:create()
    self:addChild(layer)
--创建节点-将节点加入层中
    local node = cc.Sprite:create("res/land.png")
    node:setPosition(240,160)
    node:setAnchorPoint(0.5,0.5)
    layer:addChild(node,2)

    local size = node:getContentSize()
        _beginNum = 200
--创建文本-将文本加入节点中
    txt =  cc.LabelTTF:create(tostring(_beginNum),"Marker Felt",24)
        txt:setColor(cc.c4b(20,25,255,255))
        txt:setPosition(size.width/2,size.height/2)
        txt:setAnchorPoint(0.5,0.5)
        node:addChild(txt)
    local taction = {}
--延迟
    local delay =cc.DelayTime:create(0.01)
        table.insert(taction,delay)
--扩大
        local scale = cc.ScaleTo:create(0.2,2)
        local scale2 = cc.ScaleTo:create(0.2,1)
           table.insert(taction,scale)
           table.insert(taction,scale2)
-- 数值改变
        _endNum =10000
        math.randomseed(3000)
        _dis = math.random(5000,10000)
        print(_dis)
    local rtime = (_endNum-_beginNum)/_dis
        print(rtime)
    function chagenum()
        if (_beginNum <  _endNum) then
           _beginNum= _beginNum +_dis
            txt:setString(_beginNum)
        elseif (_beginNum ==  _endNum) then
            txt:setString(  _endNum)
        end
    end
    local seq = cc.Sequence:create(delay,cc.CallFunc:create(chagenum))
--数字翻滚
    local X = size.width/2
    local Y = size.height/2
    local UPY = 2*Y
    local DownY = 0
    local move1 = cc.MoveTo:create(0.05,cc.p(X,UPY))
    local move2 = cc.MoveTo:create(0.05,cc.p(X,DownY))
    local move3 = cc.MoveTo:create(0.05,cc.p(X,Y))

    local scale1 = cc.ScaleTo:create(0.05,1,0.001)
    local scale2 = cc.ScaleTo:create(0.05,1,1)

    local UP =   cc.Sequence:create(move1,scale1)
    local Down =   cc.Sequence:create(move2,scale1,scale2,move3)
    local spawn = cc.Spawn:create(UP,seq,Down)
    local rep = cc.Repeat:create(spawn,rtime)
--设置真值
    local function setnum()
        _beginNum =  _endNum
        txt:setString(_beginNum)
    end

    local call = cc.CallFunc:create(setnum)
    local seq2 = cc.Sequence:create(rep,delay,call)
        table.insert(taction,seq2)
        table.insert(taction,scale)
        table.insert(taction,scale2)
    local seqaction = cc.Sequence:create(taction)
    txt:runAction(seqaction)

    return layer
end

return testscene

 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
lua的string.format前后填充发布时间:2022-07-22
下一篇:
Lua与C++一个精度误差问题发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap