我遇到了根据事件监听器和全局变量更改场景的问题。
基本上,在进行某些选择后,场景会重复,这会使变量finalcount
递增,因为需要限制选择的级别。当计数器达到4时,场景应该改变,这使得finalcountscene
变量等于1.这应该触发场景的改变,而不是scenechangeworking
5次。所以功能有效,但场景不会改变。请帮忙!代码可以在下面找到。
local function scenechangecount (event)
if gameState.finalcountscene == 1 then
Runtime:removeEventListener( "enterFrame", maincount )
director:changeScene ("gamemenu")
print("scene change working")
Runtime:removeEventListener( "enterFrame", scenechangecount)
end
end
local function maincount (event)
if gameState.finalcount == 4 then
gameState.finalcountscene = 1
print("working",gameState.finalcount, "scene count", gameState.finalcountscene)
Runtime:removeEventListener( "enterFrame", maincount)
elseif gameState.finalcount == 3 then
gameState.finalcount = gameState.finalcount +1
print(gameState.finalcount)
local message = display.newImage ("images/message.png")
message.x = display.contentWidth/2 - display.contentWidth/6
message.y = display.contentHeight/2 - display.contentHeight/4 - display.contentHeight/18
localGroup:insert(message)
Runtime:removeEventListener( "enterFrame", maincount )
else
gameState.finalcount = gameState.finalcount + 1
print(gameState.finalcount)
Runtime:removeEventListener( "enterFrame", maincount )
end
end
Runtime:addEventListener ("enterFrame", scenechangecount)
Runtime:addEventListener ("enterFrame", maincount)
答案 0 :(得分:0)
我看到了几个问题。首先在你的第一个函数scenechangecount中,在你删除enterFrame监听器之前调用director更改场景,这样你的函数将继续运行并尝试多次更改场景。尝试将导演呼叫移动到这三行中的最后一行。
其次,您似乎每次都要删除maincount输入框架,但至少在上面只添加一次。所以我没有看到你如何增加计数器的方式来删除该enterframe。