2016-06-29 16 views
0

Ich arbeite im Code eines Intro und Demo für eine App. Und alles funktioniert gut, aber während ich versuchte, es zu benutzen, fand ich einen Fehler und ich weiß nicht, wie ich es loswerden soll.Warum meine App stecken bleibt

Dies ist, was die App tun: Zuerst sehen Sie die Anweisungen, die in der Fortsetzung "Berühren Sie, wenn das Quadrat erscheint, wenn eine andere Zahl erscheint den Bildschirm nicht berühren". Die Demo beginnt also, und wenn Sie das Quadrat nicht berühren, erscheint eine Nachricht, die besagt "denken Sie daran, das Quadrat zu berühren", aber wenn Sie den Bildschirm berühren, um die Nachricht loszuwerden, wird sie so gelesen, als ob Sie eine andere Figur berühren würden . Ich habe versucht herauszufinden, wie ich das schaffen soll, aber es war wirklich schwer.

Also, ich bitte um ein wenig Hilfe, PLZ. Eine Möglichkeit, den Touchscreen zu blockieren, während die Nachricht auf dem Bildschirm angezeigt wird, oder eine Möglichkeit, diese zu umgehen.

Thx

P. S: Dies ist der Code

--------------------------------------------------------------------------------- 
-- SCENE NAME 
-- Scene notes go here 
--------------------------------------------------------------------------------- 

local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

-- Clear previous scene 
--storyboard.removeAll() 

-- local forward references should go here -- 

--------------------------------------------------------------------------------- 
-- BEGINNING OF YOUR IMPLEMENTATION 

--tiempoVisible = 150            --Tiempo de visibilidad del circulo 
--tiempoNoVisible = 1850           --Intervalo de timepo entre un circulo y otro 

tiempoVisible = 200            --Tiempo de visibilidad del circulo 
tiempoNoVisible = 2250           --Intervalo de timepo entre un circulo y otro 


aciertos = 0             --Registra los aciertos del paciente 
comisiones = 0             --Registra las comisiones del paciente 
omisiones = 0             --Registra las omisiones del paciente 
tiempo = tiempoNoVisible    --Entrega el tiempo que debe estar el circulo y el tiempo de intervalo 

--Contiene la secuencia de circulos buenos (1) y circulos malos (0) 
tablaSecuencia = {0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1} 
contadorSecuencia = 0       --Registra en que lugar de la tabla va la secuencia 

esTransparente = true           --Verifica si el circulo esta transparente o no 
estaRespondido = false           --Verifica si el circulo fue presionado 


--------------------------------------------------------------------------------- 

-- Called when the scene's view does not exist: 
function scene:createScene(event) 
    local group = self.view 

    --print("inside") 
    imagenINTRU = display.newImage("test2/instrucciones.png", 0, 0, true); 
    imagenINTRU:scale(display.contentWidth/imagenINTRU.contentWidth+0.15, display.contentHeight/imagenINTRU.contentHeight+0.1); 
    imagenINTRU.x= display.contentWidth/2; 
    imagenINTRU.y= display.contentHeight/2+40; 

    group:insert(imagenINTRU); 
    empezoTest = false 

    circulo = display.newCircle(display.contentCenterX-20, display.contentCenterY-30, 80) 
    circulo.alpha = 0 

    group:insert(circulo) 
    circulo.isVisible=false; 

imagenP = display.newImage("test2/pentagonox.png", 0, 0, true); 
    imagenP:scale(1, 1); 
    imagenP.x= display.contentWidth/2; 
    imagenP.y= display.contentHeight/2; 
    group:insert(imagenP); 
    imagenP.isVisible=false; 


imagenC = display.newImage("test2/cuadradox.png", 0, 0, true); 
    imagenC:scale(1, 1); 
    imagenC.x= display.contentWidth/2; 
    imagenC.y= display.contentHeight/2; 
    group:insert(imagenC); 
    imagenC.isVisible=false; 

mensajeA = display.newText("¡Eso es!", 0, 0, 400, 0, native.systemFontBold, 60) 
    mensajeA.x = (display.contentWidth/2) + 100 
    mensajeA.y = 600 --display.contentHeight/2 
    mensajeA:setFillColor(144/255, 173/255, 193/255, 1) 
    mensajeA.align = "center" 
    group:insert(mensajeA) 

    mensajeB = display.newText("¡Recuerde que debe presionar cuando\n   aparezca un cuadrado!", 0, 0, 950, 0, native.systemFontBold, 50) 
    mensajeB.x = 550 
    mensajeB.y = 600 --display.contentHeight/2 
    mensajeB:setFillColor(144/255, 173/255, 193/255, 1) 
    mensajeB.align = "center" 
    group:insert(mensajeB) 

    mensajeC = display.newText("¡Recuerde que NO debe presionar cuando\n  aparezca otra figura geométrica!", 0, 0, 1100, 0, native.systemFontBold, 50) 
    mensajeC.x = 550 
    mensajeC.y = 600 --display.contentHeight/2 
    mensajeC:setFillColor(144/255, 173/255, 193/255, 1) 
    mensajeC.align = "center" 
    group:insert(mensajeC) 


