代码改变世界

Windows Phone 7、XNA的旋转的背景

2011-12-26 17:58  张剑  阅读(838)  评论(2编辑  收藏  举报

在游戏表现的过程中需要一些比较酷的动作,我们需要通过图型与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

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