예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
 //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);
 }
예제 #4
0
 public bool ObjectivoVisivelDentroCamera()
 {
     Camera.EstadoColisaoCamera estado = Camera.ColisaoComJanela(this);
     return(estado == Camera.EstadoColisaoCamera.DentroJanela);
 }