zoukankan      html  css  js  c++  java
  • XNA开发思考之(1)tank的移动

    此为原创,转载请注明作者和出处,谢谢!

      下面我们就对tank这程序值得思考之处作出评解:

    先附加视频位置:  http://v.youku.com/v_show/id_XOTkxODcwMDQ=.html

    首先这个程序是基于2D开发,所以平面坐标只有X,Y轴!

    假设tank已经在如图所位置,下一步将移动到A点,假设tank的旋转弧度为tank_rotation,因为程序中的数学角度的换算是以弧度的,所以float tank_rotation;如果将tank到A点的距离设为单位1,这利用Math.Cos(tank_rotation)-tankposition.X(tankposition为tank当前的位置)可以算出tank在X轴上的下一个位置的X坐标,Math.Sin(tank_rotation)-tankposition.Y可以得出下一个点Y轴的坐标.如果你想让tank移动的快点,可以在把单位1改为任意的数字,来增大移动的距离!

    在游戏中,tank的旋转的实现也是通过弧度tank_rotation实现的。XNA把一个圆圈分成了360个部分,每一个被称为一度。那么90度则是四分之一个圆,180度是半个圆。如果不习惯用弧度来表示角度的话可以运用MathHelper.ToRadians将弧度转化为角度进行运算。

    tank旋转运动的绘制需要在Draw()方法循环中用到

     

    Code

    这里的SpriteBatch.Draw,并通过调整位置、大小、旋转、翻转、调色,以及更多的丰富多彩的选项来绘制Texture2D对象到屏幕上

     

     付上程序的源代码:/Files/315358525/Tanke.rar

  • 相关阅读:
    双向认证SSL原理
    p12证书转keystore签名
    Loadrunner对https协议(单双向SSL)的web端性能测试
    关于Unity中新版动画系统的使用
    关于Unity中旧版动画系统的使用
    关于Unity中Mesh网格的详解
    关于Unity中Time.deltaTime的使用
    关于Unity中的光照(七)
    关于Unity中的光照(六)
    关于Unity中的光照(五)
  • 原文地址:https://www.cnblogs.com/315358525/p/1505321.html
Copyright © 2011-2022 走看看