public void Simulate() { if (info.Mode != CameraInfo.CameraMode.ThirdPerson) { return; } cam.Target = Vector3.TransformCoordinate(new Vector3(), info.ThirdPersonCameraTarget.WorldMatrix); cam.Update(TW.Graphics); info.ActiveCamera = cam; }
protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } bool colisão1 = false; bool colisão2 = false; float raiotank1 = 2f, raiotank2 = 2f; SurfaceFollowCamera.Update(GraphicsDevice, gameTime, field, tank, CameraType.SurfaceFollow); ThirdPersonCamera.Update(GraphicsDevice, gameTime, field, tank, CameraType.ThirdPerson); tank.Update(field, ChooseTank.tank, bullet, gameTime); enemyTank.EnemyUpdate(tank.position, tank.direction, field, gameTime); if (bullet.isShooting == true) { bullet.Update(gameTime); } colisão1 = tank.Colisão(tank.position, enemyTank.position, raiotank1, raiotank2); colisão2 = tank.Colisão(enemyTank.position, tank.position, raiotank1, raiotank2); if (colisão1 == false) { positionBack1 = tank.position; } else if (colisão1 == true) { tank.position = positionBack1; } if (colisão2 == false) { positionBack2 = enemyTank.position; } else if (colisão2 == true) { enemyTank.position = positionBack2; } if (Window != null) { Mouse.SetPosition(Window.ClientBounds.Width / 2, Window.ClientBounds.Height / 2); } base.Update(gameTime); }