コード例 #1
0
ファイル: Game.cpp プロジェクト: GalacticPolarBear/Bloons
Entity* Game::MakeBullet(Entity *tower)
{
	//Make a Bullet 
	Entity * toReturn = new Entity();
	toReturn->AddComponent<Sprite>();
	toReturn->AddComponent<Material>()->Program = ProjShader;
	toReturn->GetComponent<Material>()->Textures.push_back(TextureSlot(ProjTexture, 0));
	
	toReturn->GetComponent<Material>()->SetBlendMode(BlendFunc::Linear);
	toReturn->GetComponent<Sprite>()->SetCenteredX(true);
	toReturn->GetComponent<Sprite>()->SetCenteredY(true);
	toReturn->Transform.Scale = (vec3(9, 19, 1));
	

	vec2 traj = tower->GetComponent<Tower>()->CurrTarget->Transform.Position.ToVec2() - tower->Transform.Position.ToVec2();
	traj.Normalize();
	toReturn->AddComponent<Collider>(vec2(9, 19), BULLET);
	//Set its position to the Tower's position
	toReturn->Transform.Position = tower->Transform.Position;
	//Set its bullet rotation
	toReturn->Transform.Rotation = tower->Transform.Rotation;
	toReturn->AddComponent<Bullet>(traj, tower->GetComponent<Tower>()->Damage, tower);
	
	
	//Set its trajectory
	
	
	
	return toReturn;
}
コード例 #2
0
ファイル: Game.cpp プロジェクト: GalacticPolarBear/Bloons
//Create a Tower and set its position to the Mouse Cursor.
Entity* Game::MakeTower(BuildType toBuild)
{
	//Make a Tower 
	Entity * toReturn = new Entity();
	toReturn->AddComponent<Sprite>();
	toReturn->AddComponent<Material>()->Program = TowerShader;
	
	if (toBuild == TOWERRED)
		toReturn->GetComponent<Material>()->Textures.push_back(TextureSlot(TowerRed, 0));
	else
		toReturn->GetComponent<Material>()->Textures.push_back(TextureSlot(TowerBlue, 0));
	
	toReturn->GetComponent<Material>()->SetBlendMode(BlendFunc::Linear);
	toReturn->GetComponent<Sprite>()->SetCenteredX(true);
	toReturn->GetComponent<Sprite>()->SetCenteredY(true);
	toReturn->Transform.Scale = (vec3(50, 50, 1));
	toReturn->Transform.Position = vec3(Input::GetMouseX(), Input::GetMouseY(), 1);
	toReturn->AddComponent<Tower>(toBuild);
		
	return toReturn;
}
コード例 #3
0
ファイル: Object_ss.cpp プロジェクト: freesynapse/2_0
//.......................................................................................
void Object::Initialize()
{
	// initialize type, flags and ptrs
	m_bObjectLoadedRAM = false;
	m_bObjectLoadedGPU = false;
	m_bInitializedGPU = false;
	m_bVerticesGPUupload = false;
	m_bIndicesGPUupload = false;
	m_bTextureGPUupload = false;

	// set geometry parameters
	m_pVertices = NULL;
	m_pIndices = NULL;
	m_texture = TextureSlot();
	m_normalmap = TextureSlot();
	m_nVertices = 0;
	m_nVerticesLeft = 0;
	m_nIndices = 0;
	m_nIndicesLeft = 0;
	m_AABB = AABB3();
	m_objectFlags = OBJECT_FLAGS_NONE;
	m_vColor = Vector4f(0.0f, 0.0f, 0.0f, 1.0f);
	m_mModelMatrix = Matrix4f(MATRIX_IDENTITY);
	m_vWorldPos = Vector3f(0.0f, 0.0f, 0.0f);
	m_vScale = Vector3f(1.0f, 1.0f, 1.0f);
	m_vTranslate = Vector3f(0.0f, 0.0f, 0.0f);
	m_fRotationAngle = 0.0f;
	m_qRotation = glm::fquat(0.0f, 0.0f, 0.0f, 0.0f);
	m_vRotationAxis = Vector3f(0.0f, 1.0f, 0.0f);

	UpdateObjectMatrix();

	// set default render func ptr
	m_pRenderFunc = &Object::RenderIdle;

} // end Object::Initialize()
コード例 #4
0
ファイル: Game.cpp プロジェクト: GalacticPolarBear/Bloons
void Game::MakeAlienWave(int num, int spacing, Path& path)
{
	if (num == 0)
		return;

	for (int i = 0; i < num; i++)
	{
		Entity * newEnt = new Entity();

		newEnt->AddComponent<Sprite>();
		newEnt->AddComponent<Material>()->Program = SpriteShader;
		newEnt->GetComponent<Material>()->Textures.push_back(TextureSlot(SpriteTexture, 0));
		newEnt->GetComponent<Material>()->SetBlendMode(BlendFunc::Linear);
		newEnt->GetComponent<Sprite>()->SetCenteredX(true);
		newEnt->GetComponent<Sprite>()->SetCenteredY(true);
		newEnt->Transform.Scale = (vec3(50, 50, 1));
		newEnt->Transform.Position = vec3(802, 735 + (i * spacing),  (float)i / num + 0.005);
		newEnt->AddComponent<Alien>();
		newEnt->GetComponent<Alien>()->AlienPath.SetPath(path);
		newEnt->AddComponent<Collider>(vec2(50,50), ALIEN);
		MainGroup.AddEntity(*newEnt);
	}
}