小球进框 C语言作业
分享20级同学大一上学期用C语言(及少量C++)实现的小球进框游戏。由于同学们刚学了三个月的编程,实现还不够完善,工程代码、图片音乐素材可以从百度网盘下载:
链接:https://pan.baidu.com/s/1gcjDdn8HY373TcUSyrdC7Q
提取码:7q33
1 设计思路
该程序功能的主体设计参考了网页小游戏“炮弹进框”(Cannon Strike),通过C语言编程进行实现。其中应用了EasyX插件作为辅助工具,力求最大程度地还原游戏功能及特色(如小球的下落及碰撞效果),以提升玩家的游戏体验,增强游戏的趣味性。同时,我们也对其中部分内容进行了创新和优化,使各界面尽可能简洁美观,并增加了多个交互界面(如选关,暂停,存档),为玩家提供良好的视觉效果,和更人性化的操作要求。玩家可通过点击鼠标实现基本的游戏操作。
2 功能描述
游戏按照由易到难的顺序设计关卡,为了增加游戏的可玩性,我们每一关都导入了新的元素,以此逐步激发玩家的游戏兴趣和挑战激情。玩家可根据提示点击对应文字进入关卡,游戏中通过点击鼠标左键进行发射小球,使小球在空中碰撞或者躲避挡板和障碍物后落入框中,框中小球数量达到需要的数量即可过关。游戏过程中可随时暂停、存档、退出、重新开始,也可以选择进入任意已解锁的关卡。
2.1 定义结构体和变量
在代码开头,我们定义了关于小球参数的结构体和游戏中所要用到的全局变量,并进行了必要的初始化。
2.2 初始化函数
初始化函数为startup(),是为游戏的进行做一些提前准备。具体体现为:
- 2.2.1 初始化画布
用initgraph()函数开辟了画面,并将背景设为白色。
- 2.2.2 导入文件
导入了游戏中所需要的图片及背景
- 2.2.3 循环播放背景音乐
2.3 游戏主界面函数
游戏主界面函数为Startmenu(),该函数功能为显示游戏主界面并通过代码:
if (MouseHit()) // 如果有鼠标消息
{
m = GetMouseMsg(); // 获得鼠标消息
}