XNA游戏开发中横竖屏的设置

手机设备里面,会有横竖屏的状态,一般会有3种情况,一个是竖屏,一个是右横屏,一个是左横屏,横屏的设置
首页 新闻资讯 行业资讯 XNA游戏开发中横竖屏的设置

手机设备里面,会有横竖屏的状态,一般会有3种情况,一个是竖屏,一个是右横屏,一个是左横屏。XNA游戏开发中,横屏的设置是通过GraphicsDeviceManager类的SupportedOrientations属性来设置的,GraphicsDeviceManager类在XNA类库介绍中提到的该类型是非常重要的。它为开发者提供方法来管理目标设备的显卡资源。简单地说就是调用显卡的一个接口,该对象的GraphicsDevice属性代表当前目标设备的显卡。

代码示例:

 

复制

using System;  using System.Collections.Generic;  using System.Linq;  using Microsoft.Xna.Framework;  using Microsoft.Xna.Framework.Audio;  using Microsoft.Xna.Framework.Content;  using Microsoft.Xna.Framework.GamerServices;  using Microsoft.Xna.Framework.Graphics;  using Microsoft.Xna.Framework.Input;  using Microsoft.Xna.Framework.Input.Touch;  using Microsoft.Xna.Framework.Media;   namespace SlXnaApp1  {      /// <summary>     /// This is the main type for your game      /// </summary>     public class Game1 : Microsoft.Xna.Framework.Game      {          GraphicsDeviceManager graphics;          SpriteBatch spriteBatch;          SpriteFont rotationFont;           public Game1()          {              graphics = new GraphicsDeviceManager(this);              Content.RootDirectory = "Content";               // Frame rate is 30 fps by default for Windows Phone.              TargetElapsedTime = TimeSpan.FromTicks(333333);              //添加横屏和竖屏的支持              graphics.SupportedOrientations = DisplayOrientation.Portrait | DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight;          }           /// <summary>         /// Allows the game to perform any initialization it needs to before starting to run.          /// This is where it can query for any required services and load any non-graphic          /// related content.  Calling base.Initialize will enumerate through any components          /// and initialize them as well.          /// </summary>         protected override void Initialize()          {              // TODO: Add your initialization logic here               base.Initialize();          }           /// <summary>         /// LoadContent will be called once per game and is the place to load          /// all of your content.          /// </summary>         protected override void LoadContent()          {              // Create a new SpriteBatch, which can be used to draw textures.              spriteBatch = new SpriteBatch(GraphicsDevice);               // TODO: use this.Content to load your game content here              rotationFont = Content.Load<SpriteFont>("rotationFont");          }           /// <summary>         /// UnloadContent will be called once per game and is the place to unload          /// all content.          /// </summary>         protected override void UnloadContent()          {              // TODO: Unload any non ContentManager content here          }           /// <summary>         /// Allows the game to run logic such as updating the world,          /// checking for collisions, gathering input, and playing audio.          /// </summary>         /// <param name="gameTime">Provides a snapshot of timing values.</param>         protected override void Update(GameTime gameTime)          {              // Allows the game to exit              if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)                  this.Exit();               base.Update(gameTime);          }           /// <summary>         /// This is called when the game should draw itself.          /// </summary>         /// <param name="gameTime">Provides a snapshot of timing values.</param>         protected override void Draw(GameTime gameTime)          {              GraphicsDevice.Clear(Color.CornflowerBlue);               // TODO: Add your drawing code here              spriteBatch.Begin();              spriteBatch.DrawString(rotationFont, "你现在手机的摆放状态是:" + Window.CurrentOrientation.ToString() + ".", new Vector2(50, 50), Color.White);              spriteBatch.End();               base.Draw(gameTime);          }      }  }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

  • 41.

  • 42.

  • 43.

  • 44.

  • 45.

  • 46.

  • 47.

  • 48.

  • 49.

  • 50.

  • 51.

  • 52.

  • 53.

  • 54.

  • 55.

  • 56.

  • 57.

  • 58.

  • 59.

  • 60.

  • 61.

  • 62.

  • 63.

  • 64.

  • 65.

  • 66.

  • 67.

  • 68.

  • 69.

  • 70.

  • 71.

  • 72.

  • 73.

  • 74.

  • 75.

  • 76.

  • 77.

  • 78.

  • 79.

  • 80.

  • 81.

  • 82.

  • 83.

  • 84.

  • 85.

  • 86.

  • 87.

  • 88.

  • 89.

  • 90.

  • 91.

  • 92.

  • 93.

  • 94.

  • 95.

  • 96.

  • 97.

  • 98.

  • 99.

  • 100.

 

原文链接:http://www.cnblogs.com/linzheng/archive/2012/04/15/2450274.html

【编辑推荐】

  1. 爆料:C#和XNA可以在iOS和Android平台使用

  2. 详解Windows Phone XNA 4.0 3D游戏开发

14    2012-05-22 14:26:15    XNA 横竖屏设置