#include <vector>
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
class Gaming{
public:
Gaming():Scene_ori(back_ground.clone()),
land(back_land(Rect(Point(0,0),Point(288,back_land.rows))).clone()),
Srows(back_ground.rows),
Scols(back_ground.cols),//
Lcols(back_ground.cols),
Lrows(back_land.rows),
back_land(imread(".//images//land.png")),
back_ground(imread(".//images//bg_night.png")),
pipe_up(imread(".//images//pipe_up.png")),
pipe_down(imread(".//images//pipe_down.png")),
pipe_up_mask(imread(".//images//pipe_up.png",0)),
pipe_down_mask(imread(".//images//pipe_down.png",0)),
title(imread(".//images//title.png")),
title_mask(imread(".//images//title.png",0)),
start_icon(imread(".//images//button_play.png")),
start_icon_mask(imread(".//images//button_play.png",0)),
score(0),
to_add_score(true)
{
for (int i(0); i != 10; ++i)
{
stringstream strm;
strm << 48 + i;
score_number[i] = imread(".//images//font_0" + strm.str() + ".png");
score_number_mask[i] = imread(".//images//font_0" + strm.str() + ".png", 0);
}
int a = 160+ rand() % 160;
bars.push_back(Point(288, a));
bars_pos.push_back(Rect());
bars_pos.push_back(Rect());
}
void bars_clear()
{
to_add_score = true;
score = 0;
bars.clear();
int a = 160 + rand() % 160;
bars.push_back(Point(288, a));
}
Mat Scene_Generate(vector<Rect> &, bool );
void add_score(Mat& background);
private:
vector<Rect> bars_pos;
Mat score_number[10];
Mat score_number_mask[10];
int score;
bool to_add_score;
const Mat start_icon;
const Mat start_icon_mask;
const Mat back_land ;
const Mat back_ground;
const Mat pipe_up;
const Mat pipe_down;
const Mat pipe_up_mask