《从零开始的C++游戏开发》系列教程 金牌收录

相信有很多小伙伴是因为想要制作属于自己的游戏才开始接触编程的,但是对于大多数人而言,从纯粹的编程语言的学习到游戏作品的创作之间是存在知识体系的断层的,本系列教程着重于面向编程小白,从零开始深入浅出地讲解游戏开发过程中所需的概念和技术,力求每一位跟随学习的小伙伴都可以自主完成相对较高完成度的游戏作品。

有趣小游戏之俄罗斯方块 铜牌收录

这是我以前写的一个俄罗斯方块小游戏,里面用到的 C++ 特性并不多。游戏主要分成了两个类来实现:Game 和 Block,分别用来实现游戏逻辑和单独的俄罗斯方块,但主要的游戏逻辑放到了 main 函数中实现。这样,每个类分工明确,就实现了俄罗斯方块游戏。代码简单,里面的每个游戏逻辑都值得初学者分析和学习

使用 EasyX 实现的学生成绩管理系统 银牌收录

这是一个使用 C++ 和 EasyX 绘图库实现的学生成绩管理系统,里面包含了查看学生、搜索学生、添加学生等操作。简单地封装了一下界面,使得程序可以添加按钮、表格等控件,在细节方面处理得也比较到位。代码中运用到了一些类、继承、多态等面向对象特性,值得初学者学习。

Photo Editor 铜牌收录

寒假过半的时候,我突发奇想写一个图片编辑器出来,经过半个月的折腾写出来这个 Photo Editor,代码不算优良,仅供参考

无限循环的几何 铜牌收录

做一个旋转的立体几何,这个立体几何为三个相互嵌套着的正方体,让这三个大小不一的正方体分别绕着不同的轴线旋转。 1.初始时的就是一个正视图为正方形中心在原点的正方体,称之为初始状态。 2.调整正方体使其两个顶点以及中心在 Z 轴上,此时正方体的正视图为正六边形,也就是展示状态。 3.在旋转的时候,需要将正方体调整回初始状态,旋转完毕后再调整为展示状态。 4.从三维直角坐标系中左手系的来说,最外围的正方体沿着 Y 轴转动,中间的正方体沿着 XOZ 平面中 x+z=0 轴线转动,最内的正方体沿着 XOZ 平面中 x-z=0 轴线转动。

刮刮乐(掩码图的范例) 银牌收录

这个程序模拟了刮刮乐的刮卡操作,按下鼠标左键并移动可以刮开刮卡层。刮卡操作是通过掩码图实现的,一张隐藏的待刮开背景图,一张掩码图。刮卡的时候,是在黑色的掩码图上画线,显示的时候,通过掩码图将背景图显示出来。

[视觉错觉] 隐藏的爱心 铜牌收录

这是一个有趣的视觉错觉程序。在看似整齐的方格图像当中,利用图像的细微差距,使这张图片看上去突出来一颗爱心。但是认真去看这颗心的时候,却难以找到心的边缘。

探索之路 铜牌收录

一个群里的大佬做的 DOS 版我的世界让我想到了这个游戏,后面去看了看 Terraria 的视频,学习了下,做了个极其简陋的沙盒游戏

开发环境:VS2019 + EasyX_20210730

游戏说明:

一个类似于二维版我的世界和泰拉瑞亚的沙盒游戏,你可以建造属于你的一片天地

(但因为目前方块过少,效果极其单调。。)

WASD 键:移动

Q 键:打开制作页面,再次按下返回

E 键:打开背包页面,再次按下返回

R 键:查看角色属性

ESC:设置页面(可调整为观察模式、普通模式,查看当前坐标)

大键盘1键:保存!!

制作页面:鼠标滚轮选择目标制作物品(部分物品需在工作台或熔炉旁才能制作)

背包页面:鼠标选中背包物品后拖动至使用栏便可更换使用栏物品

目前版本

...

合成立方体 (模仿) 铜牌收录

游戏介绍

在 4399 上面看到一个很有趣的小游戏:合成立方体(游戏原地址)。

游戏中,玩家需要通过所给的形状去尽可能拼凑出完整的一行一列,然后完整的行列会增加分数,一旦所给的形状无法被塞下,游戏结束。非常简单的游戏,我用了 EasyX 去复原了一下。

游戏运行截图如下:

游戏源码下载

点击这里下载游戏完整源代码

数字拼图游戏 银牌收录

这是一个简易的拼图游戏,一共有 15 个数字方块,将其一行行的排列为 1~15 即可完成。游戏会记录下完成拼图的时间。我想说的是,很多时候,精彩的游戏不一定非要用图片。将游戏的功能和手感都做好,游戏一样好玩。所以我就做了这个拼图游戏当作例子。

视觉错觉艺术 铜牌收录

一、 视觉错觉效果图如下

二、思想

先画小球从左到右排放,然后再到下一行继续重复上一个过程。

三、完整代码如下

///////////////////////////////////////////////////
// 程序名称:视觉错觉艺术图
// 编译环境:VS2019, EasyX_20200902
// 作  者:梦萤花火
// 最后修改:2021-1-24
//
#include <graphics.h>
#include <conio.h>

int x;								// X轴坐标
int y;								// y轴坐标
int g_multiples = 0;				// 倍数:作用是对弧度角进行改变
float g_PI = 3.1415927;				// 圆周率
float g_radianAngle;				// 起始角的弧度


// 实施画单个完整小球的函数
void DrawCe
...