2010-06-08 8 views

Répondre

2

essayez ceci (trouvé sur this site)

protected override void LoadContent() 
{ 
    Form f = Form.FromHandle(Window.Handle) as Form; 
    if (f != null) 
    { 
     f.FormClosing += f_FormClosing; 
    } 
    base.LoadContent(); 
} 

void f_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    // your code here 
} 
+0

Cela nécessite de référencer l'assembly System.Windows.Forms et n'est pas portable sur Xbox 360. –

+1

Vous avez raison, votre réponse est portable, la mienne ne l'est pas. – Keeper

11

La bonne méthode est, dans votre classe Game, passer outre OnExiting:

protected override void OnExiting(object sender, EventArgs args) 
{ 
    // Do stuff here... 

    base.OnExiting(sender, args); 
} 

La documentation de cette méthode est ici: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.onexiting.aspx

Vous pouvez également attacher un événement à Game.Exiting.

Ou vous pouvez surcharger EndRun, bien que cela ne semble pas se déclencher sur Windows si l'utilisateur quitte avec Alt + F4.

+0

Je ne sais pas à propos de 4.0, mais cela n'a pas fonctionné en 3.1 sur Xbox dans certains cas (par exemple, quitter via le guide). Je l'ai utilisé dans mon jeu Xbox pour enregistrer des scores élevés, et je l'ai découvert seulement sauvé si je quitte le jeu en utilisant mon option de menu, mais pas si elle est déchirée en utilisant le Guide :( –

Questions connexes