设为首页 收藏本站
查看: 610|回复: 0

Windows Phone 7 学习心得(二)

[复制链接]

尚未签到

发表于 2015-5-11 07:24:19 | 显示全部楼层 |阅读模式
  在上篇博文里面 我学习了如何创建第一个WP7手机程序和silverlight的一些知识。今天这篇博文将提到怎么样创建一个XNA的应用程序,并输出Hello, Windows Phone 7!
  --------内容开始---------
  一个XNA的应用程序
  创建一个XNA的程序与创建手机程序基本相同,选择Visual C#和XNA Game Studio 4.0,然后修改路径和程序名称。创建成功后你会发现VS为我们创建了两个项目。一个是XNA的项目一个是这个项目的内容。XNA程序通常包含的很多内容,主要是位图和三维模型,以及字体。下面我们将为XNA程序添加一个新的字体。首先右击这个项目的内容,这里我的为WindowsPhoneGame1Content,然后选择ADD(添加)-->new item 然后选择sprite font。然后点击ADD。完成之后你将会看到一个XML文件。你可以编辑它。
  首先第一个标签。你可以替换成下列字体:
  Kootenay Lindsey Miramonte Pescadero  Miramonte Bold   Pescadero Bold  Pericles   Segoe UI Mono  Pericles Light  Segoe UI Mono Bold
  其中Pericles 字体一般只试用于header。
  标签内表示Unicode字符的十六进制编码。默认设置从0x32到0x126包括所有的ASCII字符集的非控制字符。
  在XNA项目中,我们可以发现两个.cs文件。比如我的是Program.cs 和 Game1.cs. Program.cs 和 Windows Phone 7 games没有关系。
  大多数时间,我们都将修改 Game1.cs。
  首先class Game1继承 Microsoft.Xna.Framework 命名空间下的Game类。具体类的成员 查看http://msdn.microsoft.com/zh-cn/library/microsoft.xna.framework.game_members.aspx
  当类初始化后,会调用LoadContent()方法设置字体等其他内容。然后我们通过下面的代码来加载我们设置的字体,以及他的位置。
  



newFont = this.Content.Load("SpriteFont1");
Vector2 textSize = newFont.MeasureString(text);  //作为向量返回字符串的长和宽

textPosition = new Vector2((viewport.Width - textSize.X) / 2,
                (viewport.Height - textSize.Y) /2);


  之后在把它画出来.我们在Draw方法中添加如下的代码就可以了:
  



spriteBatch.Begin();
spriteBatch.DrawString(newFont, text, textPosition, Color.White);
spriteBatch.End();

  它的完整代码如下:



namespace WindowsPhoneGame1
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        string text = "Hello, Windows Phone 7!";
        SpriteFont newFont;
        Vector2 textPosition;
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            // Frame rate is 30 fps by default for Windows Phone.
            TargetElapsedTime = TimeSpan.FromTicks(333333);
        }

        protected override void Initialize()
        {
            // TODO: Add your initialization logic here

            base.Initialize();
        }

        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            newFont = this.Content.Load("SpriteFont1");
            Vector2 textSize = newFont.MeasureString(text);
            Viewport viewport = this.GraphicsDevice.Viewport; //获取屏幕大小
            textPosition = new Vector2((viewport.Width - textSize.X) / 2,
                                       (viewport.Height - textSize.Y) /2);
            // TODO: use this.Content to load your game content here
        }
        protected override void UnloadContent()
        {
            // TODO: Unload any non ContentManager content here
        }
        protected override void Update(GameTime gameTime)
        {
            // Allows the game to exit
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();
            // TODO: Add your update logic here

            base.Update(gameTime);
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            spriteBatch.Begin();
            spriteBatch.DrawString(newFont, text, textPosition, Color.White);
            spriteBatch.End();
            // TODO: Add your drawing code here

            base.Draw(gameTime);
        }
    }
}

  这样我们运行我们的程序,和WP7的操作步骤一样。是不是看到了Hello, Windows Phone 7!的输出。
  (二)完。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65648-1-1.html 上篇帖子: 〖Windows〗三星(SAMSUNG)905S3G-K07 安装Windows 7 过程分享 下篇帖子: Windows Phone 7监测网络环境变化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表