#include
#include<opencv2/opencv.hpp>
#include
using namespace cv;
using namespace std;
enum Dir{
UP,DOWN,LEFT,RIGHT
};
char input,key;
int key_demo(){
while(1){
cin>>input;
key=input;
}
}
#define N 1000
struct Coordinate{
public:
int x;
int y;
};
class Snake{
public:
int num;
//void key_demo(Mat& src);
int dir=key;
int size;
int speed=10;
struct Coordinate szb[N];
}snake;
//class Snake snake;
void game_init(){
snake.size=3;
snake.speed=10;
snake.dir= RIGHT;
for(int i=0;i<snake.size;i++) {
snake.szb[i].x = 40-10*i;
snake.szb[i].y = 10;
cout<<"x= "<<snake.szb[i].x<<"y= "<<snake.szb[i].y<<endl;
}
}
void move(){
for(int i=snake.size-1;i>0;i--){
snake.szb[i].x=snake.szb[i-1].x;
snake.szb[i].y=snake.szb[i-1].y;
}
switch (snake.dir) {
case 72:case 'w':case'W':case UP:{snake.szb[0].y-=10;break;}
case 80:case's':case'S':case DOWN:{snake.szb[0].y+=10;break;}
case 75:case'a':case'A':case LEFT:{snake.szb[0].x-=10;break;}
case 77:case'd':case'D':case RIGHT:{snake.szb[0].x+=10;break;}
}
}
Mat src;
void game_draw() {
//Mat src;
src = Mat();
src.create(600, 1200, CV_8UC3);//A function to resize a window
Mat out(src.size(), src.type(), Scalar(255, 0, 0));//全白图
Rect rect(0, 0, 1200, 600);//左上坐标(x,y)和矩形的长(x)宽(y)
cv::rectangle(src, rect, Scalar(255, 255, 255), -1, LINE_8, 0);
//circle(src, Point(src.cols/ 2, src.rows / 2), 30, Scalar(0, 0, 255));// draw a circle
imshow("src",src);
waitKey(0);
}
void snake_draw(){
for(int i=0;i<snake.size;i++) {
circle(src, Point(snake.szb[i].x, snake.szb[0].y), 5, Scalar(0, 0, 255), -1);// draw a circle
imshow("src", src);
waitKey(100);
}
//imshow("src", src);
//waitKey(100);
}
int main(){
//snake.szb[];
game_init();
game_draw();
while(1) {
game_draw();
snake_draw();
move();
}
}