




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 funcode 黄金矿工 include CommonAPI h include stdio h include string h void DrawHookLine int g fGoldBornMinX 0 int g fGoldBornMaxX 0 int g fGoldBornMinY 0 int g fGoldBornMaxY 0 int g iGoldCount 20 int g iGameState 2 int flag 1 float Score 0 f int flagnum 0 char szGotGoldName 20 当前抓到金子的名称 float g fHookRotation 0 f float g fEmptyHookSpeed 35 f float fTimeDelta float g fHookStartPosX 存储钩子的初始 X 位置 float g fHookStartPosY 存储钩子的初始 Y 位置 主函数入口 int PASCAL WinMain HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR lpCmdLine int nCmdShow 初始化游戏引擎 if dInitGameEngine hInstance lpCmdLine return 0 游戏初始化代码 dSetWindowTitle 黄金矿工 g fGoldBornMinX dGetScreenLeft 5 金子左边界 精品文档 2欢迎下载 g fGoldBornMaxX dGetScreenRight 5 金子右边界 g fGoldBornMinY dGetScreenTop 20 金子上边界 g fGoldBornMaxY dGetScreenBottom 5 金子下边界 g fHookStartPosX dGetSpritePositionX GoldHook 获取钩子的初始 X 坐标 g fHookStartPosY dGetSpritePositionY GoldHook 获取钩子的初始 Y 坐标 dSetSpriteCollisionSend goldHook 1 dSetSpriteCollisionReceive goldTemplate 1 const float fRotateSpeed 45 f 摇摆速度 单位 度 秒 int iHookRotToLeft 1 钩子摆动的方向 1 0 float fTimeDelta dGetTimeDelta 引擎主循环 处理屏幕图像刷新等工作 while dEngineMainLoop 获取两次调用之间的时间差 传递给游戏逻辑处理 float fTimeDelta dGetTimeDelta DrawHookLine 执行游戏主循环 if g iGameState 0 float fThisRotate fRotateSpeed fTimeDelta if iHookRotToLeft g fHookRotation fThisRotate if g fHookRotation 180 f g fHookRotation 180 f iHookRotToLeft 0 else g fHookRotation fThisRotate if g fHookRotation 0 f g fHookRotation 0 f iHookRotToLeft 1 dSetSpriteRotation GoldHook g fHookRotation 精品文档 3欢迎下载 else if g iGameState 1 dSetTextValue Score Score 播放拉金块的动作 dAnimateSpritePlayAnimation goldMan GolderManAnimation3 1 获取钩子 X 方向的速度 float fSpeedX dGetSpriteLinearVelocityX GoldHook 获取钩子 Y 方向的速度 float fSpeedY dGetSpriteLinearVelocityY GoldHook 当速度接近为 0 时 即可判定其已到达初始点 if fSpeedX 0 00001f 删除获取的金块 dDeleteSprite szGotGoldName 回拉结束 设定状态为 0 g iGameState 0 if flagnum g iGoldCount 播放挖金者的动作 恢复初始守候动作 dAnimateSpritePlayAnimation goldMan GolderManAnimation2 1 if g iGoldCount 0 g iGameState 0 Score 0 dSetSpriteVisible GameBegin 1 g iGoldCount 20 flag 1 dAnimateSpritePlayAnimation goldMan GolderManAnimation2 1 关闭游戏引擎 dShutdownGameEngine 精品文档 4欢迎下载 return 0 引擎捕捉鼠标移动消息后 将调用到本函数 void dOnMouseMove const float fMouseX const float fMouseY 可以在此添加游戏需要的响应函数 引擎捕捉鼠标点击消息后 将调用到本函数 void dOnMouseClick const int iMouseType const float fMouseX const float fMouseY 可以在此添加游戏需要的响应函数 引擎捕捉键盘按下消息后 将调用到本函数 iAltPress iShiftPress iCtrlPress 分别为判断 Shift Alt Ctrl 当前是否也处于按下状态 比如 可以判断 Ctrl E 组合键 void dOnKeyDown const int iKey const int iAltPress const int iShiftPress const int iCtrlPress 可以在此添加游戏需要的响应函数 if iKey KEY SPACE g iGameState 1 初始化之后 将游戏状态设置为进行中 dSetSpriteVisible GameBegin 0 生成金子 int iLoop 0 循环变量控制 int iSize 4 iPosX 0 iPosY 0 iSize 表示金块大小的变量 if flag for iLoop 0 iLoop g iGoldCount iLoop if iLoop 10 else 生成 4 个大金块 大小为 8 iSize 8 初始化金子精灵实例 char tmpName 生成金块名字 tmpName dMakeSpriteName GoldBlock iLoop dCloneSprite goldTemplate tmpName 设置金块的宽度 dSetSpriteWidth tmpName float iSize 设置金块的高度 dSetSpriteHeight tmpName float iSize 设置金子精灵位置 iPosX dRandomRange g fGoldBornMinX g fGoldBornMaxX iPosY dRandomRange g fGoldBornMinY g fGoldBornMaxY dSetSpritePosition tmpName float iPosX float iPosY flag 0 if g iGoldCount 0 flag 1 g iGoldCount 20 if iKey KEY S 置游戏状态为 2 可用于控制钩子是否摆动 以当前朝向给钩子一个向前的速度 dSetSpriteLinearVelocityPolar GoldHook g fEmptyHookSpeed g fHookRotation 播放挖金者的动作 一个胳膊往下压的动作 dAnimateSpritePlayAnimation goldMan GolderManAnimation1 0 0 表示播放一次 这里胳膊往下压就是一次 精品文档 6欢迎下载 引擎捕捉键盘弹起消息后 将调用到本函数 void dOnKeyUp const int iKey 可以在此添加游戏需要的响应函数 引擎捕捉到精灵与精灵碰撞之后 调用此函数 void dOnSpriteColSprite const char szSrcName const char szTarName 发起者为 GoldHook 接受者含有 GoldBlock 字段 if strcmp szSrcName GoldHook 1 使钩子向初始位置移动 即会拉 dSpriteMoveTo GoldHook g fHookStartPosX g fHookStartPosY g fEmptyHookSpeed 1 复制并保存当前抓取到金块的名称 strcpy szGotGoldName szTarName 发起者为 GoldHook 接受者含有 GoldBlock 字段 根据金子大小 计算钩子的往回收的速度 越大的越慢 算法 之前设置的金子大小为 4 6 8 用 10 减去该大小再除以 10 得到 3 个小数 0 6 0 4 0 2 该小 数乘以空钩子的速度即得到挂接不同金子后的实际速度 float fWidth dGetSpriteWidth szTarName float fSpeed 10 f fWidth 10 f g fEmptyHookSpeed Score fWidth 钩子往初始位置移动 dSpriteMoveTo goldhook g fHookStartPosX g fHookStartPosY fSpeed 1 播放拉金块的动作 dAnimateSpritePlayAnimation goldMan GolderManAnimation1 0 g iGameState 1 flagnum 1 精品文档 7欢迎下载 引擎捕捉到精灵与世界边界碰撞之后 调用此函数 iColSide 0 左边 1 右边 2 上边 3 下边 void dOnSpriteColWorldLimit const char szName const int iColSide if strcmp szName GoldHook 0 碰到边界的为钩子时 同样设置为回拉 只是没有碰到金子 dSpriteMoveTo szName g fHookStartPosX g fHookStartPosY g fEmptyHookSpeed 1 播放拉金块的动作 dAnimateSpritePlayAnimation goldMan GolderManAnimation3 0 g iGameState 1 flagnum 0 void DrawHookLine 首先 从矿工精灵上获取一个缆绳链接点作为绳子的起始点 float fStartX dGetSpriteLinkPointPosX GoldMan 1 float fStartY dGetSpriteLinkPointPosY GoldMan 1 绳子终点在钩子精灵上获取 float f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园消防知识培训资料课件
- 北仑区工装装修知识培训课件
- gyp考试试题及答案
- 魔鬼食物测试题及答案
- 校园安全知识培训课件记录
- 弹丸运动测试题及答案
- 债权融资考试题及答案
- 美团模拟面试题及答案
- 北京网络营销常用知识培训课件
- 非法集资考试题及答案
- 过程经验教训管理流程(含附表)
- 中国透析患者慢性心力衰竭管理指南
- 医院处方笺模板(可根据实际需要修改)
- 《森林与小鸟》教学设计(福建省县级优课)-三年级音乐教案
- 提高口服药准确服用率品管圈课件
- 某公司管控模式与组织结构设计课件
- 患者用药指导全国知识技能竞赛必备考试题库(带答案)
- 高级财务会计-(刘永泽、傅荣主编-)
- 城市轨道交通供电综合自动化技术PPT完整全套教学课件
- 卷扬机吊装方案施工方案
- 部编版小学三年级语文课外阅读练习题100篇及答案
评论
0/150
提交评论