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); }
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); }
/// <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; } }
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; }
/*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; }
/// <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); }