mensajeA.isVisible=false; 
mensajeB.isVisible=false; 
mensajeC.isVisible=false; 

end 

-- Called BEFORE scene has moved onscreen: 
function scene:willEnterScene(event) 
    local group = self.view 

end 

-- Called immediately after scene has moved onscreen: 
function scene:enterScene(event) 
    local group = self.view 

end 

-- Called when scene is about to move offscreen: 
function scene:exitScene(event) 
    local group = self.view 

end 

-- Called AFTER scene has finished moving offscreen: 
function scene:didExitScene(event) 
    local group = self.view 

end 


function finalizar() 
    Runtime:removeEventListener("touch", primerTouch) 
Runtime:removeEventListener("touch", touch) 
imagenINTRU:removeSelf() 
imagenINTRU=nil; 
end 

-- Called prior to the removal of scene's "view" (display view) 
function scene:destroyScene(event) 
    local group = self.view 

end 

-- Called if/when overlay scene is displayed via storyboard.showOverlay() 
function scene:overlayBegan(event) 
    local group = self.view 
    local overlay_name = event.sceneName -- name of the overlay scene 

end 

-- Called if/when overlay scene is hidden/removed via storyboard.hideOverlay() 
function scene:overlayEnded(event) 
    local group = self.view 
    local overlay_name = event.sceneName -- name of the overlay scene 

end 


function img() 
    imagenINTRU:removeSelf(); 
    imagenINTRU = null; 
    imagenINTRU = display.newImage("test2/backGprueba.png", 0, 0, true); 
    imagenINTRU:scale(display.contentWidth/imagenINTRU.contentWidth+0.15, display.contentHeight/imagenINTRU.contentHeight+0.1); 
    imagenINTRU.x= display.contentWidth/2; 
    imagenINTRU.y= display.contentHeight/2+80; 
    imagenINTRU:toBack(); 
end 

function primerTouch(event) 
    if ((event.phase == "ended" or event.phase == "cancelled") and not empezoTest) then 
    empezoTest = true 

    img() 
    timer.performWithDelay(tiempo, CambiarAlpha) 
    end 
end 


function CambiarAlpha() 
    if empezoTest then 
    if msjeVisible()==false then 
    if esTransparente then 
    print(contadorSecuencia.." turno") 
    if contadorSecuencia == 16 then 
    --if contadorSecuencia == 3 then 
     if tablaSecuencia[contadorSecuencia] == 1 and not estaRespondido then 
     no_msj() 
     print("OmisionA") 
     mensajeB.isVisible=true; 
     timer.performWithDelay(1600, delayB) 
     --omisiones = omisiones + 1 
     end 

     contadorSecuencia = 0 
     storyboard.purgeScene("ini_prueba2") 
     storyboard.removeScene("ini_prueba2") 
     storyboard.removeAll("ini_prueba2") 
     storyboard.gotoScene("ini_prueba2", "fade", 1500) 

     empezoTest=false; 
     finalizar() 
    else 
     delay=false; 
     --contadorSecuencia = contadorSecuencia - 1 
     if tablaSecuencia[contadorSecuencia] == 1 and not estaRespondido then 
     print("Omisionb") 
     no_msj() 
     mensajeB.isVisible=true; 
     timer.performWithDelay(1600, delayB) 
     delay=true; 

     end 
     if delay==false then 
     contadorSecuencia = contadorSecuencia + 1 


     if tablaSecuencia[contadorSecuencia] == 0 then 
      imagenP.isVisible=true; 
     else 
      imagenC.isVisible=true; 
     end 

     esTransparente = false 
     circulo.alpha = 1 
     --estaRespondido = false 

     tiempo = tiempoVisible 
     print("tmpo no visi ."..tiempo) 
     timer.performWithDelay(tiempo, CambiarAlpha) 

     --end 
     else -- if 199 
     contadorSecuencia = contadorSecuencia + 1 
     end -- end delay 
    end 
    else-- else transparente 177 
    esTransparente = true 
    circulo.alpha = 0 
    no_TPC() 

     tiempo = tiempoNoVisible 
     estaRespondido = false 
     timer.performWithDelay(tiempo, CambiarAlpha) 

    --tiempo = tiempoNoVisible 
    --estaRespondido = false 
    --timer.performWithDelay(tiempo, CambiarAlpha) 
    end 
