Пример #1
0
        /// <summary>
        /// Obtém o objeto 2d através da camera. Utilize X = 0 a Width, Y = 0 a Height
        /// </summary>
        /// <param name="ponto"></param>
        /// <returns></returns>
        public static Objeto2D ObterObjeto2DPelaCamera(this Engine2D engine, Camera2D camera, Vetor2D ponto)
        {
            for (int i = 0; i < engine.objetos.Count; i++)
            {
                Objeto2D obj = engine.objetos[i];

                float xMax = -(camera.Pos.x - camera.ResWidth / 2) + obj.Pos.x + obj.XMax;
                float xMin = -(camera.Pos.x - camera.ResWidth / 2) + obj.Pos.x + obj.XMin;
                float yMax = -(camera.Pos.y - camera.ResHeigth / 2) + obj.Pos.y + obj.YMax;
                float yMin = -(camera.Pos.y - camera.ResHeigth / 2) + obj.Pos.y + obj.YMin;

                if (ponto.x >= xMin && ponto.x <= xMax)
                {
                    if (ponto.y >= yMin && ponto.y <= yMax)
                    {
                        return(engine.objetos[i]);
                    }
                }
            }
            return(null);
        }
Пример #2
0
        /// <summary>
        /// Obtém o objeto 2d através do espaço. Utilize coordenadas existentes em todo o mapa 2D.
        /// </summary>
        /// <param name="ponto"></param>
        /// <returns></returns>
        public static Objeto2D ObterObjeto2DPeloEspaco(this Engine2D engine, Vetor2D ponto)
        {
            for (int i = 0; i < engine.objetos.Count; i++)
            {
                Objeto2D obj = engine.objetos[i];

                float xMax = obj.Pos.x + obj.XMax;
                float xMin = obj.Pos.x + obj.XMin;
                float yMax = obj.Pos.y + obj.YMax;
                float yMin = obj.Pos.y + obj.YMin;

                if (ponto.x >= xMin && ponto.x <= xMax)
                {
                    if (ponto.y >= yMin && ponto.y <= yMax)
                    {
                        return(engine.objetos[i]);
                    }
                }
            }
            return(null);
        }