Пример #1
0
        private void HeroMovingCameraWindow()
        {
            Camera.CameraWindowCollisionStatus status = Camera.CollidedWithCameraWindow(mHero);
            Vector2     delta      = Vector2.Zero;
            Vector2     cameraLL   = Camera.CameraWindowLowerLeftPosition;
            Vector2     cameraUR   = Camera.CameraWindowUpperRightPosition;
            const float kChaseRate = 0.05f;
            float       kBuffer    = mHero.Width * 2f;

            switch (status)
            {
            case Camera.CameraWindowCollisionStatus.CollideBottom:
                delta.Y = (mHero.Position.Y - kBuffer - cameraLL.Y) * kChaseRate;
                break;

            case Camera.CameraWindowCollisionStatus.CollideTop:
                delta.Y = (mHero.Position.Y + kBuffer - cameraUR.Y) * kChaseRate;
                break;

            case Camera.CameraWindowCollisionStatus.CollideLeft:
                delta.X = (mHero.Position.X - kBuffer - cameraLL.X) * kChaseRate;
                break;

            case Camera.CameraWindowCollisionStatus.CollideRight:
                delta.X = (mHero.Position.X + kBuffer - cameraUR.X) * kChaseRate;
                break;
            }
            Camera.MoveCameraBy(delta);
        }
Пример #2
0
        public void Update()
        {
            /*Camera.CameraWindowCollisionStatus status =
             * Camera.CollidedWithCameraWindow(this);
             * switch (status)
             * {
             *  case Camera.CameraWindowCollisionStatus.CollideBottom:
             *  case Camera.CameraWindowCollisionStatus.CollideTop:
             *      mDeltaPosition.Y *= -1;
             *      break;
             *  case Camera.CameraWindowCollisionStatus.CollideLeft:
             *  case Camera.CameraWindowCollisionStatus.CollideRight:
             *      mDeltaPosition.X *= -1;
             *      break;
             * }
             * mPosition += mDeltaPosition;*/
            Camera.CameraWindowCollisionStatus status =
                Camera.CollidedWithCameraWindow(this);
            switch (status)
            {
            case Camera.CameraWindowCollisionStatus.CollideLeft:
                mPosition.X *= -1;
                mPosition.X += 61;
                break;

            case Camera.CameraWindowCollisionStatus.CollideRight:
                mPosition.X -= 119;
                break;
            }
            this.Update2(InputWrapper.ThumbSticks.Left);
        }
Пример #3
0
        /// <summary>
        /// Bounds current object to the camera window
        /// </summary>
        public void BoundObjectToCameraWindow()
        {
            Vector2 cameraMin = Camera.CameraWindowLowerLeftPosition;
            Vector2 cameraMax = Camera.CameraWindowUpperRightPosition;

            Camera.CameraWindowCollisionStatus status = Camera.CollidedWithCameraWindow(this);
            switch (status)
            {
            case Camera.CameraWindowCollisionStatus.CollideBottom:
                mPosition.Y = cameraMin.Y + (mSize.Y / 2f);
                break;

            case Camera.CameraWindowCollisionStatus.CollideTop:
                mPosition.Y = cameraMax.Y - (mSize.Y / 2f);
                break;

            case Camera.CameraWindowCollisionStatus.CollideLeft:
                mPosition.X = cameraMin.X + (mSize.X / 2f);
                break;

            case Camera.CameraWindowCollisionStatus.CollideRight:
                mPosition.X = cameraMax.X - (mSize.X / 2f);
                break;
            }
        }
Пример #4
0
        public void Update()
        {
            colisao = false;
            Camera.CameraWindowCollisionStatus status =
                Camera.CollidedWithCameraWindow(this);
            switch (status)
            {
            case Camera.CameraWindowCollisionStatus.CollideBottom:
                mPosition.X       = 30;
                mPosition.Y       = 30;
                mDeltaPosition.X  = 1;
                mDeltaPosition.Y *= -1;
                Game1.vida--;
                //Game1.lifeLost.Play();
                break;

            case Camera.CameraWindowCollisionStatus.CollideTop:
                mDeltaPosition.Y *= -1;
                break;

            case Camera.CameraWindowCollisionStatus.CollideLeft:
            case Camera.CameraWindowCollisionStatus.CollideRight:
                mDeltaPosition.X *= -1;
                break;
            }
            mPosition += mDeltaPosition;
        }
Пример #5
0
        /*Define a localização da bola após colidir*/
        public void Update()
        {
            Camera.CameraWindowCollisionStatus status = Camera.CollidedWithCameraWindow(this);
            switch (status)
            {
            case Camera.CameraWindowCollisionStatus.CollideBottom:
            case Camera.CameraWindowCollisionStatus.CollideTop:
                mDeltaPosition.Y *= -1;
                break;

            case Camera.CameraWindowCollisionStatus.CollideLeft:
            case Camera.CameraWindowCollisionStatus.CollideRight:
                mDeltaPosition.X *= -1;
                break;
            }
            Position += mDeltaPosition;
        }
Пример #6
0
 /// <summary>
 /// Returns if object is visible in the camera window
 /// </summary>
 /// <returns></returns>
 public bool ObjectVisibleInCameraWindow()
 {
     Camera.CameraWindowCollisionStatus status = Camera.CollidedWithCameraWindow(this);
     return(status == Camera.CameraWindowCollisionStatus.InsideWindow);
 }
 public bool IsOnScreen()
 {
     // take advantage of the camera window bound check
     Camera.CameraWindowCollisionStatus status = Camera.CollidedWithCameraWindow(this);
     return(Camera.CameraWindowCollisionStatus.InsideWindow == status);
 }