cocos2dx lua 上浮提示框

前端之家收集整理的这篇文章主要介绍了cocos2dx lua 上浮提示框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是之前游戏里面用到的,lua写的。

function PromptBox_FloatAction(promtBoxString,pos)
-- body


l_PromptBoxindex = l_PromptBoxindex + 1
l_PromptBoxLabTag = l_PromptBoxLabTag + 1


local promtBoxstringlab = createPromptBoxFrameBg(promtBoxString,pos)--Label:create()
-- GetGlobalEntity():GetScheduler():UnRegisterScript("MarqueeMove")
-- promtBoxstringlab:setText(promtBoxString)
-- promtBoxstringlab:setFontSize(24)
if l_PromptBoxindex >= 4 then
table.remove(l_PromptBoxLabTagtab,1)
if l_PromptBoxindex % 3 == 0 then
g_PromptBoxLabLayout:removeChildByTag(3,true)
else
local tempIndex = l_PromptBoxindex % 3
g_PromptBoxLabLayout:removeChildByTag(tempIndex,true)
l_PromptBoxLabTag = tempIndex
end
end
table.insert(l_PromptBoxLabTagtab,l_PromptBoxLabTag)
if (pos == nil)then
promtBoxstringlab:setPosition(ccp(0,-l_PromptBoxindex * 45))
else
promtBoxstringlab:setPosition(ccp(pos.x,pos.y-l_PromptBoxindex * 45))
end

Log("xxxxxxxxxxxxx....========"..l_PromptBoxLabTag)
g_PromptBoxLabLayout:addChild(promtBoxstringlab,l_PromptBoxLabTag,l_PromptBoxLabTag)
local promptBoxX,promptBoxY = g_PromptBoxLabLayout:getPosition()
local FloatAction = CCMoveBy:create(0.5,ccp(0,45))
g_PromptBoxLabLayout:runAction(FloatAction)
GetGlobalEntity():GetScheduler():RegisterInfiniteScript( "PromptBox_FadeOutAction",1.5 * 1000)
end

因为 策划要求 上浮最多3个框,然后后面可以继续来数据,接着上浮,一个顶一个。

由于自己是初学者,所以想到的并不多,也不深,大概思路就是 建立一个table 这个table就是存储数据的,不管来多少数据,我们先存着。数据放在里面,我们不管,这里可以写一个定时器,执行完上浮动作之后,就检测table中数据是否为空。

local l_PromptBoxLabTagtab = {}


local l_PromptBoxindex = 0


local l_PromptBoxLabTag = 0


g_PromptBoxLabLayout = nil


function PromptBox_FadeOutAction()
-- body
if g_PromptBoxLabLayout ~= nil then
local offsetTime = 0.5
for i = 1,#l_PromptBoxLabTagtab do
local actionArry = CCArray:create()
local delayTime = CCDelayTime:create(offsetTime * (i - 1))
actionArry:addObject(delayTime)
local fadeoutAction = CCFadeOut:create(0.25)
actionArry:addObject(fadeoutAction)
if i == #l_PromptBoxLabTagtab then
local promptBox_faction = CCCallFunc:create(PrompBox_RemoveAll)
actionArry:addObject(promptBox_faction)
end
local seqAction = CCSequence:create(actionArry)
g_PromptBoxLabLayout:getChildByTag(l_PromptBoxLabTagtab[i]):runAction(seqAction)
end
end


l_PromptBoxindex = 0
l_PromptBoxLabTag = 0
l_PromptBoxLabTagtab = {}
g_PromptBoxLabLayout = nil
end
end


思路就是这样 ,里面的代码很乱

猜你在找的Cocos2d-x相关文章