現在我們將所有的代碼收集在main.lua中。我們不想使用面向對象的代碼,但仍然可以找到一種簡單的方法將不同的對象分割成單獨的文件。Corona SDK - 我們如何將外部函數連接到main.lua?
在我們的main.lua文件中,我們擁有諸如水,船,男孩,島嶼和雲之類的對象 - 所有這些一起創建了大量的代碼。我們希望在它自己的lua文件中包含「BEGIN WATER 3」,並且能夠使用簡單的函數在main.lua中執行該代碼。我們如何做到這一點?
下面的例子我們main.lua文件,顯示「water3」:
--------------- BEGIN WATER 3 ---------------------------------------------------------
local watere = display.newImage("water3.png", true)
game:insert(watere)
watere.y = 619
watere.x = 500
watere.xScale = 2
--water sound
local wavesound5 = media.newEventSound("waves.wav")
local function playWave5 (event)
media.playEventSound(wavesound5)
end
local w,h = display.contentWidth, display.contentHeight
local function callbackFunc()
print("Transition 1 completed")
end
local function mainwater(watere)
end
function loopar()
local myTween = transition.to(watere, {time=2300, x=(400), y=(h-140), transition=easing.inOutQuad, onComplete=loopar2})
end
function loopar2()
local myTween = transition.to(watere, {time=2200, x=(w-500), y=(h-120), transition=easing.inOutQuad, onComplete=loopar})
end
local listener2 = function()
print("Transition 2 completed")
end
local myTween = transition.to(watere, {time=2300, x=(w-400), y=(h-140), transition=easing.inOutQuad, onComplete=loopar})
watere:addEventListener("touch", playWave5)
---------------- END WATER 3 ---------------------------------------------------------
此方法似乎在沒有模塊(...,package.seeall)的情況下工作。目前我在模塊中使用了這個聲明,但我聽說這是不好的做法。 – jhocking 2011-05-12 01:25:41
@jhocking這是一個不好的做法。模塊函數將在下一個版本的Lua中被棄用。 – kikito 2011-05-12 07:47:30
這不是一個問題。 – jhocking 2011-05-12 11:31:03