
包含了迷宫生成、生存系统、AI追击、皮肤商店、成就系统等完整玩法。先说点废话事情是这样的。去年年底我逛CSDN看到不少迷宫游戏的分享。但说实话大多数都比较“朴素”——生成一个迷宫控制小球走到终点结束。玩一把还行第二把就开始犯困了。作为一个平时写业务代码写到吐的前端开发我决定给自己找点乐子写一个不那么容易玩腻的迷宫游戏。然后我就开始了。白天上班晚上回家敲代码周末也在敲。大概折腾了两个多星期终于搞出来了一个能见人的版本。这游戏我给它起了个名字叫《迷宫大闯关》。这游戏到底做了些啥简单来说你控制一个小球在随机生成的迷宫里从起点走到终点。但如果只是这样我也不用写两个星期。下面说点不一样的。迷宫是随机生成的每一局都不一样游戏用的是DFS深度优先搜索算法生成迷宫。简单模式15×12地狱模式42×30混沌模式和月球模式直接干到70×70和80×80。我自己测试地狱模式的时候经常走着走着就不知道自己在哪里了。路痴慎入。有钥匙系统不是无脑冲终点每局游戏有70%的概率会出现一把钥匙。如果出现了终点会显示为棕色门你得先在迷宫里找到钥匙才能开门通关。没钥匙的话终点是绿色门直接进就行。这个设计的目的是让玩家不能一路无脑冲至少得在迷宫里转一转。结果就是——有些玩家找不到钥匙直接在迷宫里转晕了然后关掉浏览器。对不起我的锅。7种模式够你玩一阵子了我做了7种不同的模式每种模式的机制都不一样简单/普通/困难/地狱基础模式区别在于迷宫大小和通关金币。适合新手熟悉操作。限时随机模式从上面四个难度里随机抽一个然后加上倒计时。超时了只有50金币安慰奖通关给500。这个模式我设计的时候想的是“给那些喜欢挑战的玩家找点刺激”。阴间迷雾模式视野只有周围2格其他地方全是黑的。钥匙如果在视野外根本看不见。这个模式我自己玩的时候经常走着走着就撞墙后来我学会了——走两步停一下记一下路。通关给600金币。火山地狱模式屏幕上有个“炙热条”会随着时间慢慢涨踩到熔岩涨得更快。满了就扣血血量归零就输了。捡冰块可以降温。开启要花10金币通关给400金币。这个模式是我在冬天写的当时手脚冰凉想着写个“热”一点的模式暖和一下。极寒冰川模式跟火山相反这个是“寒冷条”。冷到一定程度会触发事件第一次随机传送第二次迷宫重绘第三次送回起点第四次直接冻死。捡篝火可以取暖。这个模式写的时候我正吹着空调想着“冷”一点是不是能让房间凉快些——事实证明没用空调还是得开。究极混沌模式这个是我花时间最多的模式。70×70的超大迷宫一只鬼会从终点出发追你。初始15条命每隔4分钟扣1血。鬼离你15格以内会狂暴速度翻三倍。你得在迷宫里找齐三件圣物龙、星、冠然后召唤神龙把鬼灭了才能通关。通关给1000金币。这个模式的灵感来源于我玩《黎明杀机》被屠夫追着跑的经历——对就是那种绝望感。绝气月球模式80×80的大迷宫有氧气条会一直掉掉完了就消耗备用氧气罐初始10罐。每隔30秒切换一次“太阳正面”和“月球背面”——背面正常操作正面方向键全部反向。我第一次测试的时候按上往下走、按下往上走直接撞墙撞到怀疑人生。这个模式我写的时候觉得“应该没人能一次通关吧”结果真有人做到了还拿了成就。服气。有皮肤商店和Buff系统通关给金币金币可以在商店里买皮肤6种颜色和Buff道具5种一次性增益。Buff包括加时间、穿墙15秒、强行开路、直接获得钥匙、随机传送。每局只能用一种Buff用完就没了。这个限制是故意的——如果随便用游戏难度就崩了。有成就系统有些成就需要“作死”一共14个成就。有些是正常打就能解锁的比如通关简单模式有些需要专门去“作死”。比如“摆烂到底”这个成就——需要在限时模式里在起点挂机等到超时。对站着不动就行啥都不用干。还有“插翅难飞”——使用穿墙Buff之后在Buff结束的时候正好卡在墙里。这个成就我是在测试的时候不小心触发的当时觉得“这个bug好像也能算个成就”然后就保留了。隐藏彩蛋成就“火眼金睛”——连续点击主页小球的嘴巴30次。我也不知道为什么会设计这个可能就是写着写着觉得“加个彩蛋应该挺好玩的”。数据存在本地关掉页面不会丢所有数据金币、钻石、皮肤、成就、Buff库存都存在浏览器的localStorage里。关掉页面再打开进度都还在。不用担心数据丢失除非你自己清理浏览器缓存——那我救不了你。说点技术相关的话游戏用了纯原生技术HTML CSS JavaScript就一个HTML文件没有任何外部依赖。迷宫生成用的是DFS算法所有绘制都是Canvas完成的AI寻路用的是BFS存档用的是localStorage。我选择纯原生方案的原因很简单我想让任何人拿到这个文件就能直接打开玩不需要装任何东西不需要联网不需要注册账号。双击HTML文件浏览器打开开始游戏。整个过程大概写了3000多行代码。说实话写到后面我自己都觉得逻辑有点绕但至少能跑——而且没出什么大bug至少目前没有。写在最后这个游戏是我利用业余时间写的第一个完整的HTML游戏肯定有很多不完善的地方但至少——它是能玩的而且能玩挺久。如果你也喜欢写这种小游戏欢迎交流。代码虽然有点乱但逻辑是通的嗯……如果你玩的时候发现了bug评论区告诉我我有空就修没空的话……先记着。觉得还行的话点个赞让我知道这两个星期没白写。源码二维码入口