public override void UpdateCollision(CAnimationObject _Object)
        {
            if (CheckCollision(_Object) != DirectCollision.NONE && m_Status != IDStatus.UNACTIVATE)
            {
                switch (_Object.IDObject)
                {
                case IDObject.MISC_IRON_BRICK:
                case IDObject.MISC_BASE_BRICK:
                case IDObject.MISC_HARD_BRICK:
                    if (CheckCollision(_Object) == DirectCollision.TOP)
                    {
                        m_Velocity.Y = 0.0f;
                        m_Position.Y = _Object.Position.Y - Sprite.FrameHeight;
                    }
                    else if (CheckCollision(_Object) == DirectCollision.RIGHT)
                    {
                        m_Dir = IDDir.RIGHT;
                    }
                    else if (CheckCollision(_Object) == DirectCollision.LEFT)
                    {
                        m_Dir = IDDir.LEFT;
                    }
                    else if (CheckCollision(_Object) == DirectCollision.BOTTOM)
                    {
                        m_Velocity.Y = -m_Velocity.Y;
                    }
                    break;

                default:
                    break;
                }
            }
            base.UpdateCollision(_Object);
        }
 public override void UpdateCollision(CAnimationObject _Object)
 {
     if (CheckCollision(_Object) != DirectCollision.NONE && m_Status != IDStatus.UNACTIVATE)
     {
         switch (_Object.IDObject)
         {
             case IDObject.MISC_IRON_BRICK:
             case IDObject.MISC_BASE_BRICK:
             case IDObject.MISC_HARD_BRICK:
                 if (CheckCollision(_Object) == DirectCollision.TOP)
                 {
                     m_Velocity.Y = 0.0f;
                     m_Position.Y = _Object.Position.Y - Sprite.FrameHeight;
                 }
                 else if (CheckCollision(_Object) == DirectCollision.RIGHT)
                 {
                     m_Dir = IDDir.RIGHT;
                 }
                 else if (CheckCollision(_Object) == DirectCollision.LEFT)
                 {
                     m_Dir = IDDir.LEFT;
                 }
                 else if (CheckCollision(_Object) == DirectCollision.BOTTOM)
                 {
                     m_Velocity.Y = -m_Velocity.Y;
                 }
                 break;
             default:
                 break;
         }
     }
     base.UpdateCollision(_Object);
 }
 public BossBullet(Vector2 _Position, IDDir _Direction)
     : base(_Position)
 {
     Sprite = new CSprite(CResourceManager.GetInstance().GetResource(IDResource.ENEMY_BOSS_BULLET));
     Sprite.Depth = GlobalValue.ENEMY_SPRITE_DEPTH;
     Direction = _Direction;
     IDObject = IDObject.ENEMY_BOSS_BULLET;
 }
示例#4
0
 public BossBullet(Vector2 _Position, IDDir _Direction)
     : base(_Position)
 {
     Sprite       = new CSprite(CResourceManager.GetInstance().GetResource(IDResource.ENEMY_BOSS_BULLET));
     Sprite.Depth = GlobalValue.ENEMY_SPRITE_DEPTH;
     Direction    = _Direction;
     IDObject     = IDObject.ENEMY_BOSS_BULLET;
 }
示例#5
0
 public Bullet(Vector2 _Position, IDDir _Dir)
     : base(_Position)
 {
     m_IDObject   = IDObject.BULLET;
     m_Sprite     = new CSprite(CResourceManager.GetInstance().GetResource(IDResource.BULLET));
     Direction    = _Dir;
     Sprite.Depth = GlobalValue.MARIO_SPRITE_DEPTH;
 }
示例#6
0
 public Bullet(Vector2 _Position, IDDir _Dir)
     : base(_Position)
 {
     m_IDObject = IDObject.BULLET;
     m_Sprite = new CSprite(CResourceManager.GetInstance().GetResource(IDResource.BULLET));
     Direction = _Dir;
     Sprite.Depth = GlobalValue.MARIO_SPRITE_DEPTH;
 }
