name menu
This commit is contained in:
		
							parent
							
								
									338df7af3d
								
							
						
					
					
						commit
						4978e8ab18
					
				| @ -183,6 +183,8 @@ public: | |||||||
| 
 | 
 | ||||||
| 	PlayMode showInitialMenu(); | 	PlayMode showInitialMenu(); | ||||||
| 	PlayMode showDeathMenu(); | 	PlayMode showDeathMenu(); | ||||||
|  | 	string nameMenu(playerID pID); | ||||||
|  | 
 | ||||||
| 	unsigned getScreenHeight() const; | 	unsigned getScreenHeight() const; | ||||||
| 	unsigned getScreenWidth() const; | 	unsigned getScreenWidth() const; | ||||||
| 	 | 	 | ||||||
| @ -205,7 +207,7 @@ public: | |||||||
| 	* @param[] | 	* @param[] | ||||||
| 	* @fn | 	* @fn | ||||||
| 	*/ | 	*/ | ||||||
| 	void askPlayerNameMenu(playerID pID, string& name) const; | 	void askPlayerNameMenu(playerID pID, string& name); | ||||||
| 
 | 
 | ||||||
| 	// y will be negative sometimes, so not unsigned
 | 	// y will be negative sometimes, so not unsigned
 | ||||||
| 	 | 	 | ||||||
|  | |||||||
| @ -69,9 +69,9 @@ void PixelManager::drawPlayer(unsigned x, unsigned width, const nsGraphics::RGBA | |||||||
| 	window << Triangle(Position(15+width+x,720-PLAYER_HEIGHT/2), Position(15+width*2+x,720-PLAYER_HEIGHT/2), Position(15+width+x,720-PLAYER_HEIGHT*0.9), color); | 	window << Triangle(Position(15+width+x,720-PLAYER_HEIGHT/2), Position(15+width*2+x,720-PLAYER_HEIGHT/2), Position(15+width+x,720-PLAYER_HEIGHT*0.9), color); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void PixelManager::askPlayerNameMenu(playerID pID, string& name) const { | void PixelManager::askPlayerNameMenu(playerID pID, string& name) { | ||||||
| 	cout << "ask for player " << (pID+1) << endl; | 	cout << "ask for player " << (pID+1) << endl; | ||||||
| 	name = "Thomas"; | 	name = nameMenu(pID); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void PixelManager::drawMissile(const Position& baseVector, unsigned width, const nsGraphics::RGBAcolor& color) const { | void PixelManager::drawMissile(const Position& baseVector, unsigned width, const nsGraphics::RGBAcolor& color) const { | ||||||
| @ -140,7 +140,7 @@ void PixelManager::drawGodFace(int y, bool angry) const { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void PixelManager::displayText(const Position& pos, const string& text,const nsGraphics::RGBAcolor& color) const { | void PixelManager::displayText(const Position& pos, const string& text,const nsGraphics::RGBAcolor& color) const { | ||||||
| 	window << Text(pos, text, color); | 	window << Text(pos, text, color, GlutFont::GlutFonts::BITMAP_TIMES_ROMAN_24); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void PixelManager::drawFPS(unsigned fps) const { | void PixelManager::drawFPS(unsigned fps) const { | ||||||
|  | |||||||
| @ -30,6 +30,7 @@ void PixelManager::displayMenu(const Position& pos, Menu& currentMenu){ | |||||||
| 	startFrame(); | 	startFrame(); | ||||||
| 	drawMenuBackground(); | 	drawMenuBackground(); | ||||||
| 	drawSprite(logo,Position(100,50)); | 	drawSprite(logo,Position(100,50)); | ||||||
|  | 	displayText(Position(1150,700), "version 1.0.0"); | ||||||
| 	size_t margin = 0; | 	size_t margin = 0; | ||||||
| 	size_t cpt = 0; | 	size_t cpt = 0; | ||||||
| 	for(string& value : currentMenu.entries ){ | 	for(string& value : currentMenu.entries ){ | ||||||
| @ -47,7 +48,7 @@ PlayMode PixelManager::showInitialMenu(){ | |||||||
| 	const unsigned yOffset = getScreenWidth() / 2 - 90; | 	const unsigned yOffset = getScreenWidth() / 2 - 90; | ||||||
| 	chrono::milliseconds waitTime = chrono::milliseconds(100); | 	chrono::milliseconds waitTime = chrono::milliseconds(100); | ||||||
| 	while(true){ | 	while(true){ | ||||||
| 		displayMenu(Position(yOffset,xOffset),initial);	 | 		displayMenu(Position(yOffset,xOffset),initial); | ||||||
| 		// go down	
 | 		// go down	
 | ||||||
| 		if (window.isPressed({'s', false})){ | 		if (window.isPressed({'s', false})){ | ||||||
| 			++initial.currentValue; | 			++initial.currentValue; | ||||||
| @ -75,6 +76,50 @@ PlayMode PixelManager::showInitialMenu(){ | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | string PixelManager::nameMenu(playerID pID){ | ||||||
|  | 	string name (6,'A'); | ||||||
|  | 	size_t currentSelected = 0 ; | ||||||
|  | 	chrono::milliseconds waitTime = chrono::milliseconds(100); | ||||||
|  | 	while (true){ | ||||||
|  | 		startFrame(); | ||||||
|  | 		drawMenuBackground(); | ||||||
|  | 		displayText(Position(600,100),"Nom du joueur "+ string(1,pID)); | ||||||
|  | 		for (size_t i = 0; i < name.size(); ++i){ | ||||||
|  | 			displayText(Position(600+30*i,200),string(1,name[i]),(i == currentSelected) ? nsGraphics::KRed : nsGraphics::KWhite); | ||||||
|  | 		} | ||||||
|  | 		endFrame(); | ||||||
|  | 		// go down	
 | ||||||
|  | 		if (window.isPressed({'s', false})){ | ||||||
|  | 			++name[currentSelected]; | ||||||
|  | 			if (name[currentSelected] > 90) name[currentSelected] = 65; | ||||||
|  | 			this_thread::sleep_for(waitTime); | ||||||
|  | 		}  | ||||||
|  | 		// go up
 | ||||||
|  | 		if (window.isPressed({'z', false})){ | ||||||
|  | 			--name[currentSelected]; | ||||||
|  | 			if (name[currentSelected] < 65) name[currentSelected] = 90; | ||||||
|  | 			this_thread::sleep_for(waitTime); | ||||||
|  | 		} | ||||||
|  | 		// go right	
 | ||||||
|  | 		if (window.isPressed({'d', false})){ | ||||||
|  | 			++currentSelected; | ||||||
|  | 			if (currentSelected > name.size()-1) currentSelected = 0; | ||||||
|  | 			this_thread::sleep_for(waitTime); | ||||||
|  | 		} | ||||||
|  | 		// go left	
 | ||||||
|  | 		if (window.isPressed({'q', false})){ | ||||||
|  | 			if (currentSelected == 0) currentSelected = name.size()-1; | ||||||
|  | 			else --currentSelected; | ||||||
|  | 			this_thread::sleep_for(waitTime); | ||||||
|  | 		} | ||||||
|  | 		// select option
 | ||||||
|  | 		else if (window.isPressed({13, false})) | ||||||
|  | 		{ | ||||||
|  | 			this_thread::sleep_for(waitTime); | ||||||
|  | 			return name; | ||||||
|  | 		} | ||||||
|  | 	}  | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| PlayMode PixelManager::showDeathMenu() { | PlayMode PixelManager::showDeathMenu() { | ||||||
| 	vector<string> entries {"main menu","exit"}; | 	vector<string> entries {"main menu","exit"}; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user