示例#1
0
 public TileBackground(Texture2D _sprite, Vector2 _pos, Vector2 _vel, int _hp, LevelManager l)
     : base(_sprite, _pos, _vel, _hp, l)
 {
     rect = l.getCurrentLevelArea();
     rect.Inflate(10000, 10000);
     pos.X -= 5000;
     pos.Y -= 5000;
     center.X += 5000;
     center.Y += 5000;
     rotation = (float)Game1.random.NextDouble() * (float)Math.PI * 2.0f;
 }
示例#2
0
 public TileBackground(Texture2D _sprite, Vector2 _pos, Vector2 _vel, int _hp, LevelManager l) :
     base(_sprite, _pos, _vel, _hp, l)
 {
     rect = l.getCurrentLevelArea();
     rect.Inflate(10000, 10000);
     pos.X    -= 5000;
     pos.Y    -= 5000;
     center.X += 5000;
     center.Y += 5000;
     rotation  = (float)Game1.random.NextDouble() * (float)Math.PI * 2.0f;
 }
示例#3
0
        public virtual void update(GameTime gameTime)
        {
            pos += vel;

            vel *= friction;

            updateBBoxPos();

            if (rotation < 0)
            {
                rotation += (float)Math.PI * 2.0f;
            }
            if (rotation > (float)Math.PI * 2.0f)
            {
                rotation -= (float)Math.PI * 2.0f;
            }

            if (alive && firing)
            {
                if (fireCounter == 0)
                {
                    fireBullet();
                }
                fireCounter = (fireCounter + 1) % fireCounterMax;
            }

            if (bounded)
            {
                if (pos.X < levelManager.getCurrentLevelArea().Left)
                {
                    pos.X = levelManager.getCurrentLevelArea().Left;
                }
                else if (pos.X > levelManager.getCurrentLevelArea().Right)
                {
                    pos.X = levelManager.getCurrentLevelArea().Right;
                }
                if (pos.Y > levelManager.getCurrentLevelArea().Bottom)
                {
                    pos.Y = levelManager.getCurrentLevelArea().Bottom;
                }
                else if (pos.Y < levelManager.getCurrentLevelArea().Top)
                {
                    pos.Y = levelManager.getCurrentLevelArea().Top;
                }
            }
        }
示例#4
0
文件: Camera.cs 项目: Adhesion/ld22
        public void update(GameTime gameTime)
        {
            move(player.getPos() - pos);

            camArea = levelManager.getCurrentLevelArea();
            camArea.Inflate(-200, -200);

            if (pos.X < camArea.Left)
            {
                pos.X = camArea.Left;
            }
            else if (pos.X > camArea.Right)
            {
                pos.X = camArea.Right;
            }
            if (pos.Y > camArea.Bottom)
            {
                pos.Y = camArea.Bottom;
            }
            else if (pos.Y < camArea.Top)
            {
                pos.Y = camArea.Top;
            }

            /*if (pos.X - screenPos.X < levelManager.getCurrentLevelArea().Left)
             *  pos.X = levelManager.getCurrentLevelArea().Left + screenPos.X;
             * else if (pos.X + screenPos.X > levelManager.getCurrentLevelArea().Right)
             *  pos.X = levelManager.getCurrentLevelArea().Right - screenPos.X;
             * if (pos.Y + screenPos.Y > levelManager.getCurrentLevelArea().Bottom)
             *  pos.Y = levelManager.getCurrentLevelArea().Bottom - screenPos.Y;
             * else if (pos.Y - screenPos.Y < levelManager.getCurrentLevelArea().Top)
             *  pos.Y = levelManager.getCurrentLevelArea().Top + screenPos.Y;*/

            updateTransform();
            //Console.WriteLine(transform);
        }