这是之前游戏里面用到的,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
思路就是这样 ,里面的代码很乱
总结以上是内存溢出为你收集整理的cocos2dx lua 上浮提示框全部内容,希望文章能够帮你解决cocos2dx lua 上浮提示框所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)