2015-12-17 1 views
0

J'essaie d'obtenir le niveau pour se recharger lors de la détection d'une collision avec le lecteur. Le joueur est listé comme un corps physique "dynamique", et les objets avec lesquels il réagit sont étiquetés comme "cinématiques". Comment puis-je réinitialiser le niveau en détectant la collision d'un joueur avec un objet? Voici mon code:Comment faire pour redémarrer le niveau lors d'une collision dans Corona sdk

local function onGlobalCollision(event) 
    if (event.phase == "began") then 
     composer.gotoScene("level1") 
    end 

    player.collision = onGlobalCollision 
    player:addEventListener ("collision", player) 
end 

Merci

Répondre

0

Assurez-vous que vous supprimez tous les écouteurs d'événements, sceneGroups, arrêtez la physique et de supprimer la scène dans la scène: méthode cacher. Au redémarrage, il devrait tout redémarrer. Aussi, je ne pense pas que vous n'avez pas besoin du if (event.phase ...). Votre code doit être:

fonction locale onGlobalCollision (événement)

composer.gotoScene("level1") 

player.collision = onGlobalCollision 
player:addEventListener ("collision", player) 

fin

Espérons que cela fonctionnera pour vous.

+0

Cela n'a pas fonctionné :( –

+0

Quelle erreur obtenez-vous pour cela? –