Jump to content

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


radicalboy
 Share

Recommended Posts

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
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
 Share

×
×
  • Create New...

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.