2016-06-29 5 views
0

저는 앱의 소개 및 데모 코드에서 작업하고 있습니다. 그리고 모든게 잘 작동하지만 내가 그것을 사용하려고 할 때 나는 버그를 발견하고 그것을 제거하는 방법을 모른다.내 앱이 갇히게 된 이유

이것은 앱에서 수행하는 작업입니다. 먼저 "이 사각형이 나타날 때를 터치하고 다른 그림이 화면에 닿지 않으면 터치합니다"라는 안내를 봅니다. 따라서 데모가 시작되고 사각형을 건드리지 않으면 "사각형을 터치하는 것을 잊지 마십시오"라는 메시지가 나타납니다. 그러나 화면을 터치하여 메시지를 제거하면 다른 그림을 터치하는 것처럼 읽습니다. . 나는 이것을 관리하는 방법을 알아 내려고 노력하고 있지만, 정말 힘들었습니다.

그래서, 작은 도움을 요청하는 메신저, plz. 메시지가 화면 상에있을 때 터치 스크린을 차단하거나 로직 우회 방법.

들으

P.S : 이것은

--------------------------------------------------------------------------------- 
-- 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

스토리 보드는 코로나에서 더 이상 지원되지 않습니다. 이와 같이 긴 코드를 조작하려고하면 상당히 진보해야합니다. 작곡가 – Amir

+0

사용해 주셔서 감사합니다 amir, 나는 그것을했고 작곡가로 모든 코드를 마이 그 레이션하고 그것은 효과. – RedPanda

+0

걱정할 필요가 없습니다. 나는 그 때 점을 얻을 수있다 :) – Amir

답변

1

스토리 보드는 코로나에서 더 이상 지원되지 않습니다. 작곡가를 사용해보십시오.

0

아미르가 올바른 코드입니다, 코로나는 더 이상 스토리 보드 구현을 지원하지 않습니다. 더 강력한 컴파일러 사용을 제안합니다.