В этом другом ответе я постараюсь реализовать то, что, как я думаю, вы хотите. Помните, что я никогда не использовал CoronaSDK, поэтому может потребоваться некоторая отладка.
Во-первых, вот файл с именем create.lua. Вы должны поместить его в тот же каталог, что и main.lua.
Основной целью create.lua
является создание таблицы с именем create
. Эта таблица имеет только одну функцию для создания воды; Вы можете добавить больше функций позже, например, для создания основания.
-- file 'create.lua'
local function water(game,x,y,xScale,imagePath,soundPath)
local image = display.newImage( imagePath )
game:insert( image )
image.x, image.y, image.xScale = x, y, xScale
local w,h = display.contentWidth, display.contentHeight
-- create two empty local variables and assign functions to them
local loopar, loopar2
loopar = function() transition.to(image, {time=2300, x=(400), y=(h-140), transition=easing.inOutQuad, onComplete=loopar2}) end
loopar2 = function() transition.to(image, {time=2200, x=(w-500), y=(h-120), transition=easing.inOutQuad, onComplete=loopar}) end
-- start the movement
transition.to(image, {time=2300, x=(w-400), y=(h-140), transition=easing.inOutQuad, onComplete=loopar})
local sound = media.newEventSound(soundPath)
image:addEventListener("touch", function() media.playEventSound(sound) end )
end
local create = { water = water }
return create
Внутри main.lua, чтобы сначала использовать create.water, вы должны получить доступ к этой таблице create
; Вы используете require
для этого. Как это:
-- file 'main.lua'
local create = require 'create'
<put the code for creating the 'game' group here>
create.water(game, 619, 500, 2, "water3.png", "waves.wav")
Обратите внимание, что create.water получает параметры. Теперь вы можете легко изменить параметры:
create.water(game, 200, 100, 2, "water3.png", "waves.wav") -- other initial coordinates
create.water(game, 619, 500, 1, "water3.png", "waves.wav") -- scaleX = 1
create.water(game, 619, 500, 1, "water.png", "waves.wav") -- other water img
Привет!