2012-03-23 3 views
0

Dans mon jeu WP7 j'ai un écran de menu qui se souvient de l'information alors je la laisse et je crée juste un nouvel écran de niveau de jeu (c'est une défense de tour donc le jeu est segmenté en niveaux) en haut de l'écran du menu. Puis, quand vous avez battu ce niveau, j'appelle this.ExitScreen(); (et ont également essayé ScreenManager.RemoveScreen (this);). Il supprime cet écran de niveau et affiche à nouveau le menu, mais je vois un flash de violet qui est juste la couleur par défaut ou l'arrière-plan nul ou de quelque manière que vous voulez le mettre. Je ne comprends pas pourquoi ce violet clignote. Mon écran de menu devrait-il être juste en dessous? Je serais reconnaissant pour toute aide à comprendre ce qui se passe ici.Changer les écrans dans XNA

+0

Utilisez-vous l'exemple GameStateManagament du site App Hub? XNA n'a pas de gestion d'écran intégrée, vous devrez donc expliquer un peu plus sur l'exemple de code que vous utilisez afin que nous puissions nous concentrer sur ce qui pourrait se passer. –

+0

Oui, j'utilise l'exemple GameStateManagement pour créer des écrans et les ajouter au gestionnaire d'écran. S'il y a plusieurs écrans, il doit y avoir une sorte d'ordre dans lequel ils sont affichés? Ajoutant le deuxième écran, il semblait apparaître sur mon écran de menu. Je suppose qu'il a gardé ces écrans dans une sorte de liste? Peut-être que je ne comprends pas correctement comment il gère les écrans si vous ajoutez plusieurs. – Ted

+0

Si vous téléchargez la version Xbox de l'exemple GameStateManagment, ils disposent d'une bonne documentation qui devrait vous expliquer comment cela fonctionne. Je ne sais pas pourquoi ils ne l'incluent pas dans la version WP7 –

Répondre

0

Je ne suis pas bon en C#, mais je l'aide de chat vous :)

make (écran int = 0)

en tirage font cas

switch(screen){ 
    case 0: 
    makeMenu(); 
    break; 
    case 1: 
    makeGame(); 
    break; 
} 

et mise à jour

switch(screen){ 
    case 0: 
    if(clickPlay){ 
     screen=1; 
    } 
    break; 
    case 1: 
    Game(); 
    break; 
}