43#define COLOR_BLACK (Color){0, 0, 0}
45#define COLOR_RED (Color){255, 0, 0}
47#define COLOR_GREEN (Color){0, 255, 0}
49#define COLOR_YELLOW (Color){255, 255, 0}
51#define COLOR_BLUE (Color){0, 0, 255}
53#define COLOR_PURPLE (Color){128, 0, 128}
55#define COLOR_CYAN (Color){0, 255, 255}
57#define COLOR_WHITE (Color){255, 255, 255}
67#define VETOR_NULO (Vector2){0, 0}
72#define VETOR_CIMA (Vector2){0, -1}
77#define VETOR_BAIXO (Vector2){0, 1}
81#define VETOR_ESQUERDA (Vector2){-1, 0}
85#define VETOR_DIREITA (Vector2){1, 0}
void setar_animation_via_nome(ObjetoComplexo *obj, char nome[])
Seleciona a animação atual de um objeto complexo por nome.
Definition graphycs.c:618
void setar_frame_obj_complexo(Screen *s, ObjetoComplexo *obj, int frame)
Define manualmente o frame atual de um objeto complexo.
Definition graphycs.c:628
void animar_objeto_complexo(Screen *s, ObjetoComplexo *obj)
Executa o passo de animação do objeto complexo na tela.
Definition graphycs.c:643
void setar_animation_via_index(ObjetoComplexo *obj, int anim_index)
Seleciona a animação atual de um objeto complexo por índice.
Definition graphycs.c:612
Vector2 centro_da_tela(Screen *s)
Retorna as coordenadas relativas do centro geométrico da tela.
Definition graphycs.c:274
Vector2 centro_objeto_complexo(ObjetoComplexo *obj)
Retorna as coordenadas relativas do centro geométrico do objeto complexo, considerando a totalidade d...
Definition graphycs.c:151
Vector2 centro_do_objeto(Objeto *obj)
Retorna as coordenadas relativas do centro geométrico do objeto.
Definition graphycs.c:269
Color criar_cor(int r, int g, int b)
Retorna uma nova cor dados os componentes RGB.
Definition graphycs.c:103
Color aplicar_filtro(Color original, Color filtro)
Põe uma cor de filtro em cima de outra cor para alterar sua matiz.
Definition graphycs.c:110
void setup_animations(ObjetoComplexo *obj, Animation anims[], int qtd_anims)
Configura o gerenciador de animações (AnimationManager) de um objeto complexo.
Definition graphycs.c:659
ObjetoComplexo * criar_objeto_complexo_piskel(int qtd_frames, int width, int height, const uint32_t obj_data[qtd_frames][width *height])
Cria um objeto complexo a partir de matriz do Piskel.
Definition graphycs.c:1013
Animation criar_anim(int *frame_list, int qtd_frames, char nome[])
Cria uma animação encapsulando índices de frames.
Definition graphycs.c:537
ObjetoComplexo * criar_objeto_complexo_via_lista(Objeto **obj_origem, int qtd_objetos)
Cria um objeto complexo a partir de lista de objetos (frames).
Definition graphycs.c:1021
void espelhar_objeto_complexo(Screen *s, ObjetoComplexo *obj, bool horizontalmente)
Espelha todos os frames de um objeto complexo horizontalmente ou verticalmente.
Definition graphycs.c:769
void aplicar_filtro_obj(Objeto *obj, Color filtro)
Aplica um filtro de cor ao objeto simples.
Definition graphycs.c:739
void rotacionar_objeto(Objeto *obj, Vector2 pivot, float graus)
Rotaciona um objeto simples em torno de um pivô.
Definition graphycs.c:915
void rotacionar_objeto_complexo(ObjetoComplexo *obj, Vector2 pivot, float graus)
Rotaciona um objeto complexo em torno de um pivô.
Definition graphycs.c:941
void aplicar_filtro_obj_complexo(ObjetoComplexo *obj, Color filtro)
Aplica um filtro de cor ao objeto complexo.
Definition graphycs.c:968
void espelhar_objeto(Screen *s, Objeto *obj, bool horizontalmente)
Espelha um objeto simples horizontalmente ou verticalmente.
Definition graphycs.c:745
void excluir_objeto_complexo(ObjetoComplexo *obj)
Exclui completamente um objeto complexo da memória.
Definition graphycs.c:825
void excluir_objeto(Objeto *obj)
Exclui completamente um objeto simples da memória.
Definition graphycs.c:819
void excluir_tela(Screen *s)
Exclui completamente uma tela da memória.
Definition graphycs.c:500
void normalizar_objeto(Objeto *obj)
Normaliza objeto simples para ter pivô no canto superior esquerdo.
Definition graphycs.c:293
void centralizar_objeto(Objeto *obj)
Centraliza o pivô do objeto simples no centro geométrico.
Definition graphycs.c:314
void alterar_pivot_frame(ObjetoComplexo *obj, int frame, Vector2 novo_pivot)
Altera o pivô de um frame específico em objeto complexo.
Definition graphycs.c:685
void alterar_pivot_obj(Objeto *obj, Vector2 new_pivot)
Altera o pivô de um objeto simples.
Definition graphycs.c:666
Pixel desempilhar_Pixel(Pixel_Stack *stack)
Desempilha o pixel do topo da pilha de pixeis.
Definition graphycs.c:282
Pixel criar_Pixel(Color cor, Vector2 pos)
Cria um Pixel com cor e posição especificadas.
Definition graphycs.c:177
Pixel deletar_Pixel(Screen *s, Vector2 pos)
Remove o pixel do topo da pilha na tela em posição dada.
Definition graphycs.c:476
Vector2 get_abs_Pixel_pos(Objeto *obj, int index)
Retorna a posição absoluta do index-ésimo píxel do vetor de pixeis dentro do Objeto.
Definition graphycs.c:264
Vector2 get_complexo_abs_Pixel_pos(ObjetoComplexo *obj, int frame, int index)
Retorna a posição absoluta do index-ésimo píxel do vetor de pixeis do frame-ésimo frame dentro do Obj...
Definition graphycs.c:156
bool obj_contem_Pixel_em(Objeto *obj, Vector2 pos)
Verifica se objeto simples contém pixel em posição relativa dada.
Definition graphycs.c:582
bool vetor_valido_na_tela(Screen *s, Vector2 vet)
Retorna true se vetor está dentro dos limites da tela.
Definition graphycs.c:567
bool compare_vector(Vector2 v1, Vector2 v2)
Compara igualdade entre dois vetores.
Definition graphycs.c:575
int * obj_complexo_contem_Pixel_em(ObjetoComplexo *obj, Vector2 pos, int *out_qtd_de_frames)
Verifica em quais frames de um objeto complexo há pixel em posição.
Definition graphycs.c:547
Pixel get_pixel_em(Screen *s, Vector2 pos)
retorna o pixel que está no topo da pilha na posição relativa à tela dada
Definition graphycs.c:591
void esconder_objeto_complexo(Screen *s, ObjetoComplexo *obj)
Esconde um objeto complexo removendo seus pixels na tela.
Definition graphycs.c:854
void desenhar_objeto_complexo(Screen *s, ObjetoComplexo *obj)
Desenha um objeto complexo na tela em sua posição.
Definition graphycs.c:788
void esconder_objeto(Screen *s, Objeto *obj)
Esconde um objeto simples removendo seus pixels na tela.
Definition graphycs.c:835
void desenhar_objeto(Screen *s, Objeto *obj)
Desenha um objeto simples na tela em sua posição.
Definition graphycs.c:717
void moveCursor(Vector2 v)
Move o cursor de renderização para a posição dada.
Definition graphycs.c:947
void mover_tela(Screen *s, Vector2 direction)
Definition graphycs.c:236
void render(Screen *s, bool reset)
Renderiza o conteúdo da tela no console.
Definition graphycs.c:952
void preencher_background(Screen *s, Color cor)
Preenche toda a tela com uma cor de fundo.
Definition graphycs.c:894
Objeto * criar_objeto_custom(Pixel *info, int qtd_Pixel, bool normalizar)
Cria um objeto customizado a partir de uma lista de pixels.
Definition graphycs.c:341
Objeto * criar_retangulo_monocromatico(Color cor, Vector2 tamanho)
Gera um objeto retangular monocromático preenchido.
Definition graphycs.c:374
Objeto * merge_objeto(Objeto *prioridade, Objeto *novo, Vector2 pivot)
Une dois objetos em um só a partir de um pivot.
Definition graphycs.c:448
Objeto * recortar_objeto(Objeto *obj, Vector2 inicio, Vector2 fim)
Recorta parte de um objeto dentro de um retângulo definido.
Definition graphycs.c:397
Objeto * criar_obj_eixos_debug(Screen *s)
Cria um objeto de eixos cartesianos brancos para debug.
Definition graphycs.c:420
Objeto * criar_piskel_obj(const uint32_t frame_data[], int width, int height)
Cria um objeto a partir de dados de um frame do Piskel.
Definition graphycs.c:1006
Vector2 reverse_vector(Vector2 v)
Inverte os componentes de um vetor.
Definition graphycs.c:147
Vector2 produto_vetor_escalar(Vector2 vet, float escalar)
Calcula o produto de um vetor por um escalar inteiro.
Definition graphycs.c:124
Vector2 vector_sum(Vector2 v1, Vector2 v2)
Soma dois vetores.
Definition graphycs.c:132
Vector2 vector_subtr(Vector2 v1, Vector2 v2)
Subtrai dois vetores.
Definition graphycs.c:139
Vector2 new_Vector2(int x, int y)
Retorna um novo vetor dados x e y.
Definition graphycs.c:119
Representa uma animação específica de um ObjetoComplexo.
Definition graphycs.h:138
int frame_atual
Definition graphycs.h:142
int qtd_frames
Definition graphycs.h:141
int * frame_index
Definition graphycs.h:140
char nome[20]
Definition graphycs.h:139
Gerencia múltiplas animações de um ObjetoComplexo.
Definition graphycs.h:150
int anim_atual
Definition graphycs.h:152
int qtd_anims
Definition graphycs.h:151
Animation * anims
Definition graphycs.h:153
Estrutura de cores no padrão RGB.
Definition graphycs.h:22
int b
Definition graphycs.h:25
int g
Definition graphycs.h:24
int r
Definition graphycs.h:23
Representa um objeto com múltiplos frames e animações (ex: personagens de jogos).
Definition graphycs.h:177
bool renderizado
Definition graphycs.h:183
int frame_atual
Definition graphycs.h:186
Vector2 * pivot_frames
Definition graphycs.h:179
int qtd_frames
Definition graphycs.h:185
Vector2 position
Definition graphycs.h:178
Objeto ** frames
Definition graphycs.h:180
AnimationManager * anim_manager
Definition graphycs.h:181
bool animar
Definition graphycs.h:184
Vector2 size
Definition graphycs.h:182
Representa um objeto gráfico estático (um único frame).
Definition graphycs.h:165
bool renderizado
Definition graphycs.h:170
Vector2 position
Definition graphycs.h:166
Pixel * info
Definition graphycs.h:167
int qtd_Pixel
Definition graphycs.h:169
Vector2 size
Definition graphycs.h:168
Nodo da pilha dinâmica de pixeis.
Definition graphycs.h:106
Pixel pixel
Definition graphycs.h:107
struct Pixel_Node * anterior
Definition graphycs.h:108
Estrutura que representa a pilha de pixeis de cada posição da tela. Cada coordenada empilha pixeis e ...
Definition graphycs.h:113
Pixel_Node * topo
Definition graphycs.h:114
Estrutura que representa um Pixel na tela.
Definition graphycs.h:97
Vector2 position
Definition graphycs.h:99
char source_type
Definition graphycs.h:101
void ** obj_source
Definition graphycs.h:100
Color cor
Definition graphycs.h:98
Estrutura da tela sob a qual os objetos serão renderizados.
Definition graphycs.h:121
Vector2 position
Definition graphycs.h:124
Vector2 screen_size
Definition graphycs.h:123
Pixel_Stack *** pixeis
Definition graphycs.h:122
Estrutura para coordenadas 2D (x, y).
Definition graphycs.h:31
int y
Definition graphycs.h:33
int x
Definition graphycs.h:32