分享代码 快乐编程

一起学习,一起进步,从分享代码开始~

游戏:大丰收(含有 VC6 游戏源码 和 完整论文)(by 杨盼)

喜庆丰收,这是一款锻炼玩家反应能力的游戏,游戏中玩家通过控制上和左右键控制可爱的小猴子在地面上跳跃或者是平行移动,来接取天空中飘落的水果。接到不同的水果会得到不同的分数,桃子 10 分,西瓜 20 分,菠萝 30 分,接到炸弹扣 40 分,接不到水果也会扣 10 分,当扣分达到 500 游戏结束(扣分只计算没接到水果),当得分到达 500 会进入下一关,右侧会显示最高得分玩家的用户名和分数,游戏中可以点击暂停键,暂停,再次点击游戏开始,按空格键也可以暂停游戏,在按任意键开始,点击结束会关闭游戏,不保存游戏信息,正常游戏结束,会将游戏信息保存。

游戏附带有完整的 VC6 源代码,以及完整的游戏资源(图片和音效),并附有原作者写的论文。

游戏运行截图如下:

完整的游戏源代码请【点击这里下载】

...

拼图 2.0(by Redman)

经典的拼图游戏。

采用 c++ 编写,主要使用到了两个类,分别是 GameFrame 和 Picture。

GameFrame 负责游戏界面的初始化和原始信息的绘制;Picture 负责图片的切割,图片位置的初始化,通关条件判断,控制整个游戏正确运行。

另外这次还修改了鼠标位置与图片的定位算法,同时图片位置初始化由正确的通关位置移动而来,所以能保证拼图游戏绝对有解,不需要使用复杂的数学公式来判断。

我的一点心得:在这个版本之前,我还写过一个版本,玩法不一样,所以开始没考虑拼图是否有解,以为只要通过移动就能得到全部想要的结果。界面也不好看,说实话,这次这个界面,我觉得勉强还能接受,没有找到那种能让我眼前一亮的渐变颜色。通过这个游戏的设计我学会了怎样切割图片,怎样快速的定位,更熟练的使用 easyx 提供的 API 函数,对于 c++ 语言本身,并没有使用到继承与多态还有泛型以及相��的知识,所以是熟练一下以前学过的知识吧。个人觉得 c++ 真的是一门非常优秀的语言。

游戏运行截图如下:

...

实现水波纹显示效果(by 豪)

当鼠标滑过时,可以在屏幕上实现漂亮的水波纹效果。

执行效果如下:

源代码如下:

/****************************************************
 * 程序名称:实现水波纹显示							*
 * 编译环境:Visual C++ 6.0,EasyX 20130114(beta)	*
 * 作  者:豪 (QQ: 415051674)						*
 * 核心算法:参考网上算法								*
 * 最后修改:2013/3/20								*
 ****************************************************/


#include <graphics.h>     
#include <conio.h>
#include <stdio.h>

#define PIC_HEIGHT
...

[图像处理] 将图片转换为马赛克效果

这个程序将图片转换为马赛克效果。

算法原理:求出每个小方块内所有像素的颜色平均值,然后用来设置为该小方块的颜色。依次处理每个小方块,即可实现马赛克效果。

完整代码如下:

/////////////////////////////////////////////////////////
// 程序名称:将图片转换为马赛克效果
// 编译环境:Visual C++ 6.0 / 2010,EasyX 20130322(beta)
// 作    者:krissi <zh@easyx.cn>
// 最后修改:2013-4-22
//
#include <graphics.h>
#include <conio.h>

// 将图片转换为马赛克效果
// 参数:
//		pimg: 待处理的 IMAGE 对象指针
//		tilesize: 马赛克的尺寸
//		startx: 马赛克的平铺起始位置 x 坐标
//		sta
...

[图像处理] 将图片进行模糊处理

这个程序实现将图片进行模糊处理。

本程序的模糊处理算法:遍历图片像素,将每个像素颜色值与其周围像素颜色值求和,取平均值对其赋值。

完整代码如下(注意图片文件的路径):

/////////////////////////////////////////////////////////////////////////
// 程序名称:将图片进行模糊处理
// 编译环境:Visual C++ 6.0 ~ 2017,EasyX 20180727(beta)
// 作  者:krissi <zh@easyx.cn>
// 发布日期:2013-1-19
// 最后修改:2018-10-5
//
#include <graphics.h>
#include <conio.h>				

// 将图片进行模糊处理
void Blur(IMAGE *pimg)
{
	DWORD*	pMem = GetImageBuffer(pimg
...

[图像处理] 彩色图片转化成底片效果

这个程序实现将图片转化成底片效果。

底片效果使用如下公式:

R = 0xFF - GetRValue(pMem[i]);

G = 0xFF - GetGValue(pMem[i]);

B = 0xFF - GetBValue(pMem[i]);

完整代码如下:

/////////////////////////////////////////////////////////
// 程序名称:底片效果
// 编译环境:Visual C++ 6.0 / 2010,EasyX 20130114(beta)
// 作    者:krissi <zh@easyx.cn>
// 最后修改:2013-1-20
//
#include <graphics.h>
#include <conio.h>

// 底片效果
void Col
...

[图像处理] 彩色图像转换为灰度图像

这个程序实现将彩色图像转换为灰度图像。

彩色转换为灰度使用如下公式:

Gray = R * 0.299 + G * 0.587 + B * 0.114

为了提高运算速度,将这个公式转换为整数运算:

Gray = (R * 229 + G * 587 + B * 114 + 500) / 1000

为了提高运算速度的方法还有很多,这里作为演示,不再详述。

完整代码如下:

/////////////////////////////////////////////////////////
// 程序名称:彩色图片转换为灰阶图片
// 编译环境:Visual C++ 6.0 / 2010,EasyX 20130322(beta)
// 作    者:krissi <zh@easyx.cn>
...