我想建一个燃料棒(从满罐到空)。当用户触摸屏幕时,燃料棒会发生变化。 这是我的代码:
lifeBar = display.newImage("fuel_bar1.png")
lifeBar.anchorX=0
lifeBar.anchorY=0.6
lifeBar.x = fuel_title.x +114+13.5
lifeBar.y = 37
screenGroup:insert(lifeBar)
然后,每次变量“按下”等于“真”时,我使用一个名为FuelConsumption()的函数来减少油箱。当Pressed == true时,表示用户正在触摸屏幕:
function FuelConsumption()
if lives > 0 and pressed==true then
lives = lives - 1
lifeBar.width=lifeBar.width-1
livesValue.text = string.format("%d", lives)
end
end
此功能在enterFrame事件中处于活动状态,如下所示:
Runtime:addEventListener( "enterFrame", FuelConsumption )
效果很好,但我的问题是:如何减少每5秒钟的生命栏宽度(一旦变量按下== true)?
我尝试将此添加到我的触摸事件功能中:
function flyUp(event)
if event.phase == "began" then
pressed=true
if gameStarted == false then
gameStarted = true
pauseBtn.isVisible=true
opt_btn.isVisible=true
Runtime:addEventListener("enterFrame", enterFrameListener)
Runtime:addEventListener("enterFrame",scrollGrasses)
timer.performWithDelay( 5000, function() Runtime:addEventListener( "enterFrame", FuelConsumption ) end,-1 )
end
elseif event.phase == "ended" then
pressed = false
timer.performWithDelay( 1000, function() Runtime:removeEventListener( "enterFrame", FuelConsumption ) end,-1 )
end
end
问题在于代码消耗了大量内存并且游戏进展缓慢!那么,还有其他办法吗?
谢谢:)
答案 0 :(得分:0)
而不是使用单个图像使用精灵表。这可能会增加游戏。