| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 大一C语言期末程序设计——钢琴快 -> 正文阅读 |
|
[游戏开发]大一C语言期末程序设计——钢琴快 |
? ? ? ? 本人目前大二,C语言程序设计是大一下学期学的,暂时还没有学数据结构,C语言中比较深入一点的知识也是浅尝辄止,路过的大佬请多多指教! C语言是一种接近底层的语言,个人认为如果想要用C语言做一个游戏的话还是多运用一些必要的C语言库比较容易实现,所以再开始做项目之前我自学了eaxyx库。本人在接触C语言之前进行过较为系统的Python学习,在学习期间对Python中的pygame库颇感兴趣,在听到C语言期末作业要做一个游戏的时候首先有了‘C语言有没有自己的图形库’之类的疑问,并带着疑问百度搜索,最后在C语言中文网学习了《easyx初级教程》,简单来讲,它的功能就在于可以在C语言环境中进行图形绘制。(easyx的简单使用可以自行百度,太多了,但是建议只学会代码怎么用就好)easyx安装地址https://easyx.cn/ 首先,在做事之前先对自己进行能力定位是我的一大习惯。我要用仅有的编程知识做出一个游戏就要尽可能降低难度,所以我选择了钢琴块。钢琴块的实现的简单之处在于它只需要对一个对象做考虑,也就是随机位置落下的方块。 在整个程序中用到的头文件: #include<stdio.h>//C语言最基本的库所需头文件,不做解释 #include<stdlib.h>//运用链表时所要用到的库所需头文件 #include<graphics.h>//easyx库所需头文件,用于简单的图形绘制 #include<conio.h>//_kbhit()函数所需头文件,用于监听键盘输入,它和scanf()函数最大的区别在于它在进行键盘输入时不需要按回车键
我将屏幕设置成了大致和手机屏幕类似的竖屏,并分为四个区域,之后的方块会在四个区域中的随机区域开始降落。现在的方块只能在第一区域降落一次,并且方块暂时用填充小球代替
创建并初始化链表:
随机区域的实现: 这个for循环的意思是一共会出现51个方块,定义整型变量a并赋予0-3之间的一个随机数,然后用开关函数根据随机数a给整型变量xl赋上X坐标的值,定义整型变量xl而不是直接给x赋值的原因是我认为后面用q->x=xl;更容易理解,当然在开关函数中直接用q->x=75;的方式赋值也是可以的。 然后是用_kbhit()函数进行键盘输入的接收和游戏是否能继续或结束的判断 方块下落到一定高度范围时通过按下所对应区域的按键消灭他,否则方块触底时将会判定为游戏失败。这里我是通过判断Y坐标(高度)实现的,660-720是游戏可以继续的判定范围,当方块落入此区域时按下对应按键时即可消灭方块(p->state=1)。其中_kbhit()意为判断按下了按键,定义整型变量put赋予接收按键对应的数值,接收数值由_getch()函数实现,72是键盘←的对应数值,80,75,77分别对应键盘↓,→,↑的数值。 这里有个问题,就是程序对键盘的命令非常迟钝,经常读取不到键盘命令,所以我一般都是狂按键盘,无解。 游戏结束的判定: 当方块触底且方块未被消灭(p->state==0)时游戏结束(清屏)。 增加亿点细节 增加游戏难度,随已循环次数增加方块下落速度也增加,最大值为30ms 给方块换个造型: 这里比较简单,就是用line()函数画几条线,游戏是否继续或结束的判定用方块的下边界作为判定 最后,我想要加上游戏得分的显示功能,不过我不知道怎样才能在屏幕上输出变量的值,所以作罢。如果想要再增加游戏难度还可以增加一个新的结构体,然后增加新的一条链表,在同一个循环里运行两条链表,最后用延时效果就可以实现了,但是VS崩溃了,本人才疏学浅,暂时无法解决。 完整代码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 14:19:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |