惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
博客园_首页
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
B
Blog RSS Feed
D
Docker
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
V
V2EX
量子位
雷峰网
雷峰网
月光博客
月光博客
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog

博客园 - 张剑

WebMatrix&Razor建站系列之WebMatrix介绍 Windows Phone 7 XNA开发之关于游戏组件 Windows Phone 7 XNA开发之关于图形的配置 EntityFramework外健的读写 vs2010中添加项目中找不到EntityFramework实体框架解决办法 使用MSDN学习ASP.NET的工作流程 《XNA游戏开发》在战机游戏中使用Decorator模式 不被重视的基础,简单高效地使用ADO.net连接对象 微软2011 GCR MVP Open Day 之旅! ASP.NET4.5与VisualStudio11预览 程序员杂记系列文章,30岁之前的回忆。 程序员杂记:带面具的生活! MVC中在路由表routes集合中添加Route实例的一些问题。 Windows Phone 7之HelloWorld! MVC3+Entity Framework 实现投票系统(三) MVC3+Entity Framework 实现投票系统(二) MVC3+Entity Framework 实现投票系统(一) 关于Windows Phone 7开发工具离线安装包 程序员杂记:我们的爱情故事
Windows Phone 7、XNA的旋转的背景
张剑 · 2011-12-26 · via 博客园 - 张剑

2011-12-26 17:58  张剑  阅读(870)  评论()    收藏  举报

在游戏表现的过程中需要一些比较酷的动作,我们需要通过图型与XNA中的一些代码来实现,比如我们要说到的一个360度转动的圆。

在手机上的效果如下:

当然在这里我们看不到转动的效果,下边提供的有源码,大家可以下载运行测试一下。

操作步骤如下:

1.创建WP7XNA项目。

2.在Game1类中,添加如下代码:

        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        Texture2D _Aluren;//纹理
        Rectangle _AlurenRectangle;//位置大小
        Rectangle _SrAlurenRectangle;//源矩形
        int i = 0; //旋转角度
        Vector2 _Origin;//起点

其中加了注释的是需要我们自己创建的字段。

3.在Initialize()方法或者构造方法中添加如下代码:

            _AlurenRectangle = new Rectangle(220, 220, 600, 600);
            _SrAlurenRectangle = new Rectangle(0, 0, 800, 800);
            _Origin = new Vector2(400, 400);

这样或以初始化圆形的位置、旋转的源矩形及起点。

4.将Aluren.png图片放到WindowsPhoneGameContent项目中。

5.在LoadContent()方法中添加如下代码:

  _Aluren = Content.Load<Texture2D>("Aluren");

在这里完成图片纹理的加载。

6.在Update(GameTime gameTime)方法中添加:

            if (i >= 360)
                i = 0;
            i++;

在每次刷新时,绘制的角度+1,直到360度后重新开始,当然这里的度数也可以是其他,比如90,180等。

7.最后在Draw(GameTime gameTime)方法中完成绘制功能:

            spriteBatch.Begin();
            spriteBatch.Draw(_Aluren, _AlurenRectangle, _SrAlurenRectangle, Color.White, i, _Origin, SpriteEffects.FlipHorizontally, 0);
            spriteBatch.End();

整个程序完成后,运行即可看到效果。

图片文件:http://jianle.blog.51cto.com/attachment/201112/429692_1324893909.png

源码:http://jianle.blog.51cto.com/attachment/201112/429692_1324894092.zip

注意:下载完成后,需要将图片文件放入到源码中才能使用!