示例#1
0
        public TestSpriteClassSate(TextureManager textureManager)
        {
            _textureManager     = textureManager;              //接手纹理管理器
            _testSprite.Texture = _textureManager.Get("Font"); //设定精灵的纹理
            _testSprite.SetHeight(256 * 0.5f);                 //不知什么原因,不能从纹理处获取图片的高度
                                                               //而宽度在帮顶纹理时就能够获得
            _testSprite2.Texture = _textureManager.Get("charactor1");
            //  _testSprite2.SetPosition(0, 100);
            _testSprite2.SetColor(new Color(1, 1, 1, 0.9f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果
            _testSprite2.SetHeight(128);

            _testSprite3.Texture = _textureManager.Get("Font");
            int g = _testSprite3.Texture.ID;

            _testSprite3.SetColor(new Color(1, 1, 1, 0.7f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果
            _testSprite3.SetHeight(128);

            _testSprite4.Texture = _textureManager.Get("mbit1");
            _testSprite4.SetColor(new Color(1, 1, 1, 0.5f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果
            _testSprite4.SetHeight(128);

            _testSprite5.Texture = _textureManager.Get("mbit1");
            _testSprite5.SetColor(new Color(1, 1, 1, 0.3f));// Alpha值会影响图片整个的透明度,非常实用,可以实现图像渐变的效果
            _testSprite5.SetHeight(128);
        }
示例#2
0
        public ReiMu(TextureManager texturemanager)
        {
            this.texturemanager = texturemanager;
            name = "ReiMu";
            Texture texture = texturemanager.Get("Player2");

            sprite         = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(32);
            sprite.SetHeight(48);
            sprite.SetColor(new Color(1, 1, 1, 0.2f));

            multiSprite = new MultiSprite(sprite);

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            }
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
            {
                rects[i] = new RecTangleF(i * 4 * per_256, 6 * per_256,
                                          4 * per_256 + i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(12 * per_256 + i * 4 * per_256, 6 * per_256,
                                          12 * per_256 + 4 * per_256 + i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
            {
                rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256,
                                          i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256,
                                          12 * per_256 + i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 0;                   //将状态切换为3号state

            InitComponents();
        }
示例#3
0
        public Wriggle(TextureManager texturemanager)
        {
            name = "Wriggle";
            Texture texture = texturemanager.Get("Wriggle");

            sprite         = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(32);
            sprite.SetHeight(42);
            sprite.SetColor(new Color(1, 1, 1, 0.2f));

            multiSprite = new MultiSprite(sprite);

            float offset = 0.01f;

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            }
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            }
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            }
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            }
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            }
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 0;                   //将状态切换为3号state

            InitComponents();
        }
示例#4
0
 // 坐标,文字,宽度, 透明值,间距,行数,每行长度
 //从右到左(例如“    1”,“   11”,“  111”,“ 1111”,“11111” )
 public void DrawText2D2(Point position, string text, int width = 14, float Alpha = 1,
     int dw = 9, int rows = 1, int length = 20)
 {
     int len = text.Length;
     Sprite spr;
     for (int i = 0; i < len; i++)
     {
         spr = _textFont.GetAci(text.Substring(i, 1));
         spr.SetWidth(width); spr.SetHeight(width);
         spr.SetPosition(new Vector(position.X - width / 2 - (len-1-i)* dw, position.Y - width / 2, 0));
         spr.SetColor(new Color(1, 1, 1, Alpha));
         _renderer.DrawSprite(spr);
     }
 }
示例#5
0
 public override void Render()
 {
     if (!disposing)
     {
         bulletbody.sprite.SetPosition(Position.X, Position.Y);
         Stage1State._renderer.DrawSprite(bulletbody.sprite, (float)Position.X, (float)Position.Y, 90);
     }
     else
     {
         RedEsc.SetPosition(Position.X, Position.Y);
         RedEsc.SetColor(new Color(1, 1, 1, _alpha * 0.5f));
         Stage1State._renderer.DrawSprite(RedEsc, (float)Position.X, (float)Position.Y, angle + 90);
     }
 }
示例#6
0
        //从右到左(例如“    1”,“   11”,“  111”,“ 1111”,“11111” )
        public void DrawText2D2(Point position, string text, int width = 14, float Alpha = 1,
                                int dw = 9, int rows = 1, int length = 20)
        // 坐标,文字,宽度, 透明值,间距,行数,每行长度
        {
            int    len = text.Length;
            Sprite spr;

            for (int i = 0; i < len; i++)
            {
                spr = _textFont.GetAci(text.Substring(i, 1));
                spr.SetWidth(width); spr.SetHeight(width);
                spr.SetPosition(new Vector(position.X - width / 2 - (len - 1 - i) * dw, position.Y - width / 2, 0));
                spr.SetColor(new Color(1, 1, 1, Alpha));
                _renderer.DrawSprite(spr);
            }
        }
示例#7
0
        /// <summary>
        /// 提供一个分数参数,将其画下来
        /// </summary>
        /// <param name="isc">Score参数</param>
        /// <param name="distance">数字间的距离</param>
        public void DrawNumber(Renderer _renderer, IScore isc, float distance)
        {
            float    alpha = isc.alpha;
            Vector2D vct   = new Vector2D(isc.Position.X, isc.Position.Y);
            string   num   = isc.Score.ToString();

            char[] arr    = num.ToArray <char>();
            int    length = arr.Length;
            int    len2   = length / 2;

            for (int i = 0; i < length; i++)
            {
                Sprite sp = score_number.GetNumber(arr[i].ToString());
                sp.SetPosition(vct.X + (i - len2) * distance, vct.Y);              //数字居中显示
                sp.SetColor(new Color(1, 1, 1, alpha * 0.5f));
                _renderer.DrawSprite(sp);
            }
        }
示例#8
0
 public override void Render()
 {
     if (working)
     {
         float ag = Direction.getcurve();
         bulletbody.sprite.SetPosition(Position.X, Position.Y);
         bulletbody.sprite.SetColor(new Color(1, 1, 1, 0.3f));
         Stage1State._renderer.DrawSprite(bulletbody.sprite, (float)Position.X, (float)Position.Y, ag + 90);
     }
     else if (disposing)
     {
         BlueEsc.SetWidth(32 * (1 * (1 - _alpha) + 1));
         BlueEsc.SetHeight(32 * (1 * (1 - _alpha) + 1));
         BlueEsc.SetColor(new Color(1, 1, 1, _alpha * 0.6f));
         BlueEsc.SetPosition(Position.X, Position.Y);
         Stage1State._renderer.DrawSprite(BlueEsc, (float)Position.X, (float)Position.Y, angle + 90);
     }
 }
示例#9
0
        public Wriggle(TextureManager texturemanager)
        {
            name = "Wriggle";
            Texture texture = texturemanager.Get("Wriggle");
            sprite = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(32);
            sprite.SetHeight(42);
            sprite.SetColor(new Color(1, 1, 1, 0.2f));

            multiSprite = new MultiSprite(sprite);

            float offset = 0.01f;

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(i * 8 * per_256, per_256, (i + 1) * 8 * per_256 - offset, 13 * per_256);
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 0;                   //将状态切换为3号state

            InitComponents();
        }
示例#10
0
        public ReiMu(TextureManager texturemanager)
        {
            this.texturemanager = texturemanager;
            name = "ReiMu";
            Texture texture = texturemanager.Get("Player2");
            sprite = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(32);
            sprite.SetHeight(48);
            sprite.SetColor(new Color(1, 1, 1, 0.2f));

            multiSprite = new MultiSprite(sprite);

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
                rects[i] = new RecTangleF(i * 4 * per_256, 6 * per_256,
                    4 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(12 * per_256 + i * 4 * per_256, 6 * per_256,
                   12 * per_256 + 4 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
                rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256,
                   i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256,
                12 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 0;                   //将状态切换为3号state

            InitComponents();
        }