简介
proto-game 是一款基于 PhasorJS(一个 HTML5 游戏开发框架)和 protobuf(Google 的一个序列化协议)的游戏开发框架。它可以大幅简化游戏服务端和客户端之间的通信流程,极大地提高开发效率。
安装
使用 npm 安装 proto-game:
npm install proto-game
开始使用
客户端
1. 加载 protobuf.js
proto-game 依赖 protobuf.js 库,请先加载并初始化它:
<script src="path/to/protobuf.js"></script>
-- -------------------- ---- ------- ----- -- - --- --------------- ----- -- - --- ------------- ---------------- --------- -- ------ - ------- ---- --- ------ ------ ---- ----- ------- - --------------------------------------- ----- ------- - ------------------- ------------------- ---------- ------------------ ---------------------------
2. 初始化 proto-game
在客户端中初始化 proto-game:
-- -------------------- ---- ------- ------ - ---------- - ---- ------------- ----- ------ - --- ------------ ---------- ------------------------- ------------- -------------------------- --------- -------------------------- ----------- -------------------------- --- -- ---- ----- -- --------------
其中,serverUrl
是服务器地址,protobufRoot
和 gameRoot
是 protobuf.js
和 proto-game
库所在的位置,protoFiles
则是需要加载的 proto
文件。
3. 注册消息
当需要使客户端接收服务端发来的消息时,需要在客户端注册消息:
client.registerMessage('myPackage.MyMessage', (message) => { console.log(message); });
4. 发送消息
当客户端需要向服务端发送消息时,只需要调用 client.sendMessage
方法:
client.sendMessage('myPackage.MyMessage', { key: 'value' });
服务端
服务端使用与客户端基本相同,只需将 GameClient
替换为 GameServer
即可。
-- -------------------- ---- ------- ------ - ---------- - ---- ------------- -- ------ ----- ------ - --- ------------ ----- ------- ------------- -------------------------- --------- -------------------------- ----------- -------------------------- --- -- ---- ----- -- -------------- -- ------- ----------------------- -------- -- - ------------------- ------------ -------- ----- ------- - - ---- ------- -- ----------------------------------------- --------- -------------------------------- ------ -- - ------------------ --- ---
总结
proto-game 可以帮助前端开发者大幅简化游戏开发过程中的通信流程,降低开发门槛,提高开发效率,是一款非常不错的工具。当然,只有掌握了其使用方法,才能发挥其最大的作用。建议开发者多实践,不断探索和研究。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5851ab1864dac66dd4