Executar função de desenho em Loop no OpenGL [RESOLVIDO]

1. Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Lucas
DcoderLA

(usa Debian)

Enviado em 24/04/2021 - 19:33h

Boa noite a todos.

Estou escrevendo uma função em opengl para desenhar uma estrela, e queria que ele desenhasse a estrela o numero de vezes que vai ser entrado pelo teclado, na mesma janela. Coloquei um for para ler as variáveis necessárias mas o desenho só é impresso na tela com os dados da ultima leitura. Eis o código:
Desde já agradeço qualquer ajuda.

//

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <GL/glut.h>
#include <math.h>

int n_stars;
GLdouble theta, wTamPad = 10, wCentX, wCentY, Wh = 10;
// GLdouble theta, wTamPad = 10, wCentX = 50, wCentY = 200, Wh = 10;

struct Ponto {
float x;
float y;
};

struct Ponto v[6];

static void init(void) {


glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0, 400, 0, 400);
}

//Gera cor aleatoria para cada componente da função glColor3f
float gerar_cores() {

float cor_f;
int gerado;

srand(time(NULL));

gerado = rand() % 101;

cor_f = (float)gerado/100;

return cor_f;
}

void drawStars(void) {

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// for(int i = 0; i < n_stars; i++) {
//glColor3f(1.0, 0.5, 0.8);
glColor3f(0.5, gerar_cores(), 1.0);

GLint k;
theta = (6.2831853 / 6);

for (k = 0; k < 6; k++) {
v[k].x = wCentX + cos(theta * k) * wTamPad;
v[k].y = wCentY + sin(theta * k) * wTamPad;
};

float d = (v[1].x - v[2].x)/2;

float dp = sqrt(pow(d,2)+pow(Wh,2));


glBegin(GL_POLYGON);
glVertex2f(v[0].x,v[0].y);
glVertex2f(v[1].x + dp, v[1].y);
glVertex2f(v[1].x, v[1].y);

glVertex2f(v[1].x, v[1].y);
glVertex2f(wCentX, v[1].y+Wh);
glVertex2f(v[2].x, v[2].y);

glVertex2f(v[2].x, v[2].y);
glVertex2f(v[2].x - dp, v[2].y);
glVertex2f(v[3].x, v[3].y);

glVertex2f(v[3].x, v[3].y);
glVertex2f(v[2].x - dp, v[4].y);
glVertex2f(v[4].x, v[4].y);

//glVertex2f(v[4].x, v[4].y);
//glVertex2f(wCentX, v[4].y - Wh);
//glVertex2f(v[5].x, v[5].y);
//
glVertex2f(v[5].x, v[5].y);
glVertex2f(v[5].x + dp, v[5].y);
glVertex2f(v[0].x, v[0].y);
glEnd();

glFlush();

// }
}

// void display() {

// glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// for (int i = 0; i < n_stars; i++)
// {
// drawStars();
// }


// }

// Programa Principal

int main(int argc, char** argv)
{

printf( "n = " );
scanf( "%d", &n_stars );

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowPosition(0, 0);

glutInitWindowSize(1280, 780);

glutCreateWindow("Draw Stars");

init();
// ---------------------------------------------------------------
for (int i = 0; i < n_stars; i++)
{

printf( "xc = " );
scanf( "%le", &wCentX );

printf( "yc = " );
scanf( "%le", &wCentY );

glutDisplayFunc(drawStars);
}
// ---------------------------------------------------------------

// glutDisplayFunc(drawStars);

glutMainLoop();

return 0;
}






  


2. MELHOR RESPOSTA

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 24/04/2021 - 20:15h

Troque o callback do glutDisplayFunc por esse código:

// aproveitando seu código anterior que tava comentado
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
printf( "xc = " );
scanf( "%le", &wCentX );

printf( "yc = " );
scanf( "%le", &wCentY );

drawStars();
}
}
// no main coloque assim:
glutDisplayFunc(display);


Observe o seguinte, como o glOrtho2D está com os parametros 0,400,0,400, daí, sua estrela vai aparecer no canto inferior esquerdo da janela que se abriu.
Procure uma cocumentação do glOrtho2D ou veja esse link (em inglês):
https://stackoverflow.com/questions/20998729/how-glortho2d-works/20999397

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam


3. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 24/04/2021 - 22:05h


SamL escreveu:

Troque o callback do glutDisplayFunc por esse código:

// aproveitando seu código anterior que tava comentado
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
printf( "xc = " );
scanf( "%le", &wCentX );

printf( "yc = " );
scanf( "%le", &wCentY );

drawStars();
}
}
// no main coloque assim:
glutDisplayFunc(display);


Observe o seguinte, como o glOrtho2D está com os parametros 0,400,0,400, daí, sua estrela vai aparecer no canto inferior esquerdo da janela que se abriu.
Procure uma cocumentação do glOrtho2D ou veja esse link (em inglês):
https://stackoverflow.com/questions/20998729/how-glortho2d-works/20999397

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam

Eu não entende, da para postar o diff ou colocar o código completo?
Eu não sei essa linguagem para entendê-la, eu só quero compilar e ver o que acontece.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


4. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 24/04/2021 - 22:38h


aguamole escreveu:

Eu não entende, da para postar o diff ou colocar o código completo?
Eu não sei essa linguagem para entendê-la, eu só quero compilar e ver o que acontece.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.

Aqui o código:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <GL/glut.h>
#include <math.h>

int n_stars;
GLdouble theta, wTamPad = 10, wCentX, wCentY, Wh = 10;
// GLdouble theta, wTamPad = 10, wCentX = 50, wCentY = 200, Wh = 10;

struct Ponto {
float x;
float y;
};

struct Ponto v[6];

static void init(void) {


glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0, 400, 0, 400);
}

//Gera cor aleatoria para cada componente da função glColor3f
float gerar_cores() {

float cor_f;
int gerado;

srand(time(NULL));

gerado = rand() % 101;

cor_f = (float)gerado/100;

return cor_f;
}

void drawStars(void) {

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// for(int i = 0; i < n_stars; i++) {
//glColor3f(1.0, 0.5, 0.8);
glColor3f(0.5, gerar_cores(), 1.0);

GLint k;
theta = (6.2831853 / 6);

for (k = 0; k < 6; k++) {
v[k].x = wCentX + cos(theta * k) * wTamPad;
v[k].y = wCentY + sin(theta * k) * wTamPad;
};

float d = (v[1].x - v[2].x)/2;

float dp = sqrt(pow(d,2)+pow(Wh,2));


glBegin(GL_POLYGON);
glVertex2f(v[0].x,v[0].y);
glVertex2f(v[1].x + dp, v[1].y);
glVertex2f(v[1].x, v[1].y);

glVertex2f(v[1].x, v[1].y);
glVertex2f(wCentX, v[1].y+Wh);
glVertex2f(v[2].x, v[2].y);

glVertex2f(v[2].x, v[2].y);
glVertex2f(v[2].x - dp, v[2].y);
glVertex2f(v[3].x, v[3].y);

glVertex2f(v[3].x, v[3].y);
glVertex2f(v[2].x - dp, v[4].y);
glVertex2f(v[4].x, v[4].y);

//glVertex2f(v[4].x, v[4].y);
//glVertex2f(wCentX, v[4].y - Wh);
//glVertex2f(v[5].x, v[5].y);
//
glVertex2f(v[5].x, v[5].y);
glVertex2f(v[5].x + dp, v[5].y);
glVertex2f(v[0].x, v[0].y);
glEnd();

glFlush();

// }
}

// aproveitando seu código anterior que tava comentado
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
printf( "xc = " );
scanf( "%le", &wCentX );

printf( "yc = " );
scanf( "%le", &wCentY );

drawStars();
}
}

// Programa Principal

int main(int argc, char** argv)
{

printf( "n = " );
scanf( "%d", &n_stars );

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowPosition(0, 0);

glutInitWindowSize(1280, 780);

glutCreateWindow("Draw Stars");

init();

glutDisplayFunc(display);

glutMainLoop();

return 0;
}


