Esta es la segunda entrega de nuestro tutorial de memoria de sonido Corona SDK. En el tutorial de hoy, agregaremos a nuestra interfaz y la interacción del juego. Sigue leyendo!
Asegúrese de revisar la primera parte de la serie para comprender completamente y prepararse para este tutorial.
Esta función agrega los oyentes necesarios a la Vista del título botones.
function startButtonListeners (acción) if (acción == 'agregar') luego playBtn: addEventListener ('tap', showGameView) creditsBtn: addEventListener ('tap', showCredits) else playBtn: removeEventListener ('tap', showGameView) creditsBtn: removeEventListener 'tap', showCredits) end end end
los creditos La pantalla se muestra cuando el usuario toca el Acerca de botón, se agrega un escucha de tap a la vista de créditos para eliminarlo.
función showCredits: toque (e) playBtn.isVisible = false creditsBtn.isVisible = false creditsView = display.newImage ('credits.png', 0, display.contentHeight) lastY = title.y transition.to (title, time = 300 , y = display.contentHeight * 0.5 - title.height - 25) transition.to (creditsView, time = 300, y = display.contentHeight * 0.5 + creditsView.height, onComplete = function () creditsView: addEventListener ('tap ', hideCredits) end) end
Cuando el creditos se toca la pantalla, se interpone entre el escenario y se elimina.
función hideCredits: toque (e) transition.to (creditsView, time = 300, y = display.contentHeight, onComplete = function () creditsBtn.isVisible = true playBtn.isVisible = true creditsView: removeEventListener ('tap', hideCredits) display .remove (creditsView) creditsView = nil end) transition.to (title, time = 300, y = lastY); fin
Cuando el Jugar se pulsa el botón, la vista de título se interpola y se elimina, revelando la vista del juego. Hay muchas partes involucradas en esta vista, así que las dividiremos en los siguientes pasos.
función showGameView: toque (e) transition.to (titleView, time = 300, x = -titleView.height, onComplete = function () startButtonListeners ('rmv') display.remove (titleView) titleView = nil end)
Este código coloca las imágenes del botón del juego en el escenario..
-- Añadir cuadrados r.gfx = display.newImage ('red.png', 75, 155) g.gfx = display.newImage ('green.png', 165, 155) ye.gfx = display.newImage ('yellow.png ', 75, 245) b.gfx = display.newImage (' blue.png ', 165, 245) r.gfx.name =' r 'g.gfx.name =' g 'ye.gfx.name =' ye 'b.gfx.name =' b '
Las siguientes líneas agregarán el instrucciones mensaje, mostrarlo durante dos segundos y luego desaparecer.
-- Instrucciones Mensaje local ins = display.newImage ('message.png', 61, 373) transition.from (ins, time = 200, alpha = 0.1, onComplete = function () timer.performWithDelay (2000, function () transición. to (ins, time = 200, alpha = 0.1, onComplete = function () display.remove (ins) ins = nil gameTimer = timer.performWithDelay (500, playLevel, #currentLevel) end)
Este botón se usa para probar la entrada del usuario y asegurarse de que sea igual a los sonidos de nivel. Es invisible por defecto..
-- Check Button check = display.newImage ('checkBtn.png', 135, 406) check.isVisible = false
Esta función agrega los oyentes necesarios para iniciar la lógica del juego..
function gameListeners (action) if (action == 'add') entonces r.gfx: addEventListener ('tap', onTap) g.gfx: addEventListener ('tap', onTap) ye.gfx: addEventListener ('tap', onTap ) b.gfx: addEventListener ('tap', onTap) check: addEventListener ('tap', checkInput) else r.gfx: removeEventListener ('tap', onTap) g.gfx: removeEventListener ('tap', onTap) ye. gfx: removeEventListener ('tap', onTap) b.gfx: removeEventListener ('tap', onTap) check: removeEventListener ('tap', checkInput) gameTimer = nil end end
Esta función lee el nivel actual Variable para determinar en qué nivel jugar. También utiliza una transición para señalar visualmente el botón asociado al sonido. Cuando se realiza la secuencia de niveles comprobar botón se hace visible.
función playLevel () if (times <= #currentLevel) then transition.from(currentLevel[times].gfx, time = 200, alpha = 0.1) audio.play(currentLevel[times].s) times = times + 1 end if(times == #currentLevel+1) then check.isVisible = true gameListeners('add') end end
Presionando los botones en el centro llamará a esta función. Tocará un sonido y grabará su valor en el entrada del usuario mesa. Esta tabla se usará en la siguiente función para comparar los sonidos..
función onTap (e) si (e.target.name == 'r') luego table.insert (userInput, r.gfx) audio.play (rs) transition.from (e.target, time = 200, alpha = 0.1) elseif (e.target.name == 'g') luego table.insert (userInput, g.gfx) audio.play (gs) transition.from (e.target, time = 200, alpha = 0.1 ) elseif (e.target.name == 'ye') luego table.insert (userInput, ye.gfx) audio.play (ye.s) transition.from (e.target, time = 200, alpha = 0.1 ) elseif (e.target.name == 'b') luego table.insert (userInput, b.gfx) audio.play (bs) transition.from (e.target, time = 200, alpha = 0.1) fin fin
Esta función compara los nombres de los botones pulsados con la tabla de niveles y llama una alerta con el mensaje correspondiente..
función checkInput (e) check.isVisible = falso para i = 1, #currentLevel do if (userInput [i] .name == currentLevel [i] .gfx.name) luego correcto = correcto + 1 final fin if (correcto == #currentLevel) luego alerta ('ganar') más alerta ('perder') final fin
los Alerta La función crea una vista de alerta, la anima y finaliza el juego..
función alerta (acción) gameListeners ('rmv') si (acción == 'pierde') entonces alertView = display.newImage ('lose.png', 110, 218) else alertView = display.newImage ('win.png', 110, 218) end transition.from (alertView, time = 200, alpha = 0.1) end
Para comenzar el juego, el Principal La función necesita ser llamada. Lo haremos aquí con el código anterior en su lugar.
Principal()
los Default.png El archivo es una imagen que se mostrará justo al iniciar la aplicación mientras el iOS carga los datos básicos para mostrar la pantalla principal. Agrega esta imagen a tu carpeta de origen de proyecto; Será añadido automáticamente por el compliler de Corona..
Usando los gráficos que creó anteriormente, ahora puede crear un bonito icono. El tamaño del icono para un iPhone sin pantalla retina es de 57x57px, pero la versión de retina es de 114x114px y la tienda de iTunes requiere una versión de 512x512px. Recomiendo crear la versión 512x512 primero y reducir la escala para los otros tamaños.
iTunes y el iPhone crearán las esquinas redondeadas y el brillo transparente..
Es hora de hacer la prueba final. Abra el simulador de Corona, busque la carpeta de su proyecto y haga clic en Abrir. Si todo funciona como se espera, estás listo para el paso final!
En el simulador de corona ir a Archivo y compilación y seleccione su dispositivo de destino. Rellene los datos requeridos y haga clic construir. Espere unos segundos y su aplicación estará lista para la prueba del dispositivo y / o el envío para su distribución.!
En esta serie, hemos aprendido sobre la carga de sonido, la reproducción y la comparación de tablas. Estas son habilidades que pueden ser muy útiles en una gran cantidad de juegos..
Puedes experimentar con el resultado final e intentar crear tu versión personalizada del juego.!
Espero que les haya gustado esta serie de tutoriales y les haya resultado útil. Gracias por leer!