Ya hace algunos días he estado tratando de optimizar mi código, lo que pasa es que estoy creando un videojuego con una historia, iniciando el juego quiero que aparezca una imagen con estilo comic, y con un botón se vaya cambiando la imagen y de igual forma pueda regresar a la imagen anterior si pulsa otro botón, lo he logrado pero únicamente con la función .isVisible del objeto, y usando un grupo considerable de sentencias if… ¿Alguien me podría comentar una forma más optima de lograr esto?
Deberías poner un ejemplo del código que quieres mejorar para ayudarte mejor, pero se puede intentar. Si no me equivoco quieres gestionar la secuencia de imágenes a mostrar y que sea sencillo volver a la imagen anterior o continuar con la siguiente, lo puedes gestionar con un simple índice, por ejemplo:
Crea tus imágenes en secuencia como una tabla ordenada con índice:
Graaaaacias… Exactamente eso quería hacer jaja soy nuevo en esto de los foros. Crees que pueda aplicarse de la misma forma para el sceneGroup de una escena?
Para volver atrás en una escena de composer, uso un botón “Back” que usa este código:
local scene = composer.getSceneName( "current" ) backscene[scene]()
Para eso tengo definida una tabla que para cada escena de composer define cual es la escena para volver atrás
local backscene = { ["scripts.menu"] = function () native.requestExit() end, ["scripts.parent"] = function () goBack ("scripts.menu") end, ["scripts.select"] = function () goBack ("scripts.menu") end, ["scripts.puzzle"] = function () goBack ("scripts.select") end, ["scripts.language"] = function () goBack ("scripts.menu") end, ["scripts.aboutus"] = function () goBack ("scripts.menu") end }
Y una función para volver atrás con las opciones que me interesan:
local function goBack (scene) local options = { effect = "zoomInOutFade", time = 400 } composer.gotoScene( scene , options) end
En este caso el índice de la tabla son los nombres de las escenas de composer, así llamando a la función usando el índice es fácil cambiar la escena.
Sólo tienes que poner ese código en main.lua o en módulo aparte para poder usarlo en toda tu aplicación fácilmente.
Deberías poner un ejemplo del código que quieres mejorar para ayudarte mejor, pero se puede intentar. Si no me equivoco quieres gestionar la secuencia de imágenes a mostrar y que sea sencillo volver a la imagen anterior o continuar con la siguiente, lo puedes gestionar con un simple índice, por ejemplo:
Crea tus imágenes en secuencia como una tabla ordenada con índice:
Graaaaacias… Exactamente eso quería hacer jaja soy nuevo en esto de los foros. Crees que pueda aplicarse de la misma forma para el sceneGroup de una escena?
Para volver atrás en una escena de composer, uso un botón “Back” que usa este código:
local scene = composer.getSceneName( "current" ) backscene[scene]()
Para eso tengo definida una tabla que para cada escena de composer define cual es la escena para volver atrás
local backscene = { ["scripts.menu"] = function () native.requestExit() end, ["scripts.parent"] = function () goBack ("scripts.menu") end, ["scripts.select"] = function () goBack ("scripts.menu") end, ["scripts.puzzle"] = function () goBack ("scripts.select") end, ["scripts.language"] = function () goBack ("scripts.menu") end, ["scripts.aboutus"] = function () goBack ("scripts.menu") end }
Y una función para volver atrás con las opciones que me interesan:
local function goBack (scene) local options = { effect = "zoomInOutFade", time = 400 } composer.gotoScene( scene , options) end
En este caso el índice de la tabla son los nombres de las escenas de composer, así llamando a la función usando el índice es fácil cambiar la escena.
Sólo tienes que poner ese código en main.lua o en módulo aparte para poder usarlo en toda tu aplicación fácilmente.