首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言推箱子源码分享,C语言兴趣视频教程,C语言编程,C语言可视化编程

C语言推箱子源码分享,C语言兴趣视频教程,C语言编程,C语言可视化编程

最终效果

视频教程

源码分享

头文件与全局变量:

#include

#include

#include

//地图的大小

const int rows = 7;

const int cols = 8;

//地图的初始化

//0空地,1:墙,3:目的地 4:箱子,5人

int map[7][8] =

{

1, 1, 1, 1, 1, 1, 1, 1,

1, 0, 0, 0, 0, 0, 0, 1,

1, 0, 3, 4, 4, 3, 0, 1,

1, 0, 1, 0, 0, 1, 0, 1,

1, 1, 1, 0, 0, 0, 1, 1,

1, 0, 5, 0, 0, 0, 0, 1,

1, 1, 1, 1, 1, 1, 1, 1

};

//背景,墙,空地,箱子,人物,目的地,箱子到达目的地

IMAGE backImg, wall, blank, box, people, end, dbox;

加载游戏资源:

//加载资源

void loadImage()

{

//背景

loadimage(&backImg, "background.jpg", 64 * cols, 64 * rows);

loadimage(&wall , "wall.jpg", 64 , 64 );

loadimage(&blank, "blank.jpg", 64 , 64 );

loadimage(&box, "box.jpg", 64 , 64 );

loadimage(&people , "people.jpg", 64, 64);

loadimage(&end, "end.jpg", 64 , 64 );

loadimage(&dbox, "dbox.jpg", 64, 64);

}

初始化游戏界面:

void initGame()

{

//求出转换坐标

int x, y;

for (int i = 0; i

{

for (int j = 0; j

{

//求出贴图的坐标

x = j * 64;

y = i * 64;

switch (map[i][j])//就是C语言中的 选择结构里面的

{

case 0://空地

putimage(x, y, &blank);

break;

case 1://墙

putimage(x, y, &wall);

break;

case 3://目的地

putimage(x, y, &end);

break;

case 4://箱子

putimage(x, y, &box);

break;

case 5://人物

putimage(x, y, &people);

break;

case 7://箱子和目的一起7=4+3

putimage(x, y, &dbox);

break;

case 8:

putimage(x, y, &people);

break;

}

}

}

}

玩游戏----按键处理---抽象到具体:

//按键处理---当作字符串处理---ASCII码

//上下左右键

//方向键:上:72 下:80 左:75 右:77

void playGame()

{

char cUser;//用来接收用户的按键

int i = 0, j = 0;

while (1)//死循环去玩游戏

{

//确定人物的位置 ---找数组中等于5那个地方,或者等于8

for (i = 0; i

{

for (j = 0; j

{

if (map[i][j] == 5 || map[i][j] == 8)

break;//只能跳出一层循环

}

if (map[i][j] == 5 || map[i][j] == 8)

break;//只能跳出一层循环

}

initGame();

cUser = _getch();//使用不可见输入

switch (cUser)

{

//左边

//方向键:上:72 下:80 左:75 右:77

case 75://键盘上的方向键

case 'a':

case 'A':

//往左走一下 i,j-1 判断这个地方能不能走

//能不能走 :是空地和目的地

if (map[i][j - 1] == 0 || map[i][j - 1] == 3)

{

//原来的位置人走了,值-5

map[i][j] = map[i][j] - 5;

map[i][j - 1] += 5;

}

else if (map[i][j - 1] == 4 || map[i][j - 1] == 7)

{

if (map[i][j - 2] == 0 || map[i][j - 2] == 3)

{

map[i][j - 2] += 4;

map[i][j - 1] += 1;//-4+5

map[i][j] -= 5;

}

}

break;

case 77://键盘上的方向键右:77

case 'd':

case 'D':

if (map[i][j +1] == 0 || map[i][j + 1] == 3)

{

//原来的位置人走了,值-5

map[i][j] = map[i][j] - 5;

map[i][j + 1] += 5;

}

else if (map[i][j + 1] == 4 || map[i][j + 1] == 7)

{

if (map[i][j + 2] == 0 || map[i][j + 2] == 3)

{

map[i][j + 2] += 4;

map[i][j + 1] += 1;//-4+5

map[i][j] -= 5;

}

}

break;

case 72://键盘上的方向键上:72

case 'W':

case 'w':

if (map[i - 1][j] == 0 || map[i - 1][j] == 3)

{

//原来的位置人走了,值-5

map[i][j] = map[i][j] - 5;

map[i - 1][j] += 5;

}

else if (map[i - 1][j] == 4 || map[i - 1][j] == 7)

{

if (map[i - 2][j] == 0 || map[i - 2][j] == 3)

{

map[i - 2][j] += 4;

map[i - 1][j] += 1;//-4+5

map[i][j] -= 5;

}

}

break;

case 80://键盘上的方向键

case 'S':

case 's':

if (map[i + 1][j] == 0 || map[i + 1][j] == 3)

{

//原来的位置人走了,值-5

map[i][j] = map[i][j] - 5;

map[i + 1][j] += 5;

}

else if (map[i + 1][j] == 4 || map[i + 1][j] == 7)

{

if (map[i + 2][j] == 0 || map[i +2][j] == 3)

{

map[i + 2][j] += 4;

map[i + 1][j] += 1;//-4+5

map[i][j] -= 5;

}

}

break;

//判断是否赢了 ---留给在做的同学作业

}

}

}

主函数:

int main()

{

loadImage();

initgraph(64 * cols, 64 * rows);

playGame();

getchar();

closegraph();

return 0;

}

好了,今天的分享就到这里结束咯

更多精彩:

C语言超级玛丽菜单模块制作源码,别样的switch,C语言趣味学习

C语言视频,C语言速成,C语言拼图游戏

C语言手把手教学,C语言推箱子,C语言兴趣教程

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171231A0NXXK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券