La clase Pisco
proporciona métodos estáticos para interactuar con la consola y realizar operaciones de dibujo y colisión.
Devuelve el color actual de la consola.
Mueve el cursor de la consola a la posición especificada por las coordenadas (x, y).
Establece el color de texto de la consola al color especificado.
Escribe el carácter especificado en la posición (x, y) de la consola con el color especificado.
Escribe el carácter especificado en la posición (x, y) de la consola.
Dibuja el lienzo especificado en la consola.
Borra el contenido del lienzo especificado en la consola.
Verifica si hay colisión entre dos sprites y devuelve un código indicando el tipo de colisión.
- 1 si hay colisión izquierda o derecha.
- 2 si hay colisión arriba o abajo.
- 5 si hay colisión completa.
- 0 si no hay colisión.
- Para utilizar los colores, se deben usar los valores de la enumeración
PiscoColor
. - El método
areColliding
requiere sprites para realizar la detección de colisiones.
=======
Agrega un nuevo sprite con la clave especificada al mapa de sprites.
Establece el sprite activo utilizando la clave proporcionada.
Devuelve una referencia al sprite activo.
Devuelve la clave del sprite activo.
std::map<std::string, PiscoDraw> sprites
: Mapa que almacena los sprites, donde la clave es el identificador único del sprite.std::string activeSpriteKey
: Clave del sprite activo.
=======
La clase PiscoDraw
representa un lienzo o área de dibujo bidimensional que contiene una matriz de píxeles. Permite realizar operaciones como obtener y establecer valores de píxeles, mover el lienzo y obtener información sobre sus dimensiones y posición.
Crea un nuevo objeto PiscoDraw
con las dimensiones especificadas (width
y height
) y la posición (x, y) en el sistema de coordenadas.
Crea un nuevo objeto PiscoDraw
con dimensiones y posición predeterminadas.
Devuelve el ancho del lienzo.
Devuelve la altura del lienzo.
Devuelve la coordenada x de la posición del lienzo en el sistema de coordenadas.
Devuelve la coordenada y de la posición del lienzo en el sistema de coordenadas.
Devuelve el píxel ubicado en la posición (x, y) de la matriz del lienzo.
Establece el valor del píxel en la posición (x, y) de la matriz del lienzo con el píxel proporcionado.
Mueve el lienzo según el desplazamiento especificado por offsetX
y offsetY
.
int width
: Ancho del lienzo.int height
: Altura del lienzo.int x
: Coordenada x de la posición del lienzo en el sistema de coordenadas.int y
: Coordenada y de la posición del lienzo en el sistema de coordenadas.std::vector<std::vector<Pixel>> matrix
: Matriz bidimensional que representa los píxeles del lienzo.
=======
La clase Pixel
representa un píxel en un sistema de coordenadas bidimensional. Cada píxel tiene una posición (x, y), un carácter para representar su contenido visual y un color.
Crea un nuevo objeto Pixel
con las coordenadas especificadas (x, y), el carácter dado y el color proporcionado.
Crea un nuevo objeto Pixel
con el carácter dado y el color proporcionado. Las coordenadas por defecto se establecen en (0, 0).
Devuelve la coordenada x del píxel.
Devuelve la coordenada y del píxel.
Devuelve el carácter asociado al píxel.
Devuelve el color asociado al píxel.
int x
: Coordenada x del píxel.int y
: Coordenada y del píxel.std::string character
: Carácter asociado al píxel.PiscoColor color
: Color asociado al píxel.
=======
La enumeración PiscoColor
define los colores disponibles para utilizar en la representación de píxeles u otros elementos visuales en el proyecto.
BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
: Equivalente al amarillo en la biblioteca Conio.LIGHTGRAY
: Equivalente al blanco en la biblioteca Conio.DARKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WHITE
La enumeración proporciona una amplia gama de colores que pueden ser utilizados para personalizar la apariencia de los elementos gráficos en el proyecto.
=======
A continuación se muestra un ejemplo de cómo usar cada método de la clase Pisco
.
#include <iostream>
#include "Pisco.h" // Incluimos el archivo de encabezado que contiene la clase Pisco
int main() {
// Ejemplo de uso del método getCurrentConsoleColor
WORD currentColor = Pisco::getCurrentConsoleColor();
std::cout << "Color actual de la consola: " << currentColor << std::endl;
// Ejemplo de uso del método gotoxy
Pisco::gotoxy(10, 5);
std::cout << "Esto se imprimirá en la posición (10, 5)" << std::endl;
// Ejemplo de uso del método textColor
Pisco::textColor(PiscoColor::RED);
std::cout << "Este texto será de color rojo" << std::endl;
// Ejemplo de uso del método putchxy con color
Pisco::putchxy(15, 8, "@", PiscoColor::GREEN);
std::cout << "Imprimiendo un carácter @ en la posición (15, 8) con color verde" << std::endl;
// Ejemplo de uso del método putchxy sin color
Pisco::putchxy(20, 10, "#");
std::cout << "Imprimiendo un carácter # en la posición (20, 10) sin especificar color" << std::endl;
// Ejemplo de uso del método draw con un PiscoDraw
PiscoDraw canvas(20, 10, 0, 0); // Creamos un lienzo de 20x10 en la posición (0, 0)
Pisco::draw(canvas);
std::cout << "Dibujando un lienzo de 20x10 en la posición (0, 0)" << std::endl;
// Ejemplo de uso del método erase con un PiscoDraw
Pisco::erase(canvas);
std::cout << "Borrando el lienzo previamente dibujado" << std::endl;
// Ejemplo de uso del método areColliding con dos PiscoSprite
PiscoSprite spriteFrom;
PiscoSprite spriteTo;
int collisionType = Pisco::areColliding(spriteFrom, spriteTo);
std::cout << "Tipo de colisión entre spriteFrom y spriteTo: " << collisionType << std::endl;
return 0;
}
by alefortvi