示例#7
0
 public Goomba(Vector2 _Position,IDDir _Dir)
     : base(_Position)
 {
     m_IDObject = IDObject.ENEMY_GOOMBA_OW;
     m_Sprite = new CSprite(CResourceManager.GetInstance().GetResource(IDResource.ENEMY_GOOMBA_OW));
     Direction = _Dir;
     m_Status = IDStatus.ALIVE;
     Sprite.Depth = GlobalValue.ENEMY_SPRITE_DEPTH;
 }
示例#8
0
 public Goomba(Vector2 _Position, IDDir _Dir)
     : base(_Position)
 {
     m_IDObject   = IDObject.ENEMY_GOOMBA_OW;
     m_Sprite     = new CSprite(CResourceManager.GetInstance().GetResource(IDResource.ENEMY_GOOMBA_OW));
     Direction    = _Dir;
     m_Status     = IDStatus.ALIVE;
     Sprite.Depth = GlobalValue.ENEMY_SPRITE_DEPTH;
 }
        public override void UpdateMovement(GameTime _GameTime, CInput _Input)
        {
            if (m_Status == IDStatus.ACTIVATE)
            {
                m_Velocity = new Vector2(0, -0.05f);
            }

            if (oldPosition.Y - m_Position.Y > Sprite.FrameHeight && m_Status == IDStatus.ACTIVATE)
            {
                m_Status = IDStatus.RUN;
                //m_Velocity = Vector2.Zero;
                m_Dir = IDDir.RIGHT;
            }

            if (m_Status == IDStatus.RUN)
            {
                m_Accel.Y = 0.0098f;
                if (m_Dir == IDDir.LEFT)
                {
                    //m_Status = IDStatus.RUN;
                    m_Velocity = new Vector2(-0.2f, m_Velocity.Y);
                }

                if (m_Dir == IDDir.RIGHT)
                {
                    //m_Status = IDStatus.RUN;
                    m_Velocity = new Vector2(0.2f, m_Velocity.Y);
                }
            }

            if (m_Velocity.Y > 1.0f)
            {
                m_Velocity.Y = 1.0f;
            }

            if (m_Velocity.X > 0.2f)
            {
                m_Velocity.X = 0.2f;
            }

            if (m_Velocity.X < -0.2)
            {
                m_Velocity.X = -0.2f;
            }

            base.Update(_GameTime, _Input);
        }
示例#10
0
        public override void UpdateMovement(GameTime _GameTime, CInput _Input)
        {
            if (m_IDObject == IDObject.ITEM_SUPER_MUSHROOM)
            {
                if (m_Status == IDStatus.ACTIVATE)
                {
                    m_Velocity = new Vector2(0, -0.01f);
                }

                if (oldPosition.Y - m_Position.Y > Sprite.FrameHeight && m_Status == IDStatus.ACTIVATE)
                {
                    m_Status = IDStatus.RUN;
                    //m_Velocity = Vector2.Zero;
                    m_Dir = IDDir.RIGHT;
                }

                if (m_Status == IDStatus.RUN)
                {
                    m_Accel.Y = 0.00098f;
                    if (m_Dir == IDDir.LEFT)
                    {
                        //m_Status = IDStatus.RUN;
                        m_Velocity = new Vector2(-0.1f, m_Velocity.Y);
                    }

                    if (m_Dir == IDDir.RIGHT)
                    {
                        //m_Status = IDStatus.RUN;
                        m_Velocity = new Vector2(0.1f, m_Velocity.Y);
                    }
                }

                if (m_Velocity.Y > 1.0f)
                {
                    m_Velocity.Y = 1.0f;
                }

                if (m_Velocity.X > 0.1f)
                {
                    m_Velocity.X = 0.1f;
                }

                if (m_Velocity.X < -0.1)
                {
                    m_Velocity.X = -0.1f;
                }
            }

            if (IDObject == IDObject.ITEM_FIRE_FLOWER)
            {
                if (m_Status == IDStatus.ACTIVATE)
                {
                    m_Velocity = new Vector2(0, -0.01f);
                }

                if (oldPosition.Y - m_Position.Y > Sprite.FrameHeight - 1 && m_Status == IDStatus.ACTIVATE && Status != IDStatus.UNACTIVATE)//dung animation chay len
                {
                    m_Status   = IDStatus.ALIVE;
                    m_Velocity = Vector2.Zero;
                }
            }

            base.Update(_GameTime, _Input);
        }
