NGN_CANVAS.H

MÉTODOS de la clase (Funciones del lienzo)


Método

NGN_Canvas(
    int32_t position_x = 0,             // Posición X (0 por defecto)
    int32_t position_y = 0,             // Posición Y (0 por defecto)
    uint32_t _width = DEFAULT_VALUE,    // Ancho de la capa (Toda la pantalla por defecto)
    uint32_t _height = DEFAULT_VALUE,   // Alto de la capa (Toda la pantalla por defecto)
    bool _filtering = false             // Filtrado bilinear del contenido?
);

Descripción

Crea un nuevo canvas, usando los parámetros especificados.

Ejemplo

NGN_Canvas* canvas = new NGN_Canvas(100, 50, 200, 64);

Método

void Position(float position_x, float position_y);
void Position(Vector2 pos);

Descripción

Posiciona el canvas en la coordenada dada.

Ejemplo

canvas->Position(10, 20);

Método

void Translate(float speed_x, float speed_y);
void Translate(Vector2 spd);

Descripción

Mueve el canvas en la dirección y velocidades dadas.

Ejemplo

canvas->Translate(0.0f, -2.0f);

Método

void Size(float w, float h);

Descripción

Cambia el tamaño del canvas.

Ejemplo

canvas->Size(640, 480);

Método

void Scale(float w, float h);
void Scale(float scale);

Descripción

Escala el canvas según el factor dado. Según la sobrecarga usada, escalara los ejes en conjunto o por separado. La escala por defecto es 1.0f.

Ejemplo

canvas->Scale(1.5f);
canvas->Scale(2.0f, 0.75f);

Método

void Rotate(double degrees);

Descripción

Rota el canvas el número de grados proporcionados.

Ejemplo

canvas->Rotate(1.2f);

Método

void SetCenter(float x, float y);

Descripción

Específica, en coordenadas relativas y desde el centro real del canvas, donde se ubicará el centro de rotación del mismo.

Ejemplo

canvas->SetCenter(-10, -5);

Método

void SetTintColor(uint8_t r = 0xFF, uint8_t g = 0xFF, uint8_t b = 0xFF);

Descripción

Establece un color de tinte que se aplicará al canvas. Un tinte blanco (255, 255, 255), mostrará el canvas con sus colores originales, sin alteraciones.

Ejemplo

canvas->SetTintColor(96, 255, 192);

PROPIEDADES de la clase (Propiedades del lienzo)


Propiedad

Vector2 position

Descripción

Posición del canvas en pantalla.

Propiedad

float width
float height

Descripción

Tamaño del canvas.

Propiedad

bool visible

Descripción

Indica si el canvas es o no visible.

Propiedad

int32_t alpha

Descripción

Nivel de transparencia del canvas, entre 0 y 255.

Propiedad

SDL_BlendMode blend_mode

Descripción

Modo de mezcla de color del canvas. Los modos disponibles son: NGN_BLENDMODE_NONE, NGN_BLENDMODE_ALPHA, NGN_BLENDMODE_ADDITIVE y NGN_BLENDMODE_MODULATE. El valor por defecto de esta propiedad es NGN_BLENDMODE_ALPHA.

Propiedad

bool filtering

Descripción

Activa o desactiva el filtrado bilineal del contenido del canvas.

Propiedad

double rotation

Descripción

Rotación del canvas, en grados.

Propiedad

bool flip_h
bool flip_v

Descripción

Volteado vertical y horizontal del canvas.

Nota: Los cambios de tamaño o escala no afectan al tamaño original del contenedor, solo se cambia el tamaño del contenido al representarse en la pantalla.


MÉTODOS de la clase (Funciones de dibujo)


Método

void Cls(uint32_t color = 0x00000000);

Descripción

Borra el contenido del canvas y si se especifica, lo rellena con el color dado. El color ha de especificarse en formato RGBA.

Ejemplo

textbox->Cls(0x0080FFFF);	// RRGGBBAA

Método

void Point(int32_t x, int32_t y, uint32_t color);

Descripción

Dibuja un punto de 1x1 pixels del color especificado en las coordenadas del canvas dadas.

Ejemplo

canvas->Point(100, 50, 0x00FF00FF);

Método

void Line(
    int32_t x1, int32_t y1,     // Punto A
    int32_t x2, int32_t y2,     // Punto B
    uint32_t color              // Color (RGBA)
);

Descripción

Dibuja una línea entre dos puntos con el color especificado.

Ejemplo

canvas->Line(10, 10, 200, 200, 0xFF0000FF);

Método

void Box(
    int32_t x1, int32_t y1,      // Vértice superior izquierdo
    int32_t x2, int32_t y2,      // Vértice inferior derecho
    uint32_t color,              // Color (RGBA)
    bool paint = false           // Relleno?
);

Descripción

Dibuja una caja entre los vértices especificados con el color dado. Puede dibujarse con o sin relleno.

Ejemplo

canvas->Box(10, 10, 200, 200, 0xFF00FFFF, true);
canvas->Box(10, 10, 200, 200, 0xFFFFFFFF);

Método

void Circle(
    int32_t cx, int32_t cy,         // Coordenadas del centro
    int32_t r,                      // Radio horizontal
    uint32_t color,                 // Color (RGBA)
    int32_t ry = DEFAULT_VALUE,     // Radio vertical
    bool paint = false              // Relleno?
);

Descripción

Dibuja un círculo con los parámetros especificados. Si no se especifica el radio vertical, se usará el horizontal en su lugar. El parámetro paint establece si el círculo es o no con relleno.

Ejemplo

canvas->Circle(320, 240, 32, 0xFFFFFFFF);
canvas->Circle(320, 240, 32, 0x804080FF, 64, true);

Método

void Arc(
    int32_t cx, int32_t cy,         // Coordenadas del centro
    int32_t r,                      // Radio horizontal
    double start_angle,             // Ángulo inicial (Radianes)
    double end_angle,               // Ángulo final (Radianes)
    uint32_t color,                 // Color (RGBA)
    int32_t ry = DEFAULT_VALUE,     // Radio vertical
    uint8_t close = 0               // Cerrar el arco?
);

Descripción

Dibuja un arco con los parámetros especificados. Si no se especifica el radio vertical, se usará el horizontal en su lugar. Los ángulos deben de especificarse en RADIANES. El parámetro close permite cerrar el arco por sus extremos (0 = no lo cierra, 1 = cierra los dos extremos, 2 = cierra los extremos con el centro).

Ejemplo

canvas->Arc(250, 360, 200, 0.0f, (PI * 2.0f), 0xFFFFFFFF, 200);
canvas->Arc(640, 360, 100, 0.3f, 4.0f, 0xFFFFFFFF, 100, 1);
canvas->Arc(640, 580, 100, 0.8f, 5.0f, 0xFFFFFFFF, 100, 2);

Método

uint32_t GetPixelColor(int32_t x, int32_t y);

Descripción

Devuelve el color en formato RGBA8888 (RRGGBBAA) del pixel en las coordenadas proporcionadas. Si las coordenadas se encuentran fuera de los límites del canvas, se devuelve 0x00000000.

Ejemplo

uint32_t color = canvas->GetPixelColor(345, 123);

Método

Rgba GetPixelRgba(int32_t x, int32_t y);

Descripción

Devuelve el color en formato RGBA (color.r, color.g, color.b, color.a) del pixel en las coordenadas proporcionadas. Si las coordenadas se encuentran fuera de los límites del canvas, se devuelve 0 en los 4 componentes.

Ejemplo

Rgba color = canvas->GetPixelRgba(345, 123);
Volver al Índice English Version Volver Arriba