8年C++开发经验多强?10分钟C++实现打砖块小游戏!

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第1张图片
image

天,没救的教材,今日居然有人问我 EasyX 怎么写游戏

这一看就知道是上个世纪的教材,我就想问,就不能更新一下么

好了不多说开始写代码

下面是小编整理好的一套C/C++资料,加小编C/C++学习群825414254,获取系统性学习C/C++的学习资料

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第2张图片
image

60帧速

关闭画图

结束

效果

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第3张图片
image

首先实现的是砖块类

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第4张图片
image

唔,没什么要说,无非就是保存坐标、大小和颜色,其他的可以无视,毕竟我要做的只是一个简单的demo

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第5张图片
image
8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第6张图片
image

创建后砖块后马上绘制砖块

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第7张图片
image

来看看弹力球,它有一个碰撞检测的函数,以及是否在 Y 轴 碰撞的函数

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第8张图片
image

如果移动就先擦除当前位置的球,然后再画上去

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第9张图片
image

移动的时候对 左、上 、右边框进行判断,如果碰撞就反射

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第10张图片
image

把矩形碰撞向外扩大半径的距离,这样就只需要判断坐标是否在扩大后的矩形内就可以了

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第11张图片
image

当前球是否在垂直范围内

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第12张图片
image

来看看输入类,这两个都是静态函数,keycode记录了当前按下的键

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第13张图片
image

对游戏初始化

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第14张图片
image

移动后判断位置是否大于屏幕Y轴,如果是游戏失败

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第15张图片
image

碰撞检测(唔碰撞如果想优化可以使用四叉树存储)如果是在垂直坐标碰撞就反转Y轴

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第16张图片
image

迭代检测碰撞,如果碰撞砖块就把砖块删除,如果没有砖块了,直接胜利

因为用的迭代,当删除后 it 后面的就是未知,所以直接跳出

最后一行检测的是底下的滑条

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第17张图片
image

更新输入后检测

如果输入的是 ← 就向左移动,否则如果是→就向右移动

8年C++开发经验多强?10分钟C++实现打砖块小游戏!_第18张图片
image

你可能感兴趣的:(8年C++开发经验多强?10分钟C++实现打砖块小游戏!)