else 
    tiempo = tiempoNoVisible 
timer.performWithDelay(tiempo, CambiarAlpha) 
    end --if mensaje visible 
    end --if empezoTest 
end 

function msjeVisible() 
    is=false; 
    if mensajeA.isVisible==true then 
    is= true; 
    end 
    if mensajeB.isVisible==true then 
    is= true; 
    end 
    if mensajeC.isVisible==true then 
    is= true; 
    end 
    return is; 
end 


function no_TPC() 
    imagenP.isVisible=false; 
    imagenC.isVisible=false; 
end 

function no_msj() 
mensajeA.isVisible=false; 
mensajeB.isVisible=false; 
mensajeC.isVisible=false; 

end 

function no_msj2() 
mensajeA.isVisible=false; 
mensajeB.isVisible=false; 
mensajeC.isVisible=false; 
end 

function delayA(event) 
    if mensajeA.isVisible then 
    mensajeA.isVisible=false; 
    tiempo = 100--tiempoNoVisible 
--timer.performWithDelay(tiempo, CambiarAlpha) 
print("A") 
    end 
end 
function delayB(event) 
    if mensajeB.isVisible then 
    mensajeB.isVisible=false; 
    tiempo = 100--tiempoNoVisible 
timer.performWithDelay(tiempo, CambiarAlpha) 
print("B") 
    end 
end 
function delayC(event) 
    if mensajeC.isVisible then 
    mensajeC.isVisible=false; 
    tiempo = 100--tiempoNoVisible 
--timer.performWithDelay(tiempo, CambiarAlpha) 
print("C") 
    end 
end 


function touch(event) 
    if event.phase == "began" and empezoTest then 
    if tablaSecuencia[contadorSecuencia] == 1 and not estaRespondido then 
     no_msj2() 
     mensajeA.isVisible=true; 
     timer.performWithDelay(1600, delayA) 
     aciertos = aciertos + 1 
     estaRespondido = true 
    elseif tablaSecuencia[contadorSecuencia] == 0 and not estaRespondido then 
     no_msj2() 
     mensajeC.isVisible=true; 
     timer.performWithDelay(1600, delayC) 
     comisiones = comisiones + 1 
     estaRespondido = true 
    end 
    end 
end 


--timer.performWithDelay(tiempo, CambiarAlpha) 
Runtime:addEventListener("touch", touch) 
--------------------------------------------------------------------------------- 
-- END OF YOUR IMPLEMENTATION 
--------------------------------------------------------------------------------- 
Runtime:addEventListener("touch", primerTouch) 
-- "createScene" event is dispatched if scene's view does not exist 
scene:addEventListener("createScene", scene) 
-- "willEnterScene" event is dispatched before scene transition begins 
scene:addEventListener("willEnterScene", scene) 
-- "enterScene" event is dispatched whenever scene transition has finished 
scene:addEventListener("enterScene", scene) 
-- "exitScene" event is dispatched before next scene's transition begins 
scene:addEventListener("exitScene", scene) 
-- "didExitScene" event is dispatched after scene has finished transitioning out 
scene:addEventListener("didExitScene", scene) 
-- "destroyScene" event is dispatched before view is unloaded, which can be 
-- automatically unloaded in low memory situations, or explicitly via a call to 
-- storyboard.purgeScene() or storyboard.removeScene(). 
scene:addEventListener("destroyScene", scene) 
-- "overlayBegan" event is dispatched when an overlay scene is shown 
scene:addEventListener("overlayBegan", scene) 
-- "overlayEnded" event is dispatched when an overlay scene is hidden/removed 
scene:addEventListener("overlayEnded", scene) 

--------------------------------------------------------------------------------- 

return scene 
+0

Storyboard wird in Corona nicht einmal mehr unterstützt. Sie müssen ziemlich weit fortgeschritten sein, wenn Sie versuchen, einen langen Code wie diesen zu manipulieren. Versuchen Sie es mit Composer – Amir

+0

Danke Amir, ich habe das und migrierte den gesamten Code zum Komponisten und es hat funktioniert. – RedPanda

+0

Keine Sorgen Kumpel. Kann ich die Punkte dann bekommen :) – Amir

Antwort

1

Storyboard wird in Corona nicht mehr unterstützt. Versuchen Sie es mit dem Komponisten.

0

Amir korrekt ist, Corona nicht mehr unterstützt Storyboard-Implementierung. Ich würde vorschlagen, einen leistungsfähigeren Compiler zu verwenden.

Verwandte Themen