Pra compilar faça:
-salve o código como estrela.c
-abra um terminal na pasta com o source estrela.c
-agora rode esse comando:
$ gcc -o estrela estrela.c -lGL -lglut -lGLU -lm
Pode ser preciso instalar o libglut-dev pra compilar.
-Depois só executar ./estrela
-dai vai pedir pra digitar coisas no terminal.
-digite algo como n= 3
-depois vai pedir pra digitar as coordenadas do centro da estrela, porém, o programa ainda tá um pouco bugado nesse ponto.
-o desenho da estrela aperece no canto inferior esquerdo da nova janela.

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam



5. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Lucas
DcoderLA

(usa Debian)

Enviado em 25/04/2021 - 09:23h


aguamole escreveu:


SamL escreveu:

Troque o callback do glutDisplayFunc por esse código:

// aproveitando seu código anterior que tava comentado
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
printf( "xc = " );
scanf( "%le", &wCentX );

printf( "yc = " );
scanf( "%le", &wCentY );

drawStars();
}
}
// no main coloque assim:
glutDisplayFunc(display);


Observe o seguinte, como o glOrtho2D está com os parametros 0,400,0,400, daí, sua estrela vai aparecer no canto inferior esquerdo da janela que se abriu.
Procure uma cocumentação do glOrtho2D ou veja esse link (em inglês):
https://stackoverflow.com/questions/20998729/how-glortho2d-works/20999397

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam

Eu não entende, da para postar o diff ou colocar o código completo?
Eu não sei essa linguagem para entendê-la, eu só quero compilar e ver o que acontece.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


Está linguagem é C usando a biblioteca gráfica OpenGL.


6. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Lucas
DcoderLA

(usa Debian)

Enviado em 25/04/2021 - 09:32h


SamL escreveu:

Troque o callback do glutDisplayFunc por esse código:

// aproveitando seu código anterior que tava comentado
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
printf( "xc = " );
scanf( "%le", &wCentX );

printf( "yc = " );
scanf( "%le", &wCentY );

drawStars();
}
}
// no main coloque assim:
glutDisplayFunc(display);


Observe o seguinte, como o glOrtho2D está com os parametros 0,400,0,400, daí, sua estrela vai aparecer no canto inferior esquerdo da janela que se abriu.
Procure uma cocumentação do glOrtho2D ou veja esse link (em inglês):
https://stackoverflow.com/questions/20998729/how-glortho2d-works/20999397

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam


Foi um avanço do que tinh ahehe, mas a estrela ainda some, eu queria fazer com que fossem desenhadas o número de estrelas digitadas na tela. Será por causa do bug no glortho que voce falou ou está faltando mais alguma função do opengl ?


7. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 25/04/2021 - 16:10h


DcoderLA escreveu:
Foi um avanço do que tinh ahehe, mas a estrela ainda some, eu queria fazer com que fossem desenhadas o número de estrelas digitadas na tela. Será por causa do bug no glortho que voce falou ou está faltando mais alguma função do opengl ?

Na verdade, precisa ainda consertar o bug do glOrtho2D, sem isso, vai ficar uma estrela por cima da outra.

Tu precisa remodificar a função que eu te passei.
Por exemplo, ao invés de ler os centrs das estrelas e executar o drawStars logo em seguida, tu precisa primeiro, ler todos os n centros SEM desenhar na tela e SEM estar dentro do display().
Depois de ler todos os centros (no main é bom colocar o código de ler os centros), dai basta deixar o display() como abaixo:

// aproveitando seu código anterior que tava comentado
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
drawStars();
}


Viu ai? Basta separar leitura (input) do desenho (output)


____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam



8. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 25/04/2021 - 16:48h

Perae agora que vi, tu não tá armazenando os centros unm vetor. Precisa armazenar cada centro de cada estrela e depois desenhar conforme o centro atual.

Por exemplo, supondo que tu armazene num vetor 3 estrelas, dai a drawStars deverá receber um centro por vez e então desenhar na tela. Use um for pra percorrer o vetor e modifique o drawStars pra receber o centro ou então faça o drawStars desenhar todas as estrelas percorrendo o vetor de centros.


____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam



9. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Lucas
DcoderLA

(usa Debian)

Enviado em 25/04/2021 - 18:27h


