当前位置: 首页 > news >正文

什么值得买网站模版做展示网站

什么值得买网站模版,做展示网站,如何在分类信息网站做推广,青海网站建设策划C语言大作业 - 火柴人试炼之地https://www.zhihu.com/video/1200491618794606592分享19级同学大一上学期用C语言实现的火柴人试炼之地。分步骤代码、图片音乐素材、可执行程序可以从百度网盘下载#xff1a;链接#xff1a;https://pan.baidu.com/s/1XelHD8GVnXfR8coAYOAC9w …C语言大作业 - 火柴人试炼之地https://www.zhihu.com/video/1200491618794606592分享19级同学大一上学期用C语言实现的火柴人试炼之地。分步骤代码、图片音乐素材、可执行程序可以从百度网盘下载链接https://pan.baidu.com/s/1XelHD8GVnXfR8coAYOAC9w 提取码dbu31 设计思路本游戏参考了网络上的同名游戏并通过EasyX插件用C语言编写实现玩家通过鼠标进行游戏界面中的选择通过键盘输入进行游戏主干的操作并尽可能使界面更加美观更加符合人性化操作要求并且加入存档功能和外置游戏数据前者目的为提高游戏体验后者目的为方便游戏关卡内容升级。2 功能描述游戏主体基本功能就是接受玩家的鼠标和键盘输入并做出相应的反应实现界面选择和游戏功能。其分部分介绍如下2.1 初始化初始化函数为startup()函数其基本功能有一下几点1.初始化画布initgraph()函数而且为了避免玩家在游戏过程中关闭窗口造成无法存档我在初始化画布时添加了相应的参数禁用了关闭按钮和最小化按钮使游戏在运行时不会被意外关闭。2.导入并播放音乐。因为考虑到游戏风格我并不打算在游戏添加人物活动的音效所以只有重复播放的背景音乐。3.导入所有所需要的图片。4.初始化所有变量。5.防止在加载图片时出现长时间黑屏显示加载界面。2.2 读取游戏进度读取游戏进度为readGameStageFromFile()函数用于读取存档并且在读取失败时默认将游戏进度置为1然后返回。2.3 读取游戏存档读取游戏存档为readGameDataFromFile(int num)函数通过接收传入的指定关卡读取相应的关卡并且在读取失败时提醒并退出游戏。2.4 写入游戏进度写入游戏进度为writeGameStageToFile(int num)函数接收目前的关卡状态即游戏进度并写入存档。该函数在执行exit(0)前执行。2.5 欢迎界面欢迎界面为welcomeUI()函数将图片序列依次输出显示其重点为遇到键盘输入或鼠标点击时能跳过因此其中的主要部分为判断。2.6 作者声明作者声明为poweredByUI()函数强制输出作者信息以声明作者创作权。2.7 主界面主界面为mainPageUI()函数显示游戏的选择主界面其分为背景图片序列显示和文字和按钮显示为了提供比较美观的游戏界面我去查询了EasyX的帮助文档了解了旋转图片的函数使标题文字可以旋转提高美观性而对于按钮通过变量控制坐标使其在鼠标移动上去时产生抖动效果提高美观性。2.8 游戏选择界面游戏选择界面为chooseGameUI()函数其分为两个部分第一部分为询问是否读取上一次游戏的存档界面并采用和主界面类似的界面美观设计第二部分为游戏关卡选择通过gameRecord变量的信息来输出相应的关卡选择图案并且进行一定的美观设计当鼠标移上去时颜色发生变化然后在点击后改变gameStage变量以进入相应的关卡。2.9 主游戏界面主游戏界面为gameUI()函数用于输出游戏中物体其通过几个标记变量来判断输出不同的人物状态除此之外通过maps中储存的地图信息来显示地图。2.10 主游戏操作输入主游戏操作输入为gameInput()函数为了使游戏体验更加流畅我使用了异步输入GetAsyncKeyState()函数并且同时兼容了ASDW和方向按键以提升玩家体验。每个按键中操作除了坐标改变外还有相应标记变量的改变。此外函数重点为人物跳跃落地判断此处我通过判断当前坐标对每个方块的宽度取余以对应到maps数据中用了判断。而且为了游戏效果更佳逼真我采用了重力加速度的计算方法来让人物有加速下落的效果。2.11 暂停界面暂停界面为pauseUI()函数其界面设计与读取存档界面统一并采用一样的按键美化方法。2.12 游戏结束界面游戏结束界面为endGameUI()函数其界面设计与暂停界面和读取存档界面统一并采用一样的按键美化方法。在点击确认的情况下清除相应的数据将游戏进度写入存档并安全退出。2.13 主函数主函数仅为对各种函数的调用并通过while(1)来实现不断显示而界面切换是通过switch来判断stage数据以进入相应的函数。3 实现过程中的重点和难点3.1 chooseGameUI界面中按钮显示异常问题难点在chooseGameUI中由于按键有不同类型因此其判断是分开进行的结果在初期调试时发现只有第一部分按钮有动态效果其他按钮无反应经过反复分析我发现在这函数的一次执行中有多个并列的if(MouseHit())语句而MouseHit()对鼠标情况的读取总是使程序进入第一部分的按钮判断中而后面的MouseHit()都被第一个MouseHit()阻塞导致对后面的按钮判断不能被执行。解决方法为加入一段语句使后面的判断进入条件共用一个MouseHit()函数。代码如下int mFlag 0; if (MouseHit()) {mFlag 1;m GetMouseMsg(); }后面的判断都使用mFlag而不是MouseHit()。3.2 游戏CPU占用过高引起的低配置电脑运行卡顿问题难点由于游戏中使用了while(1)相当于程序在死循环而为了游戏的流畅效果不能直接使用Sleep()函数所以程序全程都在对CPU进行高占用而不同帧数对数据处理时间不同直接的无限循环就导致了刷新帧率有巨大波动影响游戏效果且过度消耗电脑资源。在程序优化前游戏程序在任意界面下都几乎占满一个CPU核心数据为i7-9750H处理器在连接电源情况下保持4.2GHz左右的时钟频率工作下测得而我通过查询找到了一个MyTimer.h的自定义库可直接调用实现非阻塞式的延时从而统一刷新帧率对游戏实现优化。在程序优化后游戏程序在任意界面下都可以实现低占用率在电脑省电模式下的极端测试游戏程序不会占用一个CPU核心的50%以上数据为i7-9750H处理器在不接通电源下开启极限省电模式保持0.9GHz左右的时钟频率工作下测得。3.3 存档问题重点我们的游戏离不开存档和数据读取功能因此对文件操作要求较高因此我加入了许多对于文件操作的异常情况的处理如存档文件无法打开时游戏进度自动归零地图数据无法打开时游戏报错提醒等在这里我还使用了MessageBox函数此外为了防止玩家意外按到关闭按钮退出而丢失游戏进度数据我还禁用了窗口的关闭按钮。4 感悟此次大作业中诚然知识的要求很重要但是我感觉我收获最多的是自主学习自主纠错的能力程序谁都能写但是对于一些细节的东西整体框架的整洁度逻辑是否合理是否规范才是最重要的地方。在本次作业中有多处体现了这中思维的重要性如对于每个界面结束时界面残余数据的清除置零MouseHit()的冲突与干扰还有人物运动与显示的逻辑这些都是考验。而查询帮助文档和用法是我的另一大收获编程里面东西很多如果只靠别人说难以学深更多的就是依靠自己学习自己查询帮助文档。总之大作业让我获益匪浅。
http://www.yutouwan.com/news/437120/

相关文章:

  • 网站ftp查询wordpress哪个版本稳定
  • 免费素材库网站湛江cms建站系统
  • 郴州高端网站建设国外html5特效网站
  • 德州哪里有学做网站的上线了做的网站可以登陆
  • 大足区城乡建设投资集团网站中国设计网字体
  • 网站后台更新的内容出不来小程序开发费用一般多少钱
  • 好看的网站 你明白吗服装网站建设发展状况
  • 平面素材网站哪个最好企业网站如何建设
  • 做网站那种布局好可信网站认证有用吗
  • 上海市建设网站温州网站建设公司电话
  • 电子商务网站的重要性产品策划方案怎么做
  • 网站开发公司erp潍坊 优化型网站建设
  • 如何给网站做右侧导航建设摩托车报价大全
  • 网站建设属于会计哪个科目短网址api
  • 夏天做啥网站能致富网站建设专业性的评估
  • 求个a站南京建设网
  • 汕头响应式网站教程企业建网站租用服务器好还是买一个好
  • asp网站镜像代码用js做网站阅读量
  • 保定投递网站建设蒙特网设计公司
  • 如何识别网站建设最新百度关键词排名
  • wordpress建的网站全屏背景网站如何做到自适应
  • 重庆网站建设制作设计公司哪家好中企动力 做网站 怎么样
  • 深圳筑造建设有限公司网站兰州网站建设加王道下拉
  • 单位网站制作费用报价单筑方装饰口碑怎么样
  • 临清网站建设公司免费字体设计网站
  • 网页设计网站值得推荐网站内地图位置怎么做
  • 做百度推广需要自己有个网站吗鹤山网站建设
  • 建设网站的申请信用卡分期付款软件开发岗位介绍
  • 怎么编辑网站后台怎样弄网站
  • 可以做任务的网站有哪些视频网站 flash h5