恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
从零制作摸金游戏详细讲解 - 框架篇(不喜勿喷)
首页
资讯中心
/
从零制作摸金游戏详细讲解 - 框架篇(不喜勿喷)
从零制作摸金游戏详细讲解 - 框架篇(不喜勿喷)
发布时间:2026/10/12 2:23:49
大家好我是一名编程爱好者网名陈子玄武魂*。欢迎来到我的专栏幽冥寻道者更新NEXT但是我们今天不发代码来讲讲我是如何从零做一个3000行的中小型游戏。希望方法能对大家有帮助本文及后续的方法文章是专栏的置顶文章(后续可能会有更新或微调)详细讲述从主界面到游戏逻辑到地图运行的制作方法并且有示例代码可供参考(代码都是从自己作品里扒的或现场写的网上搜索的会特别标注)。*此后游戏更新将不再直接发放源码而是发放打包好的运行程序(.exe)代码则采用分级开放的形式普通读者拿到程序直接下载游玩粉丝权益长期支持专栏且有关注和互动的老读者可以私信领取源码。特别注意源码属于粉丝专属福利仅限个人学习研究。禁止二次打包、冒充为自己的作品、禁止商用、随意转发源码给其他人。一经发现则永久取消源码申请资格并保留相关证据进行处理。在讲解之前确保你已经学会以下C相关知识函数 / 基础语法 / 结构体数组变量 / 文件 / ...当然还有一个选做的C23的print / println函数(见主页里的文章)如果不会就用cout / printf便是。下面正式讲解游戏做法一、函数封装(一)本游戏基本采用函数封装形式main 函数仅调用一个 init() 即可框架#includeiostream using namespace std; void init(); void init() { } int main(){init();}这样写代码逻辑清晰调试方便看着也舒服。接着的一些逻辑基本都封装在函数内但是定义完之后不要忘记了函数声明(如上代码第3行)。二、开场动画init() 函数写的是开场动画这部分是相当随意亮一下自己的 logo / 品牌 都没问题主打创意。但是由于我们是控制台窗口基本只能用文字 / 字母 / 符号显示UI的话大家可以自己想没有太多要求输出就行了。输出完你的动画后就是主页面环节了我们先新建主页函数 zhuye() 声明在 init() 结尾加上函数。void init(); void zhuye(); void init() { //自己写 zhuye(); } void zhuye(){ }这样基本就差不多了。对了*标准C中不允许使用万能头竞赛用用就OK了正式项目建议别用。三、主页界面前面的只是开胃小菜现在正文刚刚开始。主页我们就直接打算开 zhuye() 函数用输出函数输出自己定制的面板(排版貌似错乱)println(╔════════════════════════════════╗); println(║1.商城|2.活动|3.赛季| |S.设置║); println(║ ║); println(║ ║); println(║ 请输入 ║); println(║ ║); println(║______ ___________║); println(║4.信息| |M:查看玩法║); println(╚════════════════════════════════╝);接着我们在全局创建字符变量 in 为什么是字符评论区里回答然后写一个 input() 函数来记录输入变量为了保证流畅体验就直接按下立刻监听不用换行代码直接复制char input() {//getch() char x _getch(); return x; }说到这了就把其他的基础函数也展示吧(不用看懂直接现成用)void error() {//乱输入的结果 cls(); println(输入错误!); Sleep(3000); cls(); } void cls() {//清屏加速版 static const HANDLE hOut GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO csbi; DWORD count; COORD home { 0, 0 }; GetConsoleScreenBufferInfo(hOut, csbi); FillConsoleOutputCharacter(hOut, , csbi.dwSize.X * csbi.dwSize.Y, home, count); SetConsoleCursorPosition(hOut, home); } void print_(string s) {//匀速输出不咋用老版本摸金经常用 for (size_t i 0; i s.length(); i) { if (s[i] ) { print(\n); continue; } if (s[i] ) { Sleep(500); continue; } print(%c, s[i]); Sleep(25); } }回到正题接下来输入了选项后我们就用 if() 或 switch() 来判断选项匹配上就进入到对应函数否则使用error函数并重新输入。对应函数通常要声明定义光定义在VS里会警告。代码如下void init_(); void zhuye(); void zhu1(); void zhu1_1(); void zhu1_2(); void zhu1_2_panduanpifu(int i); void zhu2(); void zhu2_2(long long xx); void zhu3(); void zhu3_x(); void zhu4(); void zhu4_1(); void zhu4_1_1(); void zhu4_xs(); void zhu4_2(); void zhu4_2_yema(int x); void zhu4_3(); void zhu4_4(); void zhu4_4_1(); void zhu4_5(); void zhu4_5_1(); void zhu4_5_2(); void zhu4_6(); void zhu_S(); void zhu_M(); void zhu_M_M(); void zhu__M_jd(int n); void zhu__jd_panduan(int n, int i, int j, char (*g)[25][70], bool abc); void caochuan(int a); int zhu_gailv(int n, ...); void daguai(string str, int h_g, int g_g); void zhu_M_1(); void zhu__1_2(); void zhu_M_2(); void xinjian(); void deng(); void print_(string s); char input(); void cls(); void cls_(); void error();有点吓人没关系一步步来就是了。比如先定义基础的 zhu1() / zhu2() /... 在慢慢完善。以上就是框架篇的讲解如果对你有用就订阅一下吧或者三连也行