见缝插针 C语言作业

分享17级同学大一上学期用C语言实现的见缝插针。分步骤代码、图片音乐素材、可执行程序可从百度网盘下载:

链接:https://pan.baidu.com/s/1dblHmOD2z0cUiJk3XSquMA

提取码:m3ee

一、设计思路

1.1 总体想法

设计一个单机双人版的“见缝插针”游戏,在规定的一段倒计时内,比较对战双方插入的针的数量,针的数量较多的为获胜者

1.2 step by step 基本步骤实现

1. 首先是实现页面的显示,确定图片的位置(包括背景图的大小样式,上下两个弓箭以及中间的大圆和上下两个小圆,两个玩家的得分统计)

2. 实现上下的针通过操作从弓箭处发射并移动到中间的大圆处(打算用结构体处理,数组)

3. 使发射的针插入中间的大圆,并使针跟随中间的大圆一起转动

4. 用数组分别保存两个玩家发射的所有针的横纵坐标

5. 判断新发射的针是否撞上了之前成功发射的其他针,以及判断积分是否成功

6. 在游戏界面上实现积分的增加

7. 增加开始和结束的页面,并实现各页面之间的切换

8. 增加时间倒计时系统,增加背景音乐、插针音乐和插入失败的音乐

9. 最后是美化游戏页面,让整个游戏看起来更加美观

*关于针的旋转想法(主体):关于实现针的独立旋转的思路,我们开设了一个判断其状态的标志量数组,并在与用户无关的更新中记录针每个对应状态的横纵坐标,之后将其传送到显示画面去显示刷新

二、功能描述

2.1 代码总体功能

玩家先是进入开始界面,点1开始新游戏,点2阅读游戏规则,点3退出游戏。进入游戏主界面后,玩家一通过按空格、玩家二通过S键操作,将针从弓的地方发射,如若没碰到其他已插入的针,则针插入成功,得分加一,并随中间的大圆一起转动,若碰到其他的针,则插入失败,得分并不增加,倒计时结束后,显示胜者。

2.2 各块函数的功能

double angle[100]; //旋转的角度,不同的针对应同一时间段的不同坐标

void startMenu(); //游戏开始界面

void pauseMenu(); //游戏暂停界面

void endMenu() //游戏结束界面

void startup(); //开始游戏

void countdown(); //计时

void show(); // 显示绘制

void updateWithoutInput(); //与输入无关的更新

void updateWithInput(); //与输入有关的更新

void gameover(); //游戏结束

三、分步骤实现方法

3.1 重点

1. 实现多个针的显示

2. 实现按键后 小球状态的改变

3. 实现各个页面间的切换

4. 使游戏变得美观 ,简洁大方

5. 增加背景音乐等等

6. 增加倒计时的功能

7. 针碰撞的代码实现,以及得分的加减

3.2 难点

1.关于如何实现针的显示及针的碰撞判定的难点

2.如何实现玩家一玩家二的得分的顺利积分,而不会出现小bug

3.关于实现玩家一与玩家二球上数字的移动与显示

4.倒计时的显示及实现,最后结束页面的判定与结束游戏

5.多张页面间的切换

四、体会与总结

在实现页面的切换时,我们的一些界面因为图片格式的问题而显示不出来,最后反复地更改格式和大小才将其显示出来。所以以后在写代码时,我们要学会去从根本分析,这个功能为什么实现不了,是因为代码本身的问题还是因为图片格式这些的小问题。

在实现针的显示旋转,针碰撞的判定时,出现了一些思路上的错误及漏洞,而让任务迟缓无法推进,在今后的学习生活中要继续加强思维逻辑性的锻炼与训练。

总体来说,这次课程大作业充分体会到了游戏思路开始便制定的重要性,我们一开始就制定了我们要实现的功能及大概思路,让我们在后面逐一实现我们所需的功能时能够有条不紊的分步骤慢慢解决,从而最终做成最终目标,其次便是合作的重要性与交流的高效性,最后便是遇到问题常百度,看教程,善于去学习借鉴。

