private void PlayerMoveCamera() { Camera.EstadoColisaoCamera estado = Camera.ColisaoComJanela(player); Vector2 delta = Vector2.Zero; Vector2 cameraAngInf_Esq = Camera.posicaoCantoInferiorEsq; Vector2 cameraAngSup_Dir = Camera.posicaoCantoSuperiorDir; const float velocidadeCamera = 0.5f; float distPlayer_Bound = player.Largura * 15f; switch (estado) { case Camera.EstadoColisaoCamera.ColisaoInferior: delta.Y = (player.Posicao.Y - distPlayer_Bound - cameraAngInf_Esq.Y) * velocidadeCamera; break; case Camera.EstadoColisaoCamera.ColisaoSuperior: delta.Y = (player.Posicao.Y + distPlayer_Bound - cameraAngSup_Dir.Y) * velocidadeCamera; break; case Camera.EstadoColisaoCamera.ColisaoEsq: delta.X = (player.Posicao.X - distPlayer_Bound - cameraAngInf_Esq.X) * velocidadeCamera; break; case Camera.EstadoColisaoCamera.ColisaoDir: delta.X = (player.Posicao.X + distPlayer_Bound - cameraAngSup_Dir.X) * velocidadeCamera; break; } Camera.MoverCamera(delta); }
public void boundToCamera() { Vector2 minCamera = Camera.posicaoCantoInferiorEsq; Vector2 maxCamera = Camera.posicaoCantoSuperiorDir; Camera.EstadoColisaoCamera estado = Camera.ColisaoComJanela(this); switch (estado) { case Camera.EstadoColisaoCamera.ColisaoInferior: posicaoI.Y = minCamera.Y + (tamanhoI.Y / 2f); break; case Camera.EstadoColisaoCamera.ColisaoSuperior: posicaoI.Y = minCamera.Y - (tamanhoI.Y / 2f); break; case Camera.EstadoColisaoCamera.ColisaoEsq: posicaoI.X = minCamera.X + (tamanhoI.X / 2f); break; case Camera.EstadoColisaoCamera.ColisaoDir: posicaoI.X = minCamera.X - (tamanhoI.X / 2f); break; } }
//Verifica se o sprite da bala tocou nos limites da janela public bool BalaEstaNoEcra() { Camera.EstadoColisaoCamera estado = Camera.ColisaoComJanela(this); return(Camera.EstadoColisaoCamera.DentroJanela == estado); }
public bool ObjectivoVisivelDentroCamera() { Camera.EstadoColisaoCamera estado = Camera.ColisaoComJanela(this); return(estado == Camera.EstadoColisaoCamera.DentroJanela); }