示例#11
0
        public override void UpdateMovement(GameTime _GameTime, CInput _Input)
        {
            if (m_IDObject == IDObject.ITEM_SUPER_MUSHROOM)
            {
                if (m_Status == IDStatus.ACTIVATE)
                {
                    m_Velocity = new Vector2(0, -0.01f);
                }

                if (oldPosition.Y - m_Position.Y > Sprite.FrameHeight && m_Status == IDStatus.ACTIVATE)
                {
                    m_Status = IDStatus.RUN;
                    //m_Velocity = Vector2.Zero;
                    m_Dir = IDDir.RIGHT;
                }

                if (m_Status == IDStatus.RUN)
                {
                    m_Accel.Y = 0.00098f;
                    if (m_Dir == IDDir.LEFT)
                    {
                        //m_Status = IDStatus.RUN;
                        m_Velocity = new Vector2(-0.1f, m_Velocity.Y);
                    }

                    if (m_Dir == IDDir.RIGHT)
                    {
                        //m_Status = IDStatus.RUN;
                        m_Velocity = new Vector2(0.1f, m_Velocity.Y);
                    }
                }

                if (m_Velocity.Y > 1.0f)
                    m_Velocity.Y = 1.0f;

                if (m_Velocity.X > 0.1f)
                    m_Velocity.X = 0.1f;

                if (m_Velocity.X < -0.1)
                    m_Velocity.X = -0.1f;
            }

            if (IDObject == IDObject.ITEM_FIRE_FLOWER)
            {
                if (m_Status == IDStatus.ACTIVATE)
                {
                    m_Velocity = new Vector2(0, -0.01f);
                }

                if (oldPosition.Y - m_Position.Y > Sprite.FrameHeight - 1 && m_Status == IDStatus.ACTIVATE && Status != IDStatus.UNACTIVATE)//dung animation chay len
                {
                    m_Status = IDStatus.ALIVE;
                    m_Velocity = Vector2.Zero;
                }
            }

            base.Update(_GameTime, _Input);
        }
        public override void UpdateMovement(GameTime _GameTime, CInput _Input)
        {
            if (m_Status == IDStatus.ACTIVATE)
            {
                m_Velocity = new Vector2(0, -0.05f);
            }

            if (oldPosition.Y - m_Position.Y > Sprite.FrameHeight && m_Status == IDStatus.ACTIVATE)
            {
                m_Status = IDStatus.RUN;
                //m_Velocity = Vector2.Zero;
                m_Dir = IDDir.RIGHT;
            }

            if (m_Status == IDStatus.RUN)
            {
                m_Accel.Y = 0.0098f;
                if (m_Dir == IDDir.LEFT)
                {
                    //m_Status = IDStatus.RUN;
                    m_Velocity = new Vector2(-0.2f, m_Velocity.Y);
                }

                if (m_Dir == IDDir.RIGHT)
                {
                    //m_Status = IDStatus.RUN;
                    m_Velocity = new Vector2(0.2f, m_Velocity.Y);
                }
            }

            if (m_Velocity.Y > 1.0f)
                m_Velocity.Y = 1.0f;

            if (m_Velocity.X > 0.2f)
                m_Velocity.X = 0.2f;

            if (m_Velocity.X < -0.2)
                m_Velocity.X = -0.2f;

            base.Update(_GameTime, _Input);
        }