void drawWorld(void)
{
	mvstack.push(model_view);
	drawDesert();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate (0, 6 , -30);
	model_view *= RotateY(180);
	drawBench();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate (25, 4, -30);
	drawTree();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Scale(.9, .9, .9);
	model_view *= Translate (-25, 4, -30);
	drawTree();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Scale(1, 2, 1);
	model_view *= Translate (25, 4, 30);
	drawTree();
	model_view = mvstack.pop();
	

	//house
	mvstack.push(model_view);
	model_view *= Translate(-40, 10, 0);
	model_view *= RotateY(90);
	drawHouse();
	model_view = mvstack.pop();
	

	//moon
	mvstack.push(model_view);
	set_colour(.9, .9, .8);
	model_view *= Translate (-70, 75, 200);
	model_view *= Scale(30, 30, 30);
	drawSphere();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate(160,100, 0);
	model_view *= Scale (150, 200, 250);
	drawStone();
	model_view = mvstack.pop();

	mvstack.push(model_view);
	model_view *= Translate(-160,100, 0);
	model_view *= Scale (150, 200, 250);
	drawStone();
	model_view = mvstack.pop();

	if (TIME >= 7 && TIME < 8)
	{
		mvstack.push(model_view);
		model_view *= Translate (0, 10, -20);
		model_view *= Scale(1.2, 1.6, 1.2);
		model_view *= Translate (0, 66.5- TIME*9.5, -35 + TIME*5);
		model_view *= RotateX((180*7)-TIME*180);
		drawBanana1();
		model_view = mvstack.pop();
	}
	else if (TIME >= 8)
	{
		mvstack.push(model_view);
		model_view *= Translate (0, 0.5, -16.8);
		model_view *= Scale (1.2, 1.6, 1.2);
		model_view *= RotateX(180);
		drawBanana1();
		model_view = mvstack.pop();
	}
}
示例#2
0
void drawScene(void)
{
	mvstack.push(model_view);
	drawHcube();
	drawLoveHeart();
	model_view = mvstack.pop();
	// Draw Ground
	mvstack.push(model_view);
		set_colour(0.5,1,0.5);
		model_view *= Translate(0.0f, -4.75f, 0.0f);
		model_view *= Scale(100.0f, 1.0f, 100.0f);
		drawCube();
	model_view = mvstack.pop();
	//Draw Tree
	mvstack.push(model_view);
	model_view *= Translate(5.0f, -4.75f, -5.0f);
	drawPineTree();
	model_view = mvstack.pop();
	// Draw Grass
	mvstack.push(model_view);
		model_view *= Translate(10.0f, -4.0f, 0.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(12.0f, -4.0f, 3.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(-11.0f, -4.0f, 4.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(-9.0f, -4.0f, -2.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(-4.0f, -4.0f, 5.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(-3.0f, -4.0f, 9.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(-5.0f, -4.0f, -15.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(6.0f, -4.0f, -14.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(7.0f, -4.0f, -25.0f);
		drawGrass();
	model_view = mvstack.pop();
	mvstack.push(model_view);
		model_view *= Translate(-8.0f, -4.0f, -18.0f);
		drawGrass();
	model_view = mvstack.pop();
	
	// Draw Walls
	mvstack.push(model_view);

		set_colour(0.9,0.9,1);

		mvstack.push(model_view);
			model_view *= RotateX(90);
			model_view *= RotateY(90);
			model_view *= Translate(20.0f, -50.0f, 0.0f);
			model_view *= Scale(50.0f, 1.0f, 100.0f);
			drawWall();
			model_view *= Translate(0.0f, 100.0f, 0.0f);
			drawWall();
		model_view = mvstack.pop();

		mvstack.push(model_view);
			model_view *= Translate(50.0f, 20.0f, 0.0f);
			model_view *= Scale(1.0f, 50.0f, 100.0f);
			drawWall();
			model_view *= Translate(-100.0f, 0.0f, 0.0f);
			drawWall();
		model_view = mvstack.pop();

	model_view = mvstack.pop();

    // Draw Bench
	mvstack.push(model_view);
		model_view *= Translate(0.0f, -2.0f, 0.0f);
		drawBench();
	model_view = mvstack.pop();
}