推箱子游戏

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

经典的推箱子游戏。

游戏中使用了图片。

【点击这里下载完整项目】

以下是项目的代码(需要图片才能编译执行):

///////////////////////////////////////////////////////////

// 程序名称:推箱子

// 编译环境:Visual C++ 2010/6.0,EasyX_2011惊蛰版

// 程序编写:自然向日葵 1164359890@

// 最后更新:2012-1-21

//

////////////////////////////////////////////////////////////

//游戏中用0表示空地,1表示人物,2表示箱子,3表示目的地,6表示围墙

//

//画素材的x1和y1都是反的,因为x表示行,但是画出来x表示列,y同

////////////////////////////////////////////////////////////

#include //EasyX_2011惊蛰版(绘图库)

#include

#include

int x, y; //人物坐标

int loop; //控制是否重新开始

IMAGE img[8]; //定义IMAGE对象数组来保存图片

/*******************函数声明*******************/

void blank(int x1, int y1); //画空地

void man (int x1, int y1); //画皮卡丘

void box (int x1, int y1); //画箱子

void dest (int x1, int y1); //画目的地

void man1 (int x1, int y1); //画在目的地上的皮卡丘

void box1 (int x1, int y1); //画在目的地上的箱子

void wall (int x1, int y1); //画围墙

void man1 (int x1, int y1); //画在胜利的皮卡丘

void print(int a[15][15]); //把数组里的全画出来

void move (int a[15][15], int x1, int y1); //移动

void find (int a[15][15]); //找人物坐标

int win (int a[15][15]); //判断游戏是否结束

int play (int a[15][15]); //游戏过程

void play1 (void); //游戏关卡

/*******************函数定义*******************/

//画空地

void blank(int x1, int y1)

{

putimage(y1, x1, &img[0]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画皮卡丘

void man(int x1, int y1)

{

putimage(y1, x1, &img[1]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画箱子

void box(int x1, int y1)

{

putimage(y1, x1, &img[2]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画目的地

void dest(int x1, int y1)

{

putimage(y1, x1, &img[3]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画在目的地上的皮卡丘

void man1(int x1, int y1)

{

putimage(y1, x1, &img[4]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画在目的地上的箱子

void box1(int x1, int y1)

{

putimage(y1, x1, &img[5]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画围墙

void wall(int x1, int y1)

{

putimage(y1, x1, &img[6]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//画胜利的皮卡丘

void man2(int x1, int y1)

{

putimage(y1, x1, &img[7]); // 在坐标 (y1, x1) 位置显示 IMAGE 对象

}

//把数组里的全画出来

void print(int a[][10])

{

for(int x1 = 0; x1 < 10; x1++)

for(int y1 = 0; y1 < 10; y1++)

putimage(60 * y1, 60 * x1, &img[a[x1][y1]]);

}

//移动

void move(int a[][10], int x1, int y1)

{

if(a[x + x1][y + y1] == 0 || a[x + x1][y + y1] == 3)

{

a[x][y]--;

a[x + x1][y + y1]++;

for(int i = 0; i < 60; i++)

{

blank(60 * x + i * x1, 60 * y + i * y1); /

man(60 * x + (i + 1) * x1, 60 * y + (i + 1) * y1);

Sleep(1);

}

if(a[x][y] == 3)

dest(60 * x, 60 * y);

x += x1;

y += y1;

if(a[x][y] == 4)

man1(60 * x, 60 * y);

}

else if((a[x + x1][y + y1] == 2 || a[x + x1][y + y1] == 5) && (a[x +

2 * x1][y + 2 * y1] == 0 || a[x + 2 * x1][y + 2 * y1] == 3))

{

a[x][y]--;

a[x + x1][y + y1]--;

a[x + 2 * x1][y + 2 * y1] += 2;

for(int i = 0; i < 60; i++)

{

相关文档
最新文档