settings.lua
local lang_table = {
{image = display.newImage("en.png"), x = 600, y = 400, lang = "1033", i = 1},
{image = display.newImage("fr.png"), x = 600, y = 400, lang = "fr", i = 2},
{image = display.newImage("dk.png"), x = 600, y = 400, lang = "dk", i = 3},
{image = display.newImage("ge.png"), x = 600, y = 400, lang = "ge", i = 4} }
local function changelanguage (event)
if event.phase == "ended" then
lang_table[event.target.i].image.isVisible = false
if event.target.i == 4 then
lang_table[1].image.isVisible = true
_G.value = event.target.lang
director:changeScene("settings")
else
lang_table[event.target.i+1].image.isVisible = true
_G.value = lang_table[event.target.i+1].lang
director:changeScene("settings")
end
end
return true
end
for i = 1,#lang_table do
local img_display = lang_table[i].image
img_display.x = lang_table[i].x
img_display.y = lang_table[i].y
img_display.i = lang_table[i].i
img_display.lang = lang_table[i].lang
if _G.value ~= lang_table[i].lang then
img_display.isVisible = false
end
img_display:addEventListener("touch", changelanguage)
langGroup:insert(img_display)
end
画像をタッチすると、changelanguage関数が呼び出されています。その関数には
director:changeScene
しかし、これは機能していません.基本的に、私が欲しいのは、画像へのタッチイベントがあるたびに同じluaファイルが呼び出されるようにすることです.しかし、これは起こっていません.次に、私がしたことは、関数「changelanguage」を
_G.t =1
local function changelanguage (event)
if event.phase == "ended" then
lang_table[event.target.i].image.isVisible = false
if event.target.i == 7 then
lang_table[1].image.isVisible = true
_G.value = event.target.lang
director:changeScene("settings")
else
lang_table[event.target.i+1].image.isVisible = true
_G.value = lang_table[event.target.i+1].lang
if _G.t ==1 then
director:changeScene("..\settings")
_G.t = _G.t+1
elseif _G.t ==2 then
director:changeScene("..\..\settings")
end
end
end
return true
end
今、それは機能しています.しかし、私はなぜこれが起こっているのか分かりません.誰かが私になぜこれが起こっているのか教えてもらえますかdirector:changeScene("settings")
?