- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课程设计_黄金矿工(提高篇)8
C语言课程设计--黄金矿工
一、实验内容
玩家通过键盘的按键控制矿工抓取金块,将钩子碰触到的金块抓取过来。
要求如下:
游戏的初始界面如下图(一),单机键盘上的空格键进入游戏,进入后界面如图(二),金块的总数是20,大小位置是随机的。
在没有抓取状态下,钩子左右摆动,此时矿工的是静止的。当钩子摆动到一定角度,玩家可以单击键盘上的上下左右键中的下方向键控制矿工伸出长钩,抓取金子,此时矿工是向下摇动转轴。获取到金子往回拉后,矿工是不断转动转轴,知道金子拉动到钩子初始处,矿工恢复静止,钩子继续左右摇摆,直到玩家再次单击向下方向键。
伸出的钩子如果碰触到金子,则钩子和金子一起往回拉,回收的速度根据抓取到的金子的大小变化而变化,金子越大,回拉的速度越慢,反之亦然。如果钩子没有碰触到金子,而是碰触到左右和下的边界,则钩子保持原来的速度往回收。
抓取到的金子拉回到转轴处消失,此时金子数目减少一个。如果玩家将所有金子抓取完,游戏返回到如图(一)的初始界面。
图(一)
图(二)
二、实验指南
实验一 开始实验
【实验任务】
步骤一、打开FunCode,创建一个的C语言项目;
步骤二、导入Goldman模板。
【实验思路】
按实验指导完成。
【实验指导】
打开FunCode,点击“项目”菜单,选择“创建C语言工程”
注意:工程名名称要求字母开头,只能包含字母和数字,且名字中间不能有空格。
点击菜单“项目”中的“导入地图模块”,如图一。跳出一个对话框,选中“Goldman”模板,点击“导入到工程”按钮,如图二。
图 一 图 二
导入成功后的,界面如下图所示:
实验二 单击空格键,开始游戏
【实验内容】
步骤、启动游戏显示“空格开始”,单击空格键进入游戏初始界面。
【实验思路】
系统会自动响应dOnKeyDown函数来响应键盘按下消息,这部分代码实现在main.cpp里。我们要做的就是通过在main.cpp的dOnKeyDown函数里实现我们的代码。当用户单击键盘上的空格键之后,设置GameBegin即“空格开始”精灵不可见。
【实验指导】
首先游戏会有不同的游戏状态,我们设置全局变量g_iGameState,分别用游戏状0 表示游戏结束等待开始状态;游戏状态1表示按下空格键开始,初始化游戏;游戏状态2表示游戏进行中;
有了以上游戏状态的定义,我们就可以将游戏的主流程写出来;由于游戏是一直进行的,所以一下要写在while循环当中:
switch( g_iGameState )
{
// 初始化游戏,清空上一局相关数据
case 1:
{
GameInit();
g_iGameState = 2; // 初始化之后,将游戏状态设置为进行中
}
break;
// 游戏进行中,处理各种游戏逻辑
case 2:
{
// 金子数量大于0的时候,继续游戏
if( g_iGoldCount 0 )
{
GameRun( fTimeDelta );
}
else
{
// 游戏结束。调用游戏结数函数并把游戏状态修改为结束状态
g_iGameState = 0;
GameEnd();
}
}
break;
// 游戏结束/等待按空格键开始
case 0:
default:
break;
};
这是游戏的总体框架,那么我们就来完成这个游戏;
我们已经知道,系统会自动检测键盘的按下消息,即main.cpp里面的dOnKeyDown函数。系统会捕获按下什么键,是否同时按下Alt键或Shift键或Ctrl键,通过dOnKeyDown的参数传递进来,供编程者使用。
键盘的键值我们通过枚举类型给出,其中空格对应的键值为KEY_SPACE,所以当ikey参数的值为KEY_SPACE且游戏的状态为0,即g_iGameState的值为0,说明用户单击了空格键,之后将g_iGameState的值改为1,说明游戏开始,并且把“游戏开始”精灵隐藏掉。
如果是空格键按下,则说明现在游戏开始,说明游戏状态进入1,我们在GameInit中调用dSetSpriteVisible函数将“空格开始”隐藏;这里我们就不在添加代码。
至此,实验二完成,单机空格键,“空格开始”消失,游戏进入初始化状态。
实验三 钩子左右摇摆
【实验内容】
步骤、钩子在等待抓取状态下左右摇摆
【实验思路】
钩子的摆动实际是动画精灵以某个点为中心位置,在某个角度范围来回旋转。在FunCode中,游戏不断刷新屏幕,每次时间为几微秒,每次刷新相应改变精灵的角度,就能达到旋转的效果。
游戏每刷新一次屏幕,while循环执行一次,
您可能关注的文档
最近下载
- 2024新信息科技六年级《第五单元智能种植有方法》大单元整体教学设计[2022课标].docx
- 小升初杨帆多页简历模板.docx VIP
- 级配砂石换填专项施工方案.docx VIP
- 应用写作--启示通知.ppt VIP
- 计算机考试基础及Office应用考试模拟试题及答案.pdf VIP
- 2023年副高(护理学)考试真题卷(含答案)M11D13.docx VIP
- 2023年副高(护理学)考试真题卷(含答案)M11D16.docx VIP
- 计算机应用基础Office试题及答案.doc VIP
- 生产与运作分析第七版史蒂文·纳米亚斯习题答案第6章.docx VIP
- 《护理药理学》教案(教学能力比赛).pdf
文档评论(0)