![](/f/a/0/0/184/thermodynamic-simulation.gif)
这个程序是热力学模拟实验。
学热力学与统计物理的时候就想设计一个程序模拟气体分子的运动,这样就能直观地检测那些热力学公式的正确性。
这个程序设计成所有粒子之间的力都是斥力,粒子和边界之间也有斥力。粒子在二维平面运动。
程序的动态执行效果如下:
完整代码如下:
// 项目:热力学模拟实验
// 作者:常数变易法(QQ:1375989292)
// 时间:2019.12.19
// 环境:VC6.0
// 学热力学与统计物理的时候就想设计一个程序模拟气体分子的运动,这样就能直观地检测那些热力学公式的正确性。
// 这个程序设计成所有粒子之间的力都是斥力,粒子和边界之间也有斥力。粒子在二维平面运动。
// 版权:作者原创,无抄袭,不涉及版权问题,仅用作学习
#include <graphics.h> // 引用图形库头文件
#include <stdio.h>
#include <conio.h>
...
![](/f/a/0/0/94/greedy-ball-2.png)
贪婪球第一版在这里:https://codebus.cn/contributor/post/greedy-ball
2.0 版本相对第一版做了如下修改:
- 视野缩放,会随着体积增大视野变大,解决一代玩家球过大挡住屏幕现象
- 增加高杀伤力毒圈,解决满地图跑问题
- 提高敌人 AI 智商,会主动吃食物
- 修复若干已知 bug
- 扩大了游戏区域
- 全部用 c++ 重写
执行效果如下:
完整的源代码如下:
///////////////////////////////////////////////////
// 程序名称:贪婪球 2.0
// 编译环境:Microsoft Visual studio 2017,EasyX 2018春分版
// 作 者:奶酪
// 邮 箱:2190038793@qq.com
// 发布日期:2019-6-24
...
![](/f/a/0/0/47/easyui.jpg)
EasyUI 类构成指南
EasyUI 将 UI 拆分成了两个部分--绘制单元和事件触发器。
使用者可以使用绘制单元来控制 UI 的风格,同时选择一定的事件触发器来使 UI 具备响应事件的功能。
绘制单元:
-CDrawCell:所有绘制单元的基类
-CSimpleShape:继承自 CDrawCell,集成了通过 EasyX 图形绘制函数绘制的图形属性
-CHaveSize:所有拥有大小的类的基类
-CRect:继承自 CSimpleShape,绘制一个矩形
-CRoundRect:继承自 CSimpleShape,绘制一个圆角矩形
-CCircle:继承自 CSimpleShape,绘制一个圆形,并以绘制位置为中心(所有绘制单元都从左上角画起,除了圆)
-CEllipse:继承自 CSimpleShap,绘制一个椭圆(通过外接矩形)
-CText:继承自 CDrawCell,输出一串字符串
-CUIIm
...
![](/f/a/0/0/136/flappybird.png)
该程序是用 C 语言实现的 FlappyBird 的电脑版,玩法和手机版的相同。
程序通过 alpha 域实现透明贴图,并且通过双缓冲绘图防止刷新闪屏。
程序执行效果如下:
该程序的编译环境:Visual C++ 2008,EasyX 20190314(beta)
项目类型:控制台程序
完整的项目代码与资源【请点击这里下载】。
作者:徐洛洛
QQ:1584133118
Email:1584133118@qq.com
![](/f/a/0/0/29/electronic-photo-album.jpg)
这是一个自已DIY内容并且具有背景音乐的电子相册。通过自定义内容,可以制作成属于自己的电子纪念册。
点击小图可以查看每张图片以及对于的图片文字描述,按下 w、s、a、d、↑、↓、←、→ 按键可以达到和鼠标点击的同样效果。支持跳转至任意一张已加载的相片,也支持自动循环浏览相册,具体操作请点击对应的工具图标。
执行效果如下:
操作说明:
- 点击小相片将看到对应的大相片和相片印记
- 点击不同的工具图标将产生不同的效果
- 支持按键 w、s、a、d、↑、↓、←、→,作用分别是上下移动和左右翻页
- 支持跳转至任意编号相片
- 支持内容 DIY,具体操作请参照 Set.ini
- rc 文件为程序图标,不可修改
- res 为程序 DIY 内容所在文件夹,里面内容皆可修改
该项目的编译环境为:VS2017 + EasyX_20190314(beta)
完整的源代码【请点击这里下载】。
...
![](/f/a/0/0/53/greedy-ball.png)
这是模仿球球大作战写的小游戏,有食物、敌人、外面的毒圈。
操作很简单,用 A S D W 四个键控制球的移动方向。
地图大小是屏幕的16倍,吃完所有敌人就胜利。记住不要被敌人吃掉哦!
想和我交流的可以加我 QQ:2190038793
贪婪球 2.0 做了许多升级,详见这里:https://codebus.cn/contributor/post/greedy-ball-2
执行效果如下:
完整的 VC++ 源代码如下:
///////////////////////////////////////////////////
// 程序名称:贪婪球 1.6
// 编译环境:Microsoft Visual studio 2017,EasyX_20200727
// 作 者:奶酪
// 邮 箱:2190038793@qq.com
// 发布日期:2019-2-10
// 最后修改:2019-2-15
//
#inc
...
![](/f/a/0/0/36/lineway-1.png)
Line Way 是一个简单有趣的一笔画游戏。
玩家只需要用鼠标移动到方格上,使游戏角色将所有路径走遍即可过关。
目前游戏共有 25 关。
游戏执行效果如下:
源代码编写环境:Visual C++ 6.0,EasyX(20190219)
完整的游戏源代码在 github 上:https://github.com/smile-yan/LineWay
作者:Smileyan
QQ:837764072
邮箱:837764072@qq.com
![](/f/a/0/0/89/airplane.gif)
这是一个简单的飞机空战游戏。
游戏操作说明:
w、s、a、d 控制飞机移动
k 发射子弹
空格暂停
ESC退出
敌机自动发射子弹、自动移动
当飞船碰到敌机、飞船血量为 0、敌机碰到底部时游戏结束
敌机血量为 0 时,会出现一个新的敌机
小敌机随机出现
结束后按 ESC 退出,按 R 重来。
游戏运行截图如下:
该游戏的编译环境为:Visual C++ 2013,EasyX_20190219(beta)。
完整的游戏源码包【点击这里下载】。
作者:刘华欣
QQ:1359240780
邮箱:1359240780@qq.com
![](/f/a/0/0/32/maze.gif)
玩家被困在一个迷宫里,拥有一盏油灯,油灯能够照亮以玩家为中心的一片圆形区域,随着时间的流逝,油灯的照明力会逐渐下降,迷宫内随机分布着一些加油站(黄色的圆角矩形),经过这些加油站能够恢复油灯的照明力,找到地图右下角的终点(绿色圆角矩形)。就算过关。
游戏采用图块(N * N 的正方形)的方式构建地图,且墙壁,地面,玩家,终点采用四个独立的函数绘制,如果想改变地图的风格,只需要修改这些函数的内容即可。
运行效果如下:
迷宫生成采用的深度优先算法,有明显的主路。
完整的游戏源代码如下:
//////////////////////////////////////////////
// 程序名称:迷宫
// 程序作者:祝融
// 作者邮箱:211103376@qq.com
// 编译环境:Visual Studio 2017 + EasyX 20180727(beta)
// 发布时间:2019-2-10
// 最后修改:2019-2-13
//
...
![](/f/a/0/0/81/calc-1.gif)
这个计算器程序是模仿 Windows 10 系统的计算器所写的,借鉴了 Windows 10 计算器的一些外观设计以及所包含的一些功能,但是实现此计算器的所有算法是自己独立开发,其中的一些功能或许没有写的很完善。
下面介绍此计算器所包含的一些功能,以及用法。
计算器包含两大功能:计算功能、转换功能。计算功能包含普通计算器、科学计算器、超大数的计算、解一元一次方程。转换器包含体积转换、长度转换、重量转换、温度转换、能量转换、面积转换、速度转换、时间转换、功率转换、数据转换、压力转换、角度转换,包含了基本所有常用的转换。
普通计算器:实现最普通的加减乘除,通过用户输入的字符串(中缀表达式),转换为计算机可以计算的后缀表达式(后缀表达式又称逆波兰式),最后通过栈来实现计算。
科学计算器:所谓的科学计算器只是加上了一些可以计算的函数,如 sin、cos、tan 等,这个计算器不是按上面普通计算器的实现方法,而是通过数字的直接计算,功能实现的不是很好(所以我认为科学计算用起来是不怎么好用)。
超大数计算:实现一些很大的数
...
相信看到这篇文章大部分得小伙伴都是用过 EasyX 的,这是一个 Windows 下的 C++ 图形库,过多的介绍不再赘述。
当初接触 EasyX 时,我最大的感触就是:哇,原来还有这么简单易用的图形库!!!!
用过一段时间感觉很棒,推荐给大家!
某次突发奇想,要不我把 EasyX 封装成 Lua 模块吧,这样子就不受到编译器的限制了,只要装有相应版本的 Lua 解释器,并且提供运行库那就很 OK 啦。
大家 LuaEasyX = require "LuaEasyX" 后自己 for k,v in pairs(LuaEasyX) do print(k,v) end 看一看
我也懒得做文档了,因为 LuaEasyX 本质就是对 EasyX 的再次封装,API 的参数几乎一模一样。
在下面放出的文件中我会把一些API的差异给列出到一个文本文档中。
以后还会用自己封装的LuaEasyX来再做几个小游戏给大家玩玩的。
大家到时候拿来过过瘾就好啦,哈哈哈
...
![](/f/a/0/0/129/easyplot.gif)
由于最近从 matlab 转接到 vs 平台继续自己的仿真工作,但是却一直没有找到简易 plot 工具,于是尝试用 EasyX 开发一个绘制波形的小工具,希望可以帮助到有需要的人。
执行效果如图:
完整源代码如下:
/******************************************************************************************/
// EasyPlot 是基于 EasyX 绘图库(https://www.easyx.cn)而编写的,对实时信号进行绘制的一个工具
// 以下代码为了便于学习以源文件形式展示,如果应用于工程建议采用头文件形式封装
// 本文采用Unicode字符集,ANSI环境的读者注意相关地方格式的转换
// 作者:Ephemeroptera
// 地点:安徽大学
// 联系方式:605686962@qq.com
// 最后修改时间:2018-11-29
/*************
...
![](/f/a/0/0/58/lonely.gif)
上大学一学期了,有点想家。
突发奇想,花了一天的时间,用 vc++6.0 写完了这个程序。
代码写的不怎么样,希望大家不要太严格 QAQ
执行效果截图:
完整源代码、背景音乐请【点击这里下载】。
完整代码如下(记得附上背景音乐文件):
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
#pragma comment(lib,"Winmm.lib")
#define WATERSPEED 12.0 // 雨点速度
#define BUILDINGNUM 30 // 建筑物数量
#define RAINNUM 300 // 雨点数量
#define C
...
![](/f/a/0/0/156/gravitational-ball.jpg)
这个程序模拟了知名游戏“引力球”。
按空格键开始游戏。
游戏执行截图如下:
完整的游戏源代码,作者分享在 github,地址:https://github.com/blue1ris/gravitational_ball 。
作者:blue丶1ris
邮箱:197041868@qq.com
![](/f/a/0/0/3/drawing-board.gif)
这是一个画板程序。执行效果如下:
右边颜色即对应画笔颜色,滑动条可调节画笔大小。
如果画错了想擦除,选择对应背景色作为画笔颜色即可。
如果想保存你的画作,请点击“工具”二字。此时在与exe同目录下将会有名为“easyxImage.bmp”的文件。请及时拷走,以防下次保存时被覆盖。
全部代码如下:
///////////////////////////////////////////////
// 程序名称:画板
// 编译环境:Visual C++ 2017,EasyX_20180727(beta)
// 作者:冰雪女神百亚
// QQ:1169351944
// 邮箱:cloudea@163.com
// 最后修改:2019-1-18
//
#include<string>
#include<graphics.h>
using namespace std;
// 点
struct Point
{
int x;
...