做游戏,学编程(C语言) 9 贪吃蛇
这个案例给出了14级同学大一时实现的贪吃蛇小游戏,分步骤代码、游戏素材可以从百度云盘下载:http://pan.baidu.com/s/1c1lYKQ
首先可以打开Exe_final目录下的Exe_final.dsw工程文件,编译运行,以下为对应的游戏动图效果:
主要实现内容包括:贪吃蛇移动 、道具判定、加速减速、生命条处理、分数处理、暂停处理、键盘或鼠标操控。
代码中Loop函数主要控制贪吃蛇的移动及每一帧的必须要完成的指令,其中小蛇的移动和转弯是贪吃蛇游戏实现的难点。
假设小蛇初始状态为:
上图左侧是对应游戏数据的二维数组存储状态,右侧为小蛇显示效果,蛇头为1,蛇身依次加1。
要让小蛇移动,首先遍历二维数组所有元素,元素为正 则加1:
对全局变量dir进行判断,比如dir==1 表示方向向右,则在元素2的右方设置为1,并且把最大元素归零:
以上就实现了小蛇向右的移动,向其他方向的移动实现类似。
双人游戏比较简单,在二维数组中实现即可:
Loop函数中除了贪吃蛇的移动,还实现了:减速包的随机出现、加速包的随机出现、血包的随机出现、障碍物的随机出现、苹果的随机出现、小爬虫的移动、无敌,加速,减速的判定。
Game函数是核心判定单元。根据贪吃蛇的移动方向dir的1 2 3 4, 分别对蛇头的右左上下方的元素进行判定:
是-1则吃了苹果,蛇身增长 并加分;
是-2则撞墙了,归零g1 游戏结束;
是-3则吃了葡萄, 蛇身增长 如果(wudi==0)也就是 并非无敌状态 g2减少;
是-4则吃了爱心, g2增加 wudi赋值为wuditime
,使贪吃蛇进入无敌状态 。
吃果子后贪吃蛇的增长,和贪吃蛇的移动差不多,唯一的区别是增长不需要把最大元素归零。
Show函数:
Start函数:
各个参数的初始化、二维数组a的元素初始化、对图片树的输出、分数显示、生命值显示的初始化、生命条的显示、倒计时画面
Interact函数:有两种操作模式 但本质一样都是对方向dir的修改
第一种 键盘 :根据wasd 把dir修改为1(d右)2(a左)3(w上)4(s下)、按p键暂停
第二种 鼠标
:在Loop函数中会计算出蛇头元素的下标it,jt、根据鼠标点击的横坐标m.x 纵坐标m.y修改dir
hello函数
:显示封面及游戏操作 道具使用说明
bye函数
:显示封底及最终分数
fs函数(记分记血系统):对贪吃蛇生命状态的判定和死亡提示
ryj函数
:获取包括鼠标左键在内的任意键
同学实现的代码不是很规范,大家可以先自己尝试实现,再参考网盘上的分步骤代码。
做游戏,学编程(C语言) 9 贪吃蛇相关推荐
- java gui怎么做游戏_Java中关于GUI实现贪吃蛇游戏的简单方法
这篇文章主要介绍了Java GUI编程之贪吃蛇游戏简单实现方法,详细分析了贪吃蛇游戏的具体实现步骤与相关注意事项,并附带demo源码供读者下载参考,需要的朋友可以参考下 本文实例讲述了Java GUI ...
- 视频教程-做游戏学Python-Python语言快速入门-Python
做游戏学Python-Python语言快速入门 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版 ...
- 语言写贪吃蛇墙角符号_从零基础到拥抱人工智能,您的孩子可能就差一个贪吃蛇游戏...
去年寒假档,有一部孩子们喜欢的电影上映. 不知道家长们有没有陪孩子一起看过这部<无敌破坏王2:大闹互联网> 在电影中有一个印象深刻的镜头, 吃豆人.泡泡龙.还有贪吃蛇 他们都因为很久没有客 ...
- 教孩子学编程 python语言版_教孩子学编程 PYTHON语言版 PDF_IT教程网
资源名称:教孩子学编程 PYTHON语言版 PDF 资源目录: 第1章Python基础--认识环境1 1.1认识Python3 1.2用Python编写程序5 1.3运行Python程序5 1.4本章 ...
- 安卓c语言自动补全软件吾爱,C语言实现贪吃蛇小游戏
本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 一.程序实现的原理: 1.构造蛇身:定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置.这样就将移动蛇身的操作转换为 ...
- 【笔记】用vs2017 c语言写 贪吃蛇 小游戏
目录 文章目录 前言 一.贪吃蛇游戏 设计逻辑 二.详细介绍 1.设置界面(界面大小,背景颜色) 2.设置贪吃蛇的身体并显示 3.使之能够移动并能够穿墙 4.添加食物并让蛇吃掉 5.设置背景音乐 完整 ...
- python教孩子学编程,教孩子学编程(Python语言版)
教孩子学编程(Python语言版) 第1 章 Python 基础:认识环境 #NiceHexSpiral.py #运行后,挺奇特,整个作画过程,完全呈现. import turtle colors=[ ...
- 但凡原神有二十树脂,我也不会来学编程(c语言)
但凡原神有二十树脂,我也不会来学编程(c语言)<第一天> 编程小白一只,从今天开始,将在本专栏记录本人学习编程的过程与心得~来自甘肃,普通双非,由于地域影响,想要在计算机方面得到好的出路, ...
- linux贪吃蛇c程序,Linux环境下C语言实现贪吃蛇游戏
Linux环境下C语言实现贪吃蛇游戏 [liul@test snake]$ more snake.c #include #include #include #include #include #def ...
- 贪吃蛇c语言经典程序下载,C语言实现贪吃蛇游戏(单人版)
本文实例为大家分享了C语言实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 相比于第一个:贪吃蛇游戏,功能更加丰富 #include"snake.h" //蛇的移动 void m ...
最新文章
- 数据结构排序学习总结
- 说一说阿里云弹性公网IP那些事
- 直播带货时画质总是太差,你的视频转码方案可能要换了
- mysql5.7无法启动问题
- c语言编译器储存有什么用,C编译器怎么样对内存划分和使用
- mysql 部署到服务器_服务器快速部署--使用Docker部署MySQL
- Silverlight4启动无法调试
- 【Linux】SCP 拷贝命令
- 17届智能车竞赛技术报告 | 常熟理工学院-昆承湖二队
- redis key设计技巧
- php把数据存到cookie,php – 在cookie中存储数组
- android使用百度地图SDK 去掉百度Logo的小技巧
- License之外,社区的规则与潜规则
- python 身份证号码有效性验证
- [洛谷]P3374 【模板】树状数组 1 (#树状数组)
- 超级时尚炫酷快速图文展示PR2021模板MOGRT|AE模板
- 海康、大华等网络摄像头RTSP_Onvif网页无插件直播流媒体服务器EasyNVR鉴权出现跨域问题的解决方法
- Prometheus( 普罗⽶修斯) 监控系统----介绍安装、Grafana出图
- 惊闻苏州GDP总量突破2万亿大关!
- 用c#语言做课程表系统代码,winform用datagridview制作课程表实例