Comment faire une capture d'écran à l'aide de C# & XNA?
Comment faire une capture d'écran et l'enregistrer sur le disque dur à l'aide de C# & XNA, lors de l'exécution de jeu en mode plein écran?
Double de stackoverflow.com/questions/1775196/take-screen-shot-in-xna
Mais, je veux le faire pendant la course et je n'ai pas quelque chose comme 'ResolveTexture2D', et de sauver, de ne pas imprimer.
Cette question est ce n'est pas un doublon (de toute façon). L'API a changé dans XNA 4.0 et la réponse n'est pas applicable.
Mais, je veux le faire pendant la course et je n'ai pas quelque chose comme 'ResolveTexture2D', et de sauver, de ne pas imprimer.
Cette question est ce n'est pas un doublon (de toute façon). L'API a changé dans XNA 4.0 et la réponse n'est pas applicable.
OriginalL'auteur Neomex | 2011-04-03
Vous devez vous connecter pour publier un commentaire.
L'API a été changé dans XNA 4.0.
Si vous êtes en cours d'exécution sur le
HiDef
profil (Xbox 360 et la plus récente des machines Windows), vous pouvez utiliserGraphicsDevice.GetBackBufferData
.À faire de l'épargne que les données facile, vous pouvez utiliser mettre la sortie de la dans un
Texture2D.SetData
et ensuite utiliserSaveAsPng
ouSaveAsJpeg
(ce qui est légèrement plus lente qu'elle ne doit l'être, car il envoie les données vers le GPU, mais c'est juste pour facile).Si vous utilisez le
Reach
profil, alors vous devez le rendu de votre scène à unRenderTarget2D
. Mon réponse ici devrait vous donner un bon point de départ.Je ne comprends pas très bien votre question. Vous êtes à la recherche pour
GraphicsDeviceManager.GraphicsDevice
? Vous devez vous case à MSDN pour ces choses. Bien sûr, si vous êtes dans une classe dérivée deGame
ouGameComponent
, ils ontGraphicsDevice
propriétés vous pouvez accéder directement.OriginalL'auteur Andrew Russell
Ici, jetez un oeil à ce code.
OriginalL'auteur Christoff
Ce réponse vous montre comment prendre une capture d'écran. Dans cet exemple, c'est l'enregistrement d'une image à chaque rendu, donc vous avez juste besoin de le déplacer vers une fonction que vous pouvez appeler quand vous voulez enregistrer la capture d'écran.
OriginalL'auteur Neil Knight