コード例 #1
0
Hud* HudsManager::createHud(HudAlignment hudAlignment) {
	Hud *hud = new Hud();
	unsigned long hudPosition;
	
	hud->initializeHudText();
	
	if (hudAlignment == HudAlignment::LEFT) {
		this->leftHuds.push_back(hud);
		hud->setPosition(osg::Vec3(10, this->initial_Y_Position, 0));
	} else {
		this->rightHuds.push_back(hud);
		hud->setPosition(osg::Vec3(900, this->initial_Y_Position, 0));
	}
	
	hud->setText("");
	osg::Camera *hudCamera = hud->getHudCamera();
	game->getRoot()->addChild(hudCamera);
	
	
	// update huds positions
	hudPosition = this->leftHuds.size();
	for (Hud* h : this->leftHuds)
		h->setPosition(osg::Vec3(h->getPosition().x(), ((hudPosition--) * 25) + this->initial_Y_Position + 10, 0));

	hudPosition = this->rightHuds.size();
	for (Hud* h : this->rightHuds)
		h->setPosition(osg::Vec3(h->getPosition().x(), ((hudPosition--) * 25) + this->initial_Y_Position + 10, 0));
	
	return hud;
}