-
Notifications
You must be signed in to change notification settings - Fork 0
/
MenuPrincipal.cpp
128 lines (107 loc) · 3.58 KB
/
MenuPrincipal.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: MenuPrincipal.cpp
* Author: gabrielascurra
*
* Created on 27 de mayo de 2018, 11:55
*/
#include <unordered_map>
#include <iostream>
#include "MenuPrincipal.h"
#include "PantallaJuego.h"
#include "ConstantesGlobales.h"
#include "Menu.h"
using namespace std;
MenuPrincipal::MenuPrincipal() {
}
int MenuPrincipal::Run(sf::RenderWindow &App) {
bool running = true;
int itemSeleccionado = 0;
vector<Asteroide> asteroides;
sf::Texture fondo;
sf::Sprite sprite;
sf::Texture texturaAsteroide;
sf::Text titulo;
sf::Text tituloSinglePlayer;
sf::Text tituloConfig;
sf::Text tituloSalir;
sf::Font font;
App.setFramerateLimit(60);
App.setMouseCursorVisible(false);
fondo.loadFromFile("Imagenes/back.png"); //cargo la imagen de la carpeta
sprite.setTexture(fondo); //le seteo la textura
//seteo el tamaño del fondo
sprite.setOrigin(anchoResolucion / 15, altoResolucion / 5);
//musica y sonnidos
musicaFondo.openFromFile("musica/wyver9_ArcadeTitle.wav"); //Agregar credito a wyver9 pendiente
musicaFondo.setLoop(true);
musicaFondo.play();
musicaFondo.setVolume(50);
// Creamos un SoundBuffer
sf::SoundBuffer buffer;
sf::SoundBuffer buffer2;
//Cargamos un archivo en el buffer
if (!buffer.loadFromFile("musica/selectNoise.wav")) {
return EXIT_FAILURE;
}
if (!buffer2.loadFromFile("musica/Menu Selection Click.wav")) {
return EXIT_FAILURE;
}
//Creamos un sonido
sf::Sound cambiarSeleccion;
sf::Sound seleccionar;
// Le asignamos el buffer
cambiarSeleccion.setBuffer(buffer2);
seleccionar.setBuffer(buffer);
// establecemos el volumen
cambiarSeleccion.setVolume(100);
seleccionar.setVolume(100);
//finMusica y sonidos
if (!texturaAsteroide.loadFromFile("Imagenes/asteroideGrande.png")) {
}
ConfigurarTexto(font, titulo, tituloSinglePlayer, tituloConfig, tituloSalir, "Asteroids", "Juego individual", "Controles","Salir");
ConfigurarTamanoTexto(titulo, tituloSinglePlayer, tituloConfig,tituloSalir, 56, 36, 36);
ConfigurarPosicionTexto(titulo, tituloSinglePlayer,tituloConfig, tituloSalir, 0);
while (running) {
sf::Event event;
while (App.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
return (-1);
}
}
if (asteroides.size() <= 10) {
Asteroide asteroide = Asteroide(texturaAsteroide,0);
asteroides.push_back(asteroide);
}
for (int i = 0; i < asteroides.size(); i++) {
}
App.clear();
App.draw(sprite);
for (int i = 0; i < asteroides.size(); i++) {
asteroides[i].verificarExistencia(i, asteroides);
asteroides[i].Mostrar(App);
asteroides[i].ActualizarPosicion();
}
App.draw(titulo);
App.draw(tituloSinglePlayer);
App.draw(tituloConfig);
App.draw(tituloSalir);
App.display();
//Este bloque de codigo hace que el menu sea navegable con las flechas
SeleccionarOpcion(App,sprite,itemSeleccionado, tituloSinglePlayer, tituloConfig,tituloSalir, running,cambiarSeleccion);
}
return -1;
}
void MenuPrincipal::OpcionUno(sf::RenderWindow &App,bool &running) {
running=false;
musicaFondo.stop();
PantallaJuego p1;
p1.Run(App);
}
void MenuPrincipal::OpcionTres(){
std::exit(-1);
}