关于javascript:决战摸鱼之巅将vscode撸成可局域网联机对战的moba平台

54次阅读

共计 1463 个字符,预计需要花费 4 分钟才能阅读完成。

一年多前撸过 1 个小霸王插件,不过因为是单机版无奈联机,交互性不够。刚好最近看到 qq 堂下线的新闻,为了补救之前的遗憾,利用假期工夫参考这品种炸弹人模式开发了一个能够局域网联机对战的 moba 游戏,给大家工作之余提供一个可能和小伙伴一起愉悦身心的工具,间接晋升大家应用 vscode 的开发效率。

次要目标 使 vscode 放松身心、晋升效率、加强算法程度的能力进一步加强

装置

在 vscode 插件市场搜寻 alphabe-war 点击装置即可

启动

装置胜利后点击左侧 G 图标, 进入游戏列表界面


该界面有栏形成

  1. ROOM LIST 为房间界面展现以后局域网中正在期待开始的游戏, 鼠标 hover 到该栏有 + 按钮创立游戏。第一次创立须要先输出玩家名称
  2. AI SCRIPT LIST 为操作脚本界面,能够自在编辑脚本管制玩家行为

创立游戏

在 ROOM LIST 点击 + 创立后,进入房间界面

  • 玩家进入且全副为筹备状态,房主点击开始游戏启动 (游戏界面图上面附有一张动静的 gif, 能够稍等加载看动态效果)

操作形式

  1. 手动模式 该模式通过上、下、左、右管制方向,空格管制埋雷;
  2. 脚本模式 通过编写 js 脚本管制玩家进行游戏。目前提供了以后游戏所有存在对象的以后状态和 5 种行为操作玩家游戏

游戏指标

两方队伍通过毁灭字符怪或者对方获取字符,率先抢到 HELLO WORLD 所有字符的一方获胜,游戏右侧为以后状态栏。别离展现 Team1 和 Team2 的指标字符,和玩家以后获取的字符。

游戏对象

  1. 字符怪 被炸后掉落一个字符, 每 15 秒在地图空白点中随机新增两个
  2. 一般怪 每 15 秒在地图新增 1 个,碰撞能够杀死玩家,获取字符后可变成字符怪
    • 一般墙 能够炸碎
    • 硬墙 不能炸碎
    • 挪动墙 能够挪动,用来格挡怪物或者挡住敌方玩家
    • 工夫墙 倒计时,玩家被怪物碰撞后回到出世点位
  3. 道具
    雷长度加强 获取后爆炸加强
  4. 玩家 玩家分为两队,能够通过埋雷毁灭字符怪、拾取字符。玩家死亡会掉落一个字符,且回到出世点位,限度 5 秒后

渲染形式

游戏提供两种展现形式, 可按爱好切换

  1. 中文字符【默认】
  2. ascii 模式

技术架构

该插件次要分为服务端和客户端两局部。游戏主逻辑在服务端中运行,定时将以后游戏数据发送给客户端渲染。
服务端: 寄生于 vscode 中,通过 webscoket 与客户端做数据交互。也能够独自做成 node 服务部署。
客户端: 客户端通过 vscode 的 webview 加载本地 html 的形式运行,通过 canvas 的一些简略的 api 渲染没有依赖任何引擎,服务端 + 客户端 + 赞叹码图片整个插件打包只有 900 多 k。

TODO 目前梳理的一些待欠缺的点,后续有工夫再加,或者有人感兴趣的话把代码丢进去一起保护

  1. 地图编辑性能 没有地图编辑性能,只有一张固定的图,比拟干燥。间接通过数组批改地图效率也较低
  2. AI 模式 目前脚本 1 秒钟调用一次,对单次行为调用没有做限度
  3. 游戏道具欠缺 道具过于繁多,目前只有一个加强雷的长度的道具
  4. 游戏渲染优化 比方玩家或者怪物死掉后,无替换只有地位变动,比拟僵硬
  5. 断线重连 目前没有做断线重连,一方敞开后无奈再次进入
  6. 服务端客户端数据交互方式优化

发散

vscode 齐全能够作为一个休闲娱乐的平台来应用,比方一些棋牌,益智的小游戏齐全能够移植到其中。有趣味的小伙伴,能够试试整合比方五子棋、象棋、地主 + 局域网联机,能够将工作中一些碎片化工夫与共事增进交换,一起放松身心,缩短职业生涯。

反馈

如果发现了任何的 bug 或者有任何倡议, 请提交 issues to 到 GitHub Repo https://github.com/gamedilong/alphabet-war. 或者能够间接邮件到 1104238614@qq.com

正文完
 0