Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

radicalboy

Programação C++ & OpenGL (Minimap)

Mensagens Recomendadas

radicalboy

Tenho um jogo para fazer e estou com problemas a fazer o minimap:

Codigo do Hovercraft:

		glColor3d(0.9,0.1,0.1);
	glLineWidth(1.5);
	glPushMatrix();
	glTranslated((700.0 + (100.0 * (_position[0]/800))),(300.0 * (_position[1]/7000.0)),0);
	glRotated(_rot,0,0,1);
	glBegin(GL_POLYGON);
	for(int i = 0; i<3;i++)
	{
		glVertex3d((100.0 * (_points[i][0] / 800.0)),(300.0 * (_points[i][1] /1000.0)),0);
	}

	glEnd();
	glPopMatrix();

Código BoxManager:

		glLineWidth(1.5);
	glBegin(GL_LINE_LOOP);
		glVertex3d(800,0,0);
		glVertex3d(800,300,0);
		glVertex3d(700,300,0);
		glVertex3d(700,0,0);

	glEnd();

Codigo Box:

                         glColor3d(0.9,0.9,0.9);
		glLineWidth(0.5);
		glBegin(GL_LINE_LOOP);
		for(int i = 0; i<_npoints;i++) {
		glVertex3d(700.0 + (100.0 * (_points[i][0] / 800.0)),(300.0 * (_points[i][1] / 7000.0)),0);
		}

Então é assim:

Quando o barco está na posicao inicial da janela X=400, Y=20, as coisas encaixam bem no rectangulo do lado direito de dimensoes 100x300.

O HoverCraft é desenhado pelo hovercraft, a linha delimitadora pelo BoxManager e os icebergs pela Box.

Quando avanço o HC, ele está bem localizado no minimap e a linha delimitador tb correctamente posicionado.

Agora as Boxes é que quando vou avançando ficam para tras :|

Como poderei corrigir?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Triton

Ainda não percebi bem qual é o problema.

Mas alguma razão em especial porque estás a usar doubles no OpenGL em vez de floats? Não é muito comum de se ver. :)

Epa o código não me parece mal, mas talvez estejas a esquecer algum translate? ;)


<3 life

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
radicalboy

O problema é:

na primeira imagem, estou na posicao inicial (X=400; Y=20) e o minimap é desenhado correctamente. Vejo os icebergs a irem até ao topo do mundo (Y=7000) e a regressarem ao bottom, tanto no map como no mundo visivel.

Se eu avançar o Hovercraft, começa a deslocar o map, o HC fica bem posicionado no mundo, mas os icebergs "não saiem do fundo", ficando sempre desenhados em o 700<X<800 e 0<Y<300, quando devia avançar com o map, posicionados correctamente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.