SamL escreveu:

Perae agora que vi, tu não tá armazenando os centros unm vetor. Precisa armazenar cada centro de cada estrela e depois desenhar conforme o centro atual.

Por exemplo, supondo que tu armazene num vetor 3 estrelas, dai a drawStars deverá receber um centro por vez e então desenhar na tela. Use um for pra percorrer o vetor e modifique o drawStars pra receber o centro ou então faça o drawStars desenhar todas as estrelas percorrendo o vetor de centros.


____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam


Bom eu modifiquei duas coisas, a primeira foi que notei que a chamada da função glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); estava ocorrendo duas vezes, uma na função da estrela e outra na função display, quando tirei da função drawstars, ela realmente desenhava as estrelas da forma que quero. A segunda foi que agora eu não entro com as coordenadas do centro, eu criei uma função para gerar números aleatórios para as coordenadas, mas ao usar ela voltou a desenhar uma estrela apenas, então talvez seja o bug do glortho, mas ainda não entendi o que esta errado. :(. teste usar a função glortho assim: gluOrtho2D(-400, 400, -400, 400);

Essa foi a mudança que fiz:

//

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <GL/glut.h>
#include <math.h>

int n_stars;
GLdouble theta, wTamPad = 10, wCentX, wCentY, Wh = 10;
// GLdouble theta, wTamPad = 10, wCentX = 50, wCentY = 200, Wh = 10;

struct Ponto {
float x;
float y;
};

struct Ponto v[6];

static void init() {


glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0, 400, 0, 400);
// gluOrtho2D(-400, 400, -400, 400);
}

//Gera cor aleatoria para cada componente da função glColor3f
float gerar_cores() {

float cor_f;
int gerado;

srand(time(NULL));

gerado = rand() % 101;

cor_f = (float)gerado/100;

return cor_f;
}

int gerar_coordenada_aleatoria() {

int coordenada;

srand(time(NULL));

coordenada = 50 + (rand() % 150);

return coordenada;
}

void drawStars(void) {

// glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glColor3f(0.5, gerar_cores(), 1.0);

wCentX = gerar_coordenada_aleatoria();
wCentY = gerar_coordenada_aleatoria();

GLint k;
theta = (6.2831853 / 6);

for (k = 0; k < 6; k++) {
v[k].x = wCentX + cos(theta * k) * wTamPad;
v[k].y = wCentY + sin(theta * k) * wTamPad;
};

float d = (v[1].x - v[2].x)/2;

float dp = sqrt(pow(d,2)+pow(Wh,2));


glBegin(GL_POLYGON);
glVertex2f(v[0].x,v[0].y);
glVertex2f(v[1].x + dp, v[1].y);
glVertex2f(v[1].x, v[1].y);

glVertex2f(v[1].x, v[1].y);
glVertex2f(wCentX, v[1].y+Wh);
glVertex2f(v[2].x, v[2].y);

glVertex2f(v[2].x, v[2].y);
glVertex2f(v[2].x - dp, v[2].y);
glVertex2f(v[3].x, v[3].y);

glVertex2f(v[3].x, v[3].y);
glVertex2f(v[2].x - dp, v[4].y);
glVertex2f(v[4].x, v[4].y);

glVertex2f(v[5].x, v[5].y);
glVertex2f(v[5].x + dp, v[5].y);
glVertex2f(v[0].x, v[0].y);
// }
glEnd();

glFlush();

// }
}

void display() {

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
// printf( "xc = " );
// scanf( "%le", &wCentX );

// printf( "yc = " );
// scanf( "%le", &wCentY );

drawStars();
}


}

// Programa Principal

int main(int argc, char** argv)
{

printf( "n = " );
scanf( "%d", &n_stars );

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowPosition(0, 0);

glutInitWindowSize(1280, 780);

glutCreateWindow("Draw Stars");

init();

glutDisplayFunc(display);

glutMainLoop();

return 0;
}




10. Re: Executar função de desenho em Loop no OpenGL

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 25/04/2021 - 18:55h

