73 lines
1.8 KiB
C++
73 lines
1.8 KiB
C++
#include "mygame.hpp"
|
|
|
|
MyGame::MyGame() {
|
|
_scene = GameScene::menu;
|
|
_scenes = std::vector<Scene*>(SCENE_NUM);
|
|
_menu = new Menu;
|
|
_scenes[GameScene::menu] = _menu;
|
|
_scenes[GameScene::inGame] = _combat;
|
|
_scenes[GameScene::help] = _menu;
|
|
_scenes[GameScene::credits] = _menu;
|
|
std::cout << "in menu" << std::endl;
|
|
}
|
|
|
|
MyGame::~MyGame() {
|
|
delete _menu;
|
|
delete _combat;
|
|
}
|
|
|
|
MyGame* i(){
|
|
}
|
|
|
|
void MyGame::changeScene(GameScene::gameScene n){
|
|
_scene = n;
|
|
if(_scenes[_scene] == NULL){
|
|
if(_scene == GameScene::inGame){
|
|
_combat = new Combat;
|
|
_scenes[_scene] = _combat;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Main game loop
|
|
void MyGame::update(float deltaTime, sf::RenderWindow*window) {
|
|
// std::cout << deltaTime << std::endl;
|
|
sf::Event event;
|
|
while(window->pollEvent(event)){
|
|
switch (event.type) {
|
|
case (sf::Event::Closed):
|
|
Game::i()->isRunning = false;
|
|
break;
|
|
case (sf::Event::KeyPressed):
|
|
if(event.key.code == sf::Keyboard::Escape)
|
|
// Exit the game like this
|
|
Game::i()->isRunning = false;
|
|
break;
|
|
case (sf::Event::MouseMoved):
|
|
case (sf::Event::MouseButtonPressed):
|
|
case (sf::Event::MouseButtonReleased):
|
|
|
|
switch(_scene){
|
|
case(GameScene::menu):
|
|
//std::cout << "still in menu" << std::endl;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
_scenes[_scene]->updateEvents(event);
|
|
}
|
|
|
|
// do shit
|
|
_scenes[_scene]->update(deltaTime,window);
|
|
}
|
|
|
|
void MyGame::draw(sf::RenderWindow*window) {
|
|
//a e s t h e t i c s
|
|
window->clear(sf::Color::Black);
|
|
// draw shit
|
|
_scenes[_scene]->draw(window);
|
|
window->display();
|
|
}
|