[C++] 纯文本查看 复制代码 #include <graphics.h>//包含EGE的头文件
#include <time.h>//包含随机数,时间函数
#include<bits/stdc++.h>
using namespace std;
int block[40][30]={0};
//int width =400;
//int height =600;
//int num=0;
//int count1,temp=0xffff;
//int time_count=0;
//int mousePosX = -1, mousePosY = -1;//鼠标位置
//mouse_msg msgRecord = { 0 };//鼠标结构体初始化
struct snake_2
{
int x;
int y;
int color;
};
struct snake_1{
char direct;
int len;
int vx;//x向速度
snake_2 body[1000];
}snake;
//float randx(float min,float max)
//{
// float r =(((float)rand())/32767)*(max-min)+min;
// return r;
//}
void startup()//初始化 函数
{
//cout<<"请输入总人数(不大于1000):";
//cin>>num;
srand(time(0));//随机种子函数
snake.direct='d';
snake.vx=20;
snake.len=4;
for(int i=0;i<snake.len;i++)
{
snake.body[i].x=20-i;
snake.body[i].y=15;
}
initgraph(800,600); //初始化图形界面
setcolor(RED); //设置画图线为红色
setbkcolor(WHITE);//设置背景颜色为白色
setfillcolor(RED);//设置填充颜色为红色
setfont(25,0,"幼圆");//(字体高度,字体宽度(为0即为自适应),字形)设置字体为25,幼圆字体
setbkmode(TRANSPARENT); //设置文字背景色为透明(默认为有背景色)
}
void snake_move()
{
for(int i=snake.len;i>0;i--)
{
snake.body[i].x=snake.body[i-1].x;
snake.body[i].y=snake.body[i-1].y;
}
switch(snake.direct)
{
case 'w':snake.body[0].y=snake.body[1].y-1;
snake.body[0].x=snake.body[1].x;
break;
case 's':snake.body[0].y=snake.body[1].y+1;
snake.body[0].x=snake.body[1].x;
break;
case 'd':snake.body[0].x=snake.body[1].x+1;
snake.body[0].y=snake.body[1].y;
break;
case 'a':snake.body[0].x=snake.body[1].x-1;
snake.body[0].y=snake.body[1].y;
break;
}
}
void update() //更新函数
{
if(kbhit())
{
snake.direct=getch();
snake_move();
}
}
void draw() //绘制小球
{
for(int i=0;i<40;i++)
for(int j=0;j<30;j++)
{
setfillcolor(WHITE);
bar(i*20,j*20,(i+1)*20,(j+1)*20);
}
for(int i=0;i<snake.len;i++)
{
setfillcolor(hsv2rgb(10*i%360, 1, 1));//设置填充颜色 参数(颜色,饱和度,明亮度)
bar(snake.body[i].x*20,snake.body[i].y*20,(snake.body[i].x+1)*20,(snake.body[i].y+1)*20);
}
Sleep(10);
cleardevice();
// fillellipse(mousePosX, mousePosY, ball[0].radius, ball[0].radius); //画一个实心圆
//
// for(int i=1;i<=num;i++)
// {
// setfillcolor(RED);
// fillellipse(ball[i].x, ball[i].y, ball[i].radius, ball[i].radius); //画一个实心圆
// }
// //xyprintf(20,20,"距离:%d",temp);//格式化输出文字
// xyprintf(20,20,"计时:%d",time_count/1000);//格式化输出文字
// Sleep(10);
// time_count+=10;
}
int main()
{
startup();//初始化
while(1)
{
draw();//绘制小球
update(); //更新数据
}
setfont(100,0,"幼圆");
xyprintf(10,200,"GAMEOVER");//格式化输出文字
getch();
return 0;
}
|