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 ){
|
||||||
@ -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