Olhai em baixo, eu dei uma ajeitada nas funções de desenho. o glFlush deve ser executado sempre por último DEPOIS de desenhar tudo na tela.
Uma coisa que lembrei foi que, é preciso usar glPushMatrix e glTranslatef antes de desenhar na tela, e depois usar glPopMatrix.
Isso acontece pelo seguinte:
No opengl, existe um estado, dai o glPushMatrix,está salvando o estado da matrix que o opengl usa pra posicionar as coisas na tela. Então, depois de salvar, você deve mover o ponto de desenho com glTranslatef, que vai mover pro ponto wCentX e wCentY e 0. Então, desse ponto ai que é o centro da estrela, é onde você deve desenhar as pontas dela ao redor desse centro aleatorio. Por isso, não se deve somar logo de cara os centros com o v[] porque só o v[] que muda os valores, já que movemos o contexto do opengl pra posição glTranslatef(wCentX,wCentY,0)
NOTA:
tambémm edite o glOrtho2D pra ficar correto, ou vai bugar tudo.

void drawStars(void) {

// glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glColor3f(0.5, gerar_cores(), 1.0);

wCentX = gerar_coordenada_aleatoria();
wCentY = gerar_coordenada_aleatoria();

GLint k;
theta = (6.2831853 / 6);

for (k = 0; k < 6; k++) {
v[k].x = cos(theta * k) * wTamPad;
v[k].y = sin(theta * k) * wTamPad;
};

float d = (v[1].x - v[2].x)/2;

float dp = sqrt(pow(d,2)+pow(Wh,2));

glPushMatrix();
glTranslatef(wCentX, wCentY, 0);
glBegin(GL_POLYGON);
glVertex2f(v[0].x,v[0].y);
glVertex2f(v[1].x + dp, v[1].y);
glVertex2f(v[1].x, v[1].y);

glVertex2f(v[1].x, v[1].y);
glVertex2f(wCentX, v[1].y+Wh);
glVertex2f(v[2].x, v[2].y);

glVertex2f(v[2].x, v[2].y);
glVertex2f(v[2].x - dp, v[2].y);
glVertex2f(v[3].x, v[3].y);

glVertex2f(v[3].x, v[3].y);
glVertex2f(v[2].x - dp, v[4].y);
glVertex2f(v[4].x, v[4].y);

glVertex2f(v[5].x, v[5].y);
glVertex2f(v[5].x + dp, v[5].y);
glVertex2f(v[0].x, v[0].y);
// }
glEnd();
glPopMatrix();



// }
}

void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

for (int i = 0; i < n_stars; i++)
{
// printf( "xc = " );
// scanf( "%le", &wCentX );

// printf( "yc = " );
// scanf( "%le", &wCentY );

drawStars();
}

glFlush();
}



____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam



11. Re: Executar função de desenho em Loop no OpenGL

João Cláudio de Alcântara
aguamole

(usa Lubuntu)

Enviado em 25/04/2021 - 19:09h

Samuel Leonardo(SamL) cria o Super Mario para agente?
Ou o projeto esta morto para sempre?


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


12. Re: Executar função de desenho em Loop no OpenGL [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 25/04/2021 - 19:16h


aguamole escreveu:

Samuel Leonardo(SamL) cria o Super Mario para agente?
Ou o projeto esta morto para sempre?


CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.

Não, ainda estou escrevendo um tutorial. Mas, acontece que nunca terminei meus clones do super mario, sempre fico entediado e acabo abandonando o projeto. Uma vez, eu retomei um desses projetos, mas acabei largando de novo rsrsrs num tem jeito.

Tem um código meu no github que é um platformer estilo super mario, ms também abandonei porque meu amigo que fazia as imagens teve problemas com depressão e daí achei melhor não ficar exigindo nada dele, mas um tempo desse ele falou sobre o projeto, pra retomarmos os trabalhos, porém, ficou só nisso mesmo.
Veja aqui o projeto:
https://github.com/cpusam/dangerous_tux">https://github.com/cpusam/dangerous_tux
As vezes eu atualizo esse projeto ai, mas não tenho planos pra voltar trabalhar nele.

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!
Capeta (demo) do meu trabalho:
https://github.com/cpusam




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts