working game (but bad)
This commit is contained in:
parent
dbb296ff5d
commit
5c65b99604
6 changed files with 89 additions and 12 deletions
|
@ -1,9 +1,13 @@
|
|||
#include "Game.hpp"
|
||||
#include "AudioEmitter.hpp"
|
||||
#include "GameData.hpp"
|
||||
#include "NoteSprite.hpp"
|
||||
#include "NoteTile.hpp"
|
||||
#include "TilePattern.hpp"
|
||||
#include <SFML/Graphics/Color.hpp>
|
||||
#include <SFML/Graphics/RectangleShape.hpp>
|
||||
#include <SFML/System/Vector2.hpp>
|
||||
#include <SFML/Window/Keyboard.hpp>
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
#include <string>
|
||||
|
@ -14,6 +18,21 @@ Game::Game() {
|
|||
assert(mFont.openFromFile("media/Sansation.ttf"));
|
||||
mStatisticsText.setPosition({5.f, 5.f});
|
||||
mStatisticsText.setCharacterSize(10);
|
||||
|
||||
leftPressZone = sf::RectangleShape(sf::Vector2f(50, 10));
|
||||
middlePressZone = sf::RectangleShape(sf::Vector2f(50, 10));
|
||||
rightPressZone = sf::RectangleShape(sf::Vector2f(50, 10));
|
||||
|
||||
leftPressZone.setPosition(
|
||||
sf::Vector2f(NOTE_PLACE_X_POS[0], NOTE_PRESS_HEIGHT));
|
||||
middlePressZone.setPosition(
|
||||
sf::Vector2f(NOTE_PLACE_X_POS[1], NOTE_PRESS_HEIGHT));
|
||||
rightPressZone.setPosition(
|
||||
sf::Vector2f(NOTE_PLACE_X_POS[2], NOTE_PRESS_HEIGHT));
|
||||
|
||||
leftPressZone.setFillColor(sf::Color::Black);
|
||||
middlePressZone.setFillColor(sf::Color::Black);
|
||||
rightPressZone.setFillColor(sf::Color::Black);
|
||||
}
|
||||
|
||||
void generateTilePatternAndMusic(AudioEmitter &audio_emitter) {
|
||||
|
@ -38,6 +57,7 @@ void Game::run() {
|
|||
AudioEmitter audioEmitter = AudioEmitter();
|
||||
generateTilePatternAndMusic(audioEmitter);
|
||||
bool generated = false;
|
||||
|
||||
mWindow.setFramerateLimit(60);
|
||||
while (mWindow.isOpen()) {
|
||||
|
||||
|
@ -55,6 +75,21 @@ void Game::processEvents(AudioEmitter &audioEmitter) {
|
|||
if (event->is<sf::Event::Closed>()) {
|
||||
audioEmitter.audioEnd();
|
||||
mWindow.close();
|
||||
break;
|
||||
}
|
||||
if (const auto *keyPressed = event->getIf<sf::Event::KeyPressed>()) {
|
||||
sf::Keyboard::Scancode key_scan_code = keyPressed->scancode;
|
||||
switch (key_scan_code) {
|
||||
case sf::Keyboard::Scancode::Left:
|
||||
NoteTile::checkPress(audioEmitter.getTime(), NotePlaceEnum::Left);
|
||||
break;
|
||||
case sf::Keyboard::Scancode::Up:
|
||||
NoteTile::checkPress(audioEmitter.getTime(), NotePlaceEnum::Middle);
|
||||
break;
|
||||
case sf::Keyboard::Scancode::Right:
|
||||
NoteTile::checkPress(audioEmitter.getTime(), NotePlaceEnum::Right);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -63,6 +98,9 @@ void Game::update(const sf::Time elapsedTime) {}
|
|||
|
||||
void Game::render() {
|
||||
mWindow.clear(sf::Color::Yellow);
|
||||
mWindow.draw(leftPressZone);
|
||||
mWindow.draw(middlePressZone);
|
||||
mWindow.draw(rightPressZone);
|
||||
NoteTile::update(1.0 / 60, mWindow);
|
||||
mWindow.draw(mStatisticsText);
|
||||
mWindow.display();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue