2D 射击游戏:大战黑帮(by Starsky) 铜牌收录

这是一款经典的 2D 射击游戏,ASDW 控制,鼠标左键射击,空格键放技能,P 键暂停

你正以一己之力撼动整个社区最大的黑帮!杀死敌人!越多越好!

游戏运行截图如下:

完整源代码、图片及编译后的可执行文件请【点击这里下载】。

作者:Starsky
邮箱:lcj20000101@163.com

对对碰 游戏 (v2.2)(by 自然向日葵) 铜牌收录

本程序的操作与 Popcap 经典的宝石迷阵(Bejeweled)游戏类似。游戏运行截图如下:

游戏中使用了大量图片、音乐、资源文件,<点这里下载该游戏的完整 VC 项目包>。

游戏代码如下(相关图片资源请下载完整 VC 项目包):

///////////////////////////////////////////////////////////
// 程序名称:对对碰
// 编译环境:Visual C++ 2010/6.0,EasyX_v20120304(beta)
// 程序编写:自然向日葵 1164359890@qq.com
// 最后更新:2012-3-10
//
////////////////////////////////////////////////////////////
//画素材的x和y都是反的,因为x表示行,但是画出来x表示列,y同
//////////////////////////////////////////////
...

推箱子游戏(by 自然向日葵) 铜牌收录

经典的推箱子游戏。

执行效果如下:

游戏中使用了图片,【点击这里下载完整项目】

以下是项目的代码(需要图片才能编译执行):

///////////////////////////////////////////////////////////
// 程序名称:推箱子
// 编译环境:Visual C++ 2010/6.0,EasyX_2011惊蛰版
// 程序编写:自然向日葵 1164359890@qq.com
// 最后更新:2012-1-21
//
////////////////////////////////////////////////////////////
//游戏中用0表示空地,1表示人物,2表示箱子,3表示目的地,6表示围墙
//
//画素材的x1和y1都是反的,因为x表示行,但是画出来x表示列,y同
////////////////////////////////////////////////////////////


#in
...

贪吃蛇(by 王垣恒) 铜牌收录

一个比较新颖的贪吃蛇程序。

用左右表示蛇向左转或向右转,上用来加速。

源代码如下:

///////////////////////////////////
// 程序名称:贪吃蛇
// 编译环境:Visual C++ 6.0 / 2008,EasyX 2013冬至版
// 作者:王垣恒 QQ:646361765
// 最后修改:2014-5-20
// 操作方式:以蛇为第一视角,左 左转;右 右转;下 暂停;上 快进。
// 状态: 黄色 蛇头;红色 蛇身;绿色 食物。
//
#include <graphics.h>
#include <string.h>
#include <time.h>
#define NUM_R 10		//半径
#define NUM_X 25		//横向个数
#define NUM_Y 25		//纵向个数
#define NUM 30			//所需节点个数
void exe(int x,int y,int f);
...

迷宫 2:支持自己创建迷宫,并求解最短路径(by Redman) 铜牌收录

本迷宫游戏支持用户自己创建迷宫,定义迷宫的出入口,并求解最短路径。

游戏运行抓图如下:

使用方法:

  1. 执行程序后,先按 s,开始用鼠标绘制迷宫墙壁。
  2. 绘制完墙壁后,按 e,用鼠标设置迷宫的出入口。
  3. 设置好出入口之后,按 d,动态演示迷宫的最短路径。

游戏采用面向对象技术编写,完整的游戏 VC++ 源代码下载:<点击这里下载>

作者:Redman
邮箱:huangxionging@163.com

Rolling Ball 铜牌收录

这是经典的下 100 层游戏。>_<

通过鼠标左右键或者键盘 A、D 按键及左右方向键控制小球左右移动,木板会不断上升,小球到底认定游戏结束,按下键盘后小球会加速到一个最大速度,小球在木板上则会跟着木板上移,达到一定分数启动反向操作。

本程序采用单例设计模式,RollingBall 公有继承 BallAndPlank,protected 便于派生类访问基类数据成员。

木板的颜色随机,位置随机。

界面由初始化界面大小控制,可自行更改。

游戏运行截图如下:

游戏的完整源代码如下:

