Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
radicalboy

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

Recommended Posts

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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.