72 lines
1.3 KiB
C++
72 lines
1.3 KiB
C++
#ifndef LD52_HARVEST_FOOD_CUTS_GAME_H_
|
|
#define LD52_HARVEST_FOOD_CUTS_GAME_H_
|
|
|
|
// standard library includes
|
|
#include <array>
|
|
#include <bitset>
|
|
#include <random>
|
|
|
|
// third party includes
|
|
#include <raylib.h>
|
|
|
|
class Game {
|
|
public:
|
|
Game();
|
|
|
|
void do_update();
|
|
|
|
void screen_resized();
|
|
|
|
private:
|
|
void update_impl();
|
|
void draw_impl();
|
|
|
|
void reset(bool wasGameOver);
|
|
|
|
std::default_random_engine re;
|
|
std::uniform_int_distribution<unsigned int> dist;
|
|
std::string scoreString;
|
|
std::string highScoreString;
|
|
Texture2D spriteSheet;
|
|
std::array<Sound, 7> nicecut;
|
|
std::array<Sound, 7> ohno;
|
|
Music music;
|
|
unsigned long long score;
|
|
unsigned long long highScore;
|
|
/*
|
|
* 0 - score dirty
|
|
* 1 - is blinking
|
|
* 2 - happy
|
|
* 3 - fruit dirty
|
|
* 4 - cut has happened
|
|
* 5 - sad
|
|
* 6 - relativeCutPos is set
|
|
* 7 - audio loaded
|
|
* 8 - is music playing
|
|
*/
|
|
std::bitset<32> flags;
|
|
float areaSizeRatio;
|
|
float currentArea;
|
|
unsigned int currentFood;
|
|
float blinkTimer;
|
|
float cutTimer;
|
|
float cutTimerRateInc;
|
|
float ratio;
|
|
float width;
|
|
float height;
|
|
float offsetX;
|
|
float offsetY;
|
|
float cutPos;
|
|
float relativeCutRatio;
|
|
float splitX;
|
|
float splitY;
|
|
float splitAngle;
|
|
float splitDX;
|
|
float splitDY;
|
|
float splitDAngle;
|
|
float postCutTimer;
|
|
float audioNoticeTimer;
|
|
};
|
|
|
|
#endif
|