2017级C语言大作业 - 见缝插针相关推荐

  1. c语言倒计时不影响进程_2017级C语言大作业 - 见缝插针

    分享17级同学大一上学期用C语言实现的见缝插针.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1dblHmOD2z0cUiJk3XSqu ...

  2. 2017级C语言大作业 - 小小冒险岛

    小小冒险岛 C语言作业 分享17级同学大一上学期用C语言实现的小小冒险岛.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1MRNnZAM ...

  3. 2017级C语言大作业 - 奇怪的大冒险

    奇怪的大冒险 C语言作业 分享17级同学大一上学期用C语言实现的奇怪的大冒险.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1nR-Sa ...

  4. 2017级C语言大作业 - 水果忍者

    水果忍者 C语言作业 分享17级同学大一上学期用C语言实现的水果忍者.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1i-e_MVChl ...

  5. 2017级C语言大作业 - 元气骑士

    元气骑士 C语言作业 分享17级同学大一上学期用C语言实现的元气骑士.凉屋工作室制作的元气骑士游戏是一款像素风射击游戏,其新颖的操作方式吸引了众多玩家,随时"拿得起,放得下"的操作 ...

  6. 2017级C语言大作业 - 合金弹头

    合金弹头 C语言作业 分享17级同学大一上学期用C语言实现的合金弹头.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1cm01uEDNo ...

  7. 2017级C语言大作业 - 气球塔防

    气球塔防 C语言 分享17级同学大一上学期用C语言实现的气球塔防.分步骤代码.图片音乐素材可从百度网盘下载: 链接:https://pan.baidu.com/s/1tN-ErS7q7SEgibvsZ ...

  8. 2017级C语言大作业 - 密室逃生

    密室逃生 C语言 分享17级同学大一上学期用C语言实现的密室逃生.分步骤代码.图片音乐素材可从百度网盘下载: 链接:https://pan.baidu.com/s/1Se8aPaQYa1xy93q3d ...

  9. 2010C语言添加背景图片_2019级C语言大作业 - 火柴人试炼之地

    C语言大作业 - 火柴人试炼之地https://www.zhihu.com/video/1200491618794606592 分享19级同学大一上学期用C语言实现的火柴人试炼之地.分步骤代码.图片音 ...

最新文章

  1. ES6-Promise对象
  2. 超过100本的linux免费书籍
  3. ielts indicator 考前准备 checklist
  4. linux脚本转换exe,Ps1 To Exe(powershell脚本转换EXE工具) V3.0.6 官方版
  5. 非阻塞connect
  6. java integer 包_java之学习基本类型包装类的概述及Integer类的概述和构造方法
  7. android 快速布局,快速实现android的协同布局CoordinatorLayout
  8. 山师计算机学硕分数线,2020山东师范大学考研复试分数线已公布
  9. Django中datetime类型的相关操作(记录一下)
  10. swipe.js文档及用法
  11. android.mk 添加v7_Android.mk引入第三方jar包和so库文件的方法
  12. ODE手册(6)关节类型和相关函数(下)
  13. Android自定义动画之实现3D翻转的动画
  14. 41. PHP MySQL 连接数据库
  15. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作
  16. android盒子多个DLNA冲突,说说DLNA、AirPlay 、Miracast那点事
  17. LinkPdf转换器-批量PDF转Word|PDF合并|压缩|拆分
  18. 微信apk微信直接用手机默认浏览器打开 IOS跳转App Store(苹果商店)打开
  19. C4D渲染保存多通道psd格式,图层都是线性减淡模式,oc多通道图层都是线性简单模式
  20. 穿越火线老是卡在正在连接服务器,修复cf经常提示网络出现异常与服务器断开连接的方法...

热门文章

  1. Available Packages检索框里显示为nothing to show的解决办法
  2. 目标检测——Anchor-Based算法的学习笔记
  3. TeamViewer——Ubuntu系统上的安装和卸载
  4. IT职场人生系列之十七:入职(高手篇)
  5. SharePoint 2007:该表单无法显示,因为会话状态不可用。
  6. Git清除用户名和密码
  7. Extjs6(六)——增删查改之查询
  8. mysql 优化技巧
  9. 【Java小项目】简单的天气预报
  10. 34-指针与二维数组