慢羊羊的空间

无为,无我,无欲,居下,清虚,自然

游戏:矿井逃生

游戏说明:

矿井里的电路又出问题了。迅速借助你的头灯,在漆黑的矿井里找到出口逃出去吧。

控制说明:

  • 方向键:移动
  • A/S/D/W:移动
  • 鼠标:控制照射方向
  • F2:重来一局
  • ESC:退出游戏

就不放抓图了,有兴趣的运行一下代码看看效果吧,【点这里下载编译后的 exe 文件】。

以下是全部源代码:

///////////////////////////////////////////////////
// 程序名称:矿井逃生
// 编译环境:Visual C++ 6.0 / 2010,EasyX_20200727
// 作  者:yangw80 <yw80@qq.com>
// 最后修改:2013-11-15
//
#include <easyx.h>
#include <time.h>
#include <
...

火焰效果模拟程序

模拟火焰效果的程序。

执行效果抓图如下:

通过修改色系,本程序可以实现红色火焰、蓝色火焰、绿色火焰三种效果,在 InitFire() 函数中取消相应行注释可以实现不同色系的火焰效果。

完整的源代码如下:

///////////////////////////////////////////////////
// 程序名称:火焰模拟程序
// 编译环境:VC6.0 / VC2010,EasyX_20200727
// 作  者:yangw80 <yw80@qq.com>
// 最后修改:2012-1-21
// PS: 核心算法参考的微软范例,在此感谢。
//
#include <graphics.h>
#include <conio.h>
#include <time.h>

// 宏常量
#define	WIDTH		640
#define HEIGHT		480
#def
...

艺术字系列:冰封的 EasyX

执行效果如下图:

代码间有详细的注释,这里就不多做解释了。

代码如下: 

////////////////////////////////////////////
// 程序名称:艺术字系列:冰封的 EasyX
// 编译环境:Visual C++ 6.0 / 2010,EasyX_20200727
// 程序编写:yangw80 <yw80@qq.com>
// 最后更新:2011-6-20
//
#include <graphics.h>
#include <conio.h>
#include <time.h>


// 定义全局变量
POINT *g_pDst;		// 点集(目标)
POINT *g_pSrc;		// 点集(源)
int g_nWidth;		// 文字的宽度
int g_nHeight;		// 文字的高度
int g_nCount;		// 点集包含
...

自由运动的点(全屏模糊处理的范例)

这是个有趣的程序,同时是一个全屏模糊处理的范例。

其中,点的非直线自由运动的部分,是用的我在高中时候用 QuickBasic 实现的一种简单方法,看到这部分代码有点让人怀念过去。

简单说明一下:

1. 为了使范例更清晰,全屏模糊处理的代码我做了简化,将第一行和最后一行忽略掉了。通过代码可以清晰地看到,所谓全屏模糊,其实就是对每个点与相邻的几个点的颜色做平均处理(可以自己决定每个点的权重)。

2. 这个模糊函数只处理了每个点的上、下、左、右共 5 个点。为了获得不同的效果,可以试试将周围八个点一起处理,或者上、下、左、右方向上的两个点一起处理。

3. 严格来说,每个点在运算时,所使用的左边和上边的点,其实已经不是原来的点了,而是模糊后的点。所以这样的模糊处理对于单个点来说,右边和下边颜色要淡一些。如果需要精确的模糊,可以借助 IMAGE 实现,这里就不再多说了。

4. 延时没有用常用的 Sleep 实现,而是使用的精确延时,详见文章《精确延时的实现》

下面是运行动画的截图:

...