NGN_CAMERA.H

Métodos de la clase


Método

void CreateLayers(uint32_t layers);

Descripción

Define el número de capas de las que dispondrá la cámara.

Ejemplo

ngn->camera->CreateLayers(4);

Método

void SetSizeOfSpritesLayer(uint32_t layer_number, uint32_t width, uint32_t height);

Descripción

Define el tamaño la capa de sprites (por defecto, todas las capas tienen el tamaño del fondo de esa capa).

Ejemplo

ngn->camera->SetSizeOfSpritesLayer(3, 4000.0f, 2000.0f);

Método

void Setup(uint32_t world_width, uint32_t world_height, NGN_Sprite* target_sprite = NULL);

Descripción

Inicializa la cámara. Debe especificarse el tamaño del mundo y opcionalmente, el sprite al que seguirá la cámara.

Ejemplo

ngn->camera->Setup(4000, 1024, player->sprite);

Método

int32_t PushBackground(uint32_t layer_number, NGN_TiledBg* background);
int32_t PushBackground(uint32_t layer_number, NGN_Texture* texture);

Descripción

Añade un fondo a la capa y devuelve su índice en la lista. En caso de error, devuelve -1.

Ejemplo

ngn->camera->PushBackground(2, bg_clouds);

Método

int32_t PushVirtualBg(
    uint32_t layer_number,
    NGN_Texture* texture,
    uint32_t bg_width,
    uint32_t bg_height,
    uint32_t loop_x,
    uint32_t loop_y,
    float auto_x = DEFAULT_VALUE,
    float auto_y = DEFAULT_VALUE
);

int32_t PushVirtualBg(
    uint32_t layer_number,
    NGN_TiledBg* background,
    uint32_t bg_width,
    uint32_t bg_height,
    uint32_t loop_x,
    uint32_t loop_y,
    float auto_x = DEFAULT_VALUE,
    float auto_y = DEFAULT_VALUE
);

Descripción

Añade un fondo con un tamaño “virtual” a la capa y devuelve su índice en la lista. En caso de error, devuelve -1. Debe especificarse el tamaño virtual del fondo, los puntos de loop en “X” e “Y” y opcionalmente los valores de auto-scroll de este fondo. El uso de este método sobrescribe el valor del tamaño de capa para los sprites.

Ejemplo

ngn->camera->PushVirtualBg(0, bg0, 100000, 720, 2560, 0, 1, 0);

Método

int32_t PushSprite(uint32_t layer_number, NGN_Sprite* sprite);
int32_t PushSprite(uint32_t layer_number, NGN_Texture* texture);

Descripción

Añade un sprite a la capa y devuelve su índice en la lista. En caso de error, devuelve -1.

Ejemplo

ngn->camera->PushSprite(3, player->sprite);

Método

void LookAt(NGN_Sprite* target_sprite);
void LookAt(uint32_t position_x, uint32_t position_y);
void LookAt(Vector2I32 pos);

Descripción

Indica a la cámara que debe seguir a un sprite concreto o que debe colocarse en una posición específica.

Ejemplo

ngn->camera->LookAt(player->sprite);
ngn->camera->LookAt(1000, 768);

Método

void Update();

Descripción

Actualiza la vista de la cámara. Esta función debe llamarse una vez por frame y realiza el render de todos los elementos contenidos.

Ejemplo

ngn->camera->Update();

Método

int32_t RemoveBackground(NGN_TiledBg* background);
int32_t RemoveBackground(NGN_Texture* texture);

Descripción

Busca y elimina un fondo de la cámara. En caso de no encontrar ese fondo en la lista, devuelve -1.

Ejemplo

ngn->camera->RemoveBackground(bg_clouds);

Método

int32_t RemoveSprite(NGN_Sprite* sprite);
int32_t RemoveSprite(NGN_Texture* texture);

Descripción

Busca y elimina un sprite de la cámara. En caso de no encontrar ese sprite en la lista, devuelve -1.

Ejemplo

ngn->camera->RemoveSprite(player->sprite);

Método

int32_t ChangeLayer(NGN_Sprite* sprite, uint32_t layer_number);
int32_t ChangeLayer(NGN_Texture* texture, uint32_t layer_number);

Descripción

Cambia de capa a un sprite. En caso de no encontrar ese sprite en la lista, devuelve -1.

Ejemplo

ngn->camera->ChangeLayer(player->sprite, 2);

Método

int32_t SendToFront(NGN_Sprite* sprite);
int32_t SendToFront(NGN_Texture* texture);

Descripción

Envía un sprite al frente de la capa asignada. En caso de no encontrar ese sprite en la lista, devuelve -1.

Ejemplo

ngn->camera->SendToFront(player->sprite);

Método

int32_t SendToBack(NGN_Sprite* sprite);
int32_t SendToBack(NGN_Texture* texture);

Descripción

Envía un sprite al fondo de la capa asignada. En caso de no encontrar ese sprite en la lista, devuelve -1.

Ejemplo

ngn->camera->SendToFront(player->sprite);

Método

void Reset();

Descripción

Reinicia la camara, eliminando todas las capas y las referencias contenidas.

Ejemplo

ngn->camera->Reset();

Método

bool CheckIfRegistered(NGN_Sprite* sprite);
bool CheckIfRegistered(NGN_Texture* texture);

Descripción

Determina si un sprite o una textura están actualmente registrados y gestionados por la cámara 2D.

Ejemplo

bool i = ngn->camera->CheckIfRegistered(bullet->sprite);

Método

Vector2 GetLookAt();

Descripción

Devuelve un Vector2 con la posición a la que está mirando actualmente la cámara en el mundo.

Ejemplo

Vector2 look = ngn->camera->GetLookAt();

Método

NGN_Sprite* GetTargetSprite();

Descripción

Devuelve el sprite que es el objetivo al que sigue la cámara. En caso de no seguir a ningún sprite, devuelve NULL.

Ejemplo

NGN_Sprite* target = ngn->camera->GetTargetSprite();

Método

Vector2 GetTargetPosition();

Descripción

Devuelve la posición a la que se le ha ordenado a la cámara colocarse. Este método puede devolver un resultado que no coincida con el devuelto por el método "GetLookAt()", que indica la posición en el mundo de la cámara respetando los límites de la pantalla.

Ejemplo

Vector2 camera_position = ngn->camera->GetTargetPosition();

Método

Size2I32 GetRendererSize();

Descripción

Devuelve una variable Size2I32 con el tamaño actual del área de renderizado de la cámara.

Ejemplo

Size2I32 renderer_area = ngn->camera->GetRendererSize();

Método

Size2I32 GetLayerSize(uint32_t layer_number);

Descripción

Devuelve una variable Size2I32 con el tamaño de la capa especificada.

Ejemplo

Size2I32 layer_size = ngn->camera->GetLayerSize(2);

Método

Vector2 GetLayerPosition(uint32_t layer_number);

Descripción

Devuelve una variable Vector2 con la posición del punto central de la capa especificada.

Ejemplo

Vector2 layer_pos = ngn->camera->GetLayerPosition(2);

Método

void Shake(float intensity, float frequency, bool split = true);

Descripción

Genera un efecto de temblor vertical en la escena de la cámara. El parámetro "intensity" especifica la magnitud del efecto en píxeles. El parámetro "frequency" especifica la velocidad del efecto (en radianes por segundo). El parámetro "split" determina si el efecto se aplica por separado a las diferentes capas de la escena.

Ejemplo

ngn->camera->Shake(3.0f, 0.2f, false);

Método

void SetLayerTintColor(uint32_t layer_number, uint8_t r, uint8_t g, uint8_t b);

Descripción

Aplica un tinte de color a todos los elementos (texturas, fondos de tiles y sprites) de la capa especificada. Si la propiedad "ignore_camera_tint" de un elemento está establecida en "true", ese elemento ignorará esta configuración.

Ejemplo

ngn->camera->SetLayerTintColor(4, 96, 255, 192);

Propiedades de la clase


Propiedad

Size2I world

Descripción

Almacena el tamaño actual del mundo.

Propiedad

Vector2I position

Descripción

Almacena la posición actual de la cámara en el mundo.

Propiedad

bool animation_pause

Descripción

Pausa la animación de todos los sprites si su valor es TRUE.

Volver al Índice English Version Volver Arriba