2016-06-29 12 views
0

私はアプリのイントロとデモのコードで作業しています。そして、すべてうまく動作しますが、私はそれを使用しようとしている間、私はバグを発見し、私はそれを取り除く方法を知らない。なぜ私のアプリが詰まったのですか

これはアプリケーションが行うことです:まず、再開で「スクエアが表示されたらタッチします。他の図が表示されても画面に触れない場合は」と表示されます。デモが始まり、正方形に触れていないと、「正方形に触れることを忘れない」というメッセージが表示されますが、メッセージを取り除くために画面をタッチすると、他の図形。私はこれをどのように管理するかを考えようとしていますが、本当に難しいです。

だから、私は少し助けを求める、PLZ。メッセージが画面上にある間にタッチスクリーンをブロックする方法、またはロジックをバイパスする方法。

Thxを

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

ありがとうございました。私はそれを行い、すべてのコードを作曲者に移行させました。 – RedPanda

+0

心配なし。私はポイントを得ることができます:) – Amir

答えて

1

ストーリーボードは、コロナではサポートされなくなりました。作曲家を使ってみてください。

0

アミールが正しいことで、コロナは、もはやストーリーボードの実装をサポートしていません。よりパワフルなコンパイラの使用をお勧めします。

1

コロナ・コンポーザー・ライブラリーの使用を開始してください。 Corona Docs

関連する問題