This commit is contained in:
serk 2017-01-20 23:13:36 +01:00
parent f1fbf74bc4
commit 06878adc7e
5 changed files with 37 additions and 16 deletions

View file

@ -7,6 +7,9 @@
#include <assert.h>
#include <iostream>
#include <string>
#define MARGEERR 0.30f
#define BLACKVALUE 0.00025f
#define ASSERT(expression) do \
{ \
if(!(expression)) { \

View file

@ -1,7 +1,7 @@
#include "compas.hpp"
Compas::Compas() {
spaceTime = 0;
spaceTime = 1;
isPress = false;
}
@ -9,7 +9,7 @@ void Compas::start() {
if (not isPress) {
std::cout << "start" << std::endl;
isPress = true;
spaceTime = 0;
spaceTime = 1;
notes = std::vector<int>();
}
}
@ -17,7 +17,7 @@ void Compas::start() {
void Compas::add() {
if (isPress) {
notes.push_back(spaceTime);
spaceTime = 0;
spaceTime = 1;
std::cout << "add" << std::endl;
}
}
@ -32,7 +32,7 @@ void Compas::end() {
}
}
void Compas::incriseTime() {
void Compas::incraeseTime() {
++spaceTime;
}
@ -40,11 +40,16 @@ int Compas::get (int i) const {
return notes[i];
}
int Compas::size() const {
return notes.size();
}
bool Compas::operator ==(const Compas& d) const{
int n = notes.size();
if (n != d.size()) return false;
for (int i = 0; i < n; ++i) {
float diff = ((float) (std::abs(notes[i] - d.get(i))))/((float) (notes[i]));
if (diff > margeErr) return false;
if (diff > MARGEERR) return false;
}
return true;
}

View file

@ -4,24 +4,22 @@
#include <vector>
#include <iostream>
#include <cmath>
#include <commons.hpp>
static const float margeErr = 0.80f;
class Compas
{
class Compas {
private:
bool isPress;
int spaceTime;
std::vector<int> notes;
int get(int i) const;
int size() const;
public:
Compas();
void start();
void add();
void end();
void incriseTime();
int get(int i) const;
void incraeseTime();
bool operator ==(const Compas& d) const;
};

View file

@ -3,6 +3,7 @@
MyGame::MyGame() {
_state = GameState::menu;
std::cout << "in menu" << std::endl;
compas2 = compas = Compas();
}
MyGame::~MyGame() {
@ -10,6 +11,8 @@ MyGame::~MyGame() {
// Main game loop
void MyGame::update(float deltaTime, sf::RenderWindow*window) {
// std::cout << deltaTime << std::endl;
if (deltaTime > BLACKVALUE) compas.incraeseTime();
sf::Event event;
while(window->pollEvent(event)){
switch (event.type) {
@ -18,8 +21,18 @@ void MyGame::update(float deltaTime, sf::RenderWindow*window) {
break;
case (sf::Event::KeyPressed):
if(event.key.code == sf::Keyboard::Escape)
// Exit the game like this
Game::i()->isRunning = false;
Game::i()->isRunning = false; // Exit the game like this
if(event.key.code == sf::Keyboard::C)
compas.start();
if(event.key.code == sf::Keyboard::Space)
compas.add();
break;
case (sf::Event::KeyReleased):
if (event.key.code == sf::Keyboard::C) {
compas.end();
std::cout << (compas == compas2) << std::endl;
compas2 = compas;
}
break;
case (sf::Event::MouseMoved):
case (sf::Event::MouseButtonPressed):

View file

@ -1,13 +1,15 @@
#ifndef MYGAME_HPP
#define MYGAME_HPP
#include "game.hpp"
#include "compas.hpp"
class MyGame : public Game{
public:
MyGame();
virtual ~MyGame();
private:
Compas compas, compas2;
GameState::gameState _state;
virtual void update(float deltaTime, sf::RenderWindow *window) final override;
virtual void draw(sf::RenderWindow *window) final override;