Пример #1
0
void SceneManagerCMPlay::RenderStaticObject()
{
	Mesh* drawMesh = resourceManager.retrieveMesh("SKYPLANE");
	drawMesh->textureID = resourceManager.retrieveTexture("SKYPLANE_TOP");

	modelStack.PushMatrix();
	modelStack.Translate(0, 2000, 0);
	Render3DMesh(drawMesh, false);
	modelStack.PopMatrix();

	drawMesh = resourceManager.retrieveMesh("FLOOR");
	drawMesh->textureID = resourceManager.retrieveTexture("FLOOR");

	for (int i = 0; i < 10; ++i)
	{
		for (int j = 0; j < 10; ++j)
		{
			modelStack.PushMatrix();
			modelStack.Rotate(-90, 1, 0, 0);
			modelStack.Translate(-500 + i * 100, -500 +j * 100, -5);
			modelStack.Scale(100.0f, 100.0f, 100.0f);
			Render3DMesh(drawMesh, false);
			modelStack.PopMatrix();
		}
	}
}
Пример #2
0
void SceneManagerCMPlay::RenderStaticObject()
{

	static Mesh* debugMesh = resourceManager.retrieveMesh("DEBUG_CUBE");
	staticSceneGraph->Draw(this,debugMesh);
	Mesh* drawMesh;

	drawMesh = resourceManager.retrieveMesh("WARRIOR_SWORD_OBJ");

	drawMesh = resourceManager.retrieveMesh("SKYPLANE");
	modelStack.PushMatrix();
	modelStack.Translate(0, 2000, 0);
	Render3DMesh(drawMesh, false);
	modelStack.PopMatrix();

	drawMesh = resourceManager.retrieveMesh("FLOOR");

	modelStack.PushMatrix();
	modelStack.Rotate(-90, 1, 0, 0);
	modelStack.Translate(0, 0, -10);
	modelStack.Rotate(-90, 0, 0, 1);
	Render3DMesh(drawMesh, false);
	modelStack.PopMatrix();

	drawMesh = resourceManager.retrieveMesh("TREE_OBJ");
	Render3DMesh(drawMesh, false);

	if (debugInfo)
	{
		for (int k = 0; k < (int)spatialPartitionManager->getNumPartition().z; ++k)
		{
			for (int j = 0; j < (int)spatialPartitionManager->getNumPartition().y; ++j)
			{
				for (int i = 0; i < (int)spatialPartitionManager->getNumPartition().x; ++i)
				{
					Partition* partition = spatialPartitionManager->getPartition(Vector3((float)i, (float)j, (float)k), false);
					if (partition->nodes.size() > 0)
					{
						std::cout << partition->nodes.size() << std::endl;
						modelStack.PushMatrix();
						modelStack.Translate(
							world3DStart.x + (i + 0.5f) * spatialPartitionManager->getParitionDimension().x,
							world3DStart.y + (j + 0.5f) * spatialPartitionManager->getParitionDimension().y,
							world3DStart.z + (k + 0.5f) * spatialPartitionManager->getParitionDimension().z);
						modelStack.Scale(spatialPartitionManager->getParitionDimension());
						Render3DMesh(partition->getMesh(), false);
						modelStack.PopMatrix();
					}
				}
			}
		}
	}
}
Пример #3
0
void SceneManagerCMPlay::RenderMobileObject()
{
	//Mesh* drawMesh = resourceManager.retrieveMesh("CIRCLE_RED");
	//template circle

	for (int i = 0; i < ListOfCharacters.size(); ++i)
	{
		if (ListOfCharacters[i]->GetTYPE() == "BOSS")
		{
			CBoss* temp = (CBoss*)ListOfCharacters[i];
			if (temp->GetCastingSkillBool())
			{
				modelStack.PushMatrix();
				modelStack.Translate(temp->GetPosition().x, temp->GetPosition().y, temp->GetPosition().z);
				modelStack.Rotate(-90, 1, 0, 0);
				modelStack.Scale(temp->GetSkillRadius(), temp->GetSkillRadius(), temp->GetSkillRadius());
				Render3DMesh(resourceManager.retrieveMesh("CIRCLE_RED"), true);
				modelStack.PopMatrix();
			}
		}
	}
	if (toggleStatusAndParticles)
	{
		for (int i = 0; i < ListOfParticles.size(); ++i)
		{
			if (ListOfParticles[i]->m_Active)
			{
				CParticle* Particle = ListOfParticles[i];
				modelStack.PushMatrix();
				modelStack.Translate(Particle->position.x, Particle->position.y, Particle->position.z);
				modelStack.Scale(Particle->scale, Particle->scale, Particle->scale);
				Render3DMesh(Particle->mesh, false);
				modelStack.PopMatrix();
			}
		}
	}
	/*modelStack.PushMatrix();
	modelStack.Translate(40, 1, 0);
	modelStack.Scale(10, 10, 10);
	Render3DMesh(resourceManager.retrieveMesh("FIREBALL"), false);
	modelStack.PopMatrix();*/

	FSMApplication();
	RenderPlayerStats();
	sceneGraph->Draw(this);
}
Пример #4
0
void SceneManagerCMPlay::RenderPlayerStats()
{
	float m_BillBoard;
	Mesh* drawMesh = resourceManager.retrieveMesh("FONT");
	drawMesh->textureID = resourceManager.retrieveTexture("STATUSFONT");

	string count = "Total Entities:" + to_string(TOTAL_COUNT);
	string FPS = "FPS: " + to_string(fps);
	RenderTextOnScreen(drawMesh, FPS, resourceManager.retrieveColor("White"), 25.f, 1500, 1050, 0);
	RenderTextOnScreen(drawMesh, count, resourceManager.retrieveColor("White"), 25.f, 1500, 1020, 0);
	RenderTextOnScreen(drawMesh, "F1 - To spawn tank", resourceManager.retrieveColor("White"), 25.f, 10, 1050, 0);
	RenderTextOnScreen(drawMesh, "F2 - To spawn mage", resourceManager.retrieveColor("White"), 25.f, 10, 1020, 0);
	RenderTextOnScreen(drawMesh, "F3 - To spawn healer", resourceManager.retrieveColor("White"), 25.f, 10, 990, 0);
	RenderTextOnScreen(drawMesh, "F4 - To spawn boss", resourceManager.retrieveColor("White"), 25.f, 10, 960, 0);
	RenderTextOnScreen(drawMesh, "F5 - Warrior hp = 10%", resourceManager.retrieveColor("White"), 25.f, 10, 930, 0);
	RenderTextOnScreen(drawMesh, "F6 - Kill warrior", resourceManager.retrieveColor("White"), 25.f, 10, 900, 0);
	RenderTextOnScreen(drawMesh, "F7 - Healer hp = 10%", resourceManager.retrieveColor("White"), 25.f, 10, 870, 0);
	RenderTextOnScreen(drawMesh, "F8 - Restore health", resourceManager.retrieveColor("White"), 25.f, 10, 840, 0);
	RenderTextOnScreen(drawMesh, "W & S - Cycle Camera", resourceManager.retrieveColor("White"), 25.f, 10, 810, 0);
	RenderTextOnScreen(drawMesh, "3 & 4 - Toggle status render", resourceManager.retrieveColor("White"), 25.f, 10, 780, 0);
	
	if (toggleStatusAndParticles)
	{
		for (int i = 0; i < ListOfCharacters.size(); ++i)
		{
			Vector2 CopyVector;
			Vector2 CopyVector2;

			CopyVector.Set(tpCamera.getPosition().x, tpCamera.getPosition().z);
			CopyVector2.Set(ListOfCharacters[i]->GetPosition().x, ListOfCharacters[i]->GetPosition().z);

			Vector2 Direction = (CopyVector - CopyVector2).Normalized();

			if (!Direction.IsZero())
			{
				m_BillBoard = Math::RadianToDegree(atan2(Direction.x, Direction.y));
			}

			modelStack.PushMatrix();
			modelStack.Translate(ListOfCharacters[i]->GetPosition().x, ListOfCharacters[i]->GetPosition().y + 15.f, ListOfCharacters[i]->GetPosition().z);
			modelStack.Rotate(m_BillBoard, 0, 1, 0);
			modelStack.Scale(2.f, 2.f, 2.f);
			modelStack.PushMatrix();
			modelStack.Translate(-2.5f, 0.f, 0.f);
			RenderText(drawMesh, ListOfCharacters[i]->PrintState(), resourceManager.retrieveColor("White"));
			modelStack.PopMatrix();

			float HPBARSCALE = 5.f;

			modelStack.PushMatrix();
			float newScale = (ListOfCharacters[i]->GetHpPercent() / 100) * HPBARSCALE;

			float theTranslate = 5.0f - (ListOfCharacters[i]->GetHpPercent() / 100) * HPBARSCALE;

			modelStack.Translate(-theTranslate * 0.5f, 2.f, 0.01f);
			modelStack.Scale(newScale, 1, 1);
			Render3DMesh(resourceManager.retrieveMesh("HPCURRENT"), true);
			modelStack.PopMatrix();

			modelStack.PushMatrix();
			modelStack.Translate(0.f, 2.f, 0.f);
			modelStack.Scale(HPBARSCALE, 1, 1);
			Render3DMesh(resourceManager.retrieveMesh("HPMAX"), true);
			modelStack.PopMatrix();

			modelStack.PopMatrix();


		}
	}
}