/*
	项目名称:
		RollingBall
	作者:
		tzdhu.z@qq.com (1926594835)
	编译环境:
		Visual Studio 2017,EasyX_20190219(beta)
	发布日期:
		2019-2-2
	最后修改:
		2019-2-23
	项目介绍:
		本程序由单例设计模式
...

贪婪球 2.0(by 奶酪) 铜牌收录

贪婪球第一版在这里:https://codebus.cn/contributor/post/greedy-ball

2.0 版本相对第一版做了如下修改:

  1. 视野缩放,会随着体积增大视野变大,解决一代玩家球过大挡住屏幕现象
  2. 增加高杀伤力毒圈,解决满地图跑问题
  3. 提高敌人 AI 智商,会主动吃食物
  4. 修复若干已知 bug
  5. 扩大了游戏区域
  6. 全部用 c++ 重写

执行效果如下:

完整的源代码如下:

///////////////////////////////////////////////////
// 程序名称:贪婪球 2.0
// 编译环境:Microsoft Visual studio 2017,EasyX 2018春分版
// 作  者:奶酪
// 邮  箱:2190038793@qq.com
// 发布日期:2019-6-24
...

2D 横向对抗射击游戏(by STF) 铜牌收录

游戏介绍

【第一版】

花了一天时间,用 easyx 做了一个小游戏,程序中所有的类函数都是内联函数,大约 300 行,开发环境是 Visual Studio 2015 Community。

【第二版】

主要做了代码优化,加强可读性。

同时改了操作方式,玩家和敌人都可以在 x、y 方向上移动,敌人每隔一段时间会随机换向。

游戏运行截图如下:

操作方式

玩家通过方向键移动,z 键射击,左 Shift 进入低速移动模式提高操作精度。

代码说明

关于无阻塞延时,
首先,先要 ctime 创建一个 clock_t 变量 a,初始化为 clock(),貌似是自从 1970 年到现在的毫秒数。
我们要每隔 0.5 秒执行函数 func() 一次。
那么创建主循环 while(1)
调用前用 clock() - a;
如果 clock() - a > 500,那么执

...

飞机大战游戏(by 刘华欣) 铜牌收录

这是一个简单的飞机空战游戏。

游戏操作说明:

w、s、a、d 控制飞机移动
k 发射子弹
空格暂停
ESC退出

敌机自动发射子弹、自动移动

当飞船碰到敌机、飞船血量为 0、敌机碰到底部时游戏结束
敌机血量为 0 时,会出现一个新的敌机
小敌机随机出现

结束后按 ESC 退出,按 R 重来。

游戏运行截图如下:

该游戏的编译环境为:Visual C++ 2013,EasyX_20190219(beta)。

完整的游戏源码包【点击这里下载】。

作者:刘华欣
QQ:1359240780
邮箱:1359240780@qq.com

拼图 2.0(by Redman) 铜牌收录

经典的拼图游戏。

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

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

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

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

游戏运行截图如下:

...

贪吃蛇的核心代码(by shareli) 铜牌收录

贪吃蛇的核心代码,很精简。

完整源代码如下:

///////////////////////////////////////////////////
// 程序名称:贪吃蛇的核心代码
// 编译环境:VC6.0 / VC2010,EasyX 2011惊蛰版
// 作  者:shareli,QQ: 953445224
// 最后修改:2012-2-4
//
#include <graphics.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#define SIZEMAX		100		// 定义蛇的最大长度
#define SNAKELEN	10		// 蛇的大小和蛇每次移动的距离
#define SPEED		100		// 初始速度 

/****************************************/
typedef enum	// 定义表示方向的枚举变量
...

涂格子游戏(也叫点灯游戏)(by 豆腐果) 铜牌收录

该游戏是经典的涂格子游戏,很有挑战性。

执行效果如下:

 

源代码如下:

/**********************************************************
 * 程序功能:涂格子游戏
 * 程序版本:v0.1 基本功能演示版本,简单动态效果,可以过关
 * 编译环境:Visual C++ 6.0,EasyX_20130506(beta)
 * 最后更新:2010-11-9
 **********************************************************/
#include	<graphics.h>
#include	<conio.h>
#define		MaxNum				14		//单边最大格子数
#define		G_length			30		//格子边长
#define		USER_LBUTTONDOWN	101
#define		USER_RBUTTONDOWN
...

汉诺塔移动动画(by Ronald) 铜牌收录

汉诺塔问题源自印度一个古老的传说,印度教的“创造之神”梵天创造世界时做了 3 根金刚石柱,其中的一根柱子上按照从小到大的顺序摞着 64 个黄金圆盘。梵天命令一个叫婆罗门的门徒将所有的圆盘按照规则移动到另一个柱子上。这个程序就是该经典问题的动画演示。