帮酷LOGO
0 0 评论
文章标签:JAVA  GAM  Javascript  Multiplayer  
JavaScript client for Colyseus MMO Game Server

  • 源代码名称:colyseus.js
  • 源代码网址:http://www.github.com/gamestdio/colyseus.js
  • colyseus.js源代码文档
  • colyseus.js源代码下载
  • Git URL:
    git://www.github.com/gamestdio/colyseus.js.git
  • Git Clone代码到本地:
    git clone http://www.github.com/gamestdio/colyseus.js
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/gamestdio/colyseus.js
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    


  • Patreon donate buttonDiscussion forum

    用于javascript/typeScript的多人游戏客户端
    查看文档

    平台

    此客户端适用于以下平台:

    • 主流浏览器环境(Electron,Chrome,Firefox,safari,Opera等)
    • (有一些警告 )
    • Cocos Creator

    用法

    连接到服务器:

    import*asColyseusfrom"colyseus.js";var client =newColyseus.Client('ws://localhost:2657');

    加入房间:

    var room =client.join("room_name");room.onJoin.add(function() {
     console.log(client.id, "joined", room.name);
    });

    监听房间状态变化:

    这是客户端最强大的功能。你可以监听服务器端的每个状态更新,并将它们绑定到客户端函数中。

    第一个参数是要监听的变量的路径,在向路径提供占位符(例如,:number:id:string)时,它们将用上面找到的值填充函数,请参阅下面的例子。

    监听正在从房间中添加/删除的实体:

    room.listen("entities/:id", (change) => {
     console.log(`new entity ${change.path.id}`, change.value);
    });

    监听实体属性为added/replaced/removed:

    room.listen("entities/:id/:attribute", (change) => {
     console.log(`entity ${change.path.id} changed attribute ${change.path.attribute} to ${change.value}`);
    });

    其他房间事件

    房间状态已更新:

    room.onStateChange.add(function(state) {
     console.log(room.name, "has new state:", state)
    })

    消息从服务器广播或直接发送到此客户端:

    room.onMessage.add(function(message) {
     console.log(client.id, "received on", room.name, message)
    });

    发生服务器错误:

    room.onError.add(function() {
     console.log(client.id, "couldn't join", room.name)
    });

    客户离开了房间:

    room.onLeave.add(function() {
     console.log(client.id, "left", room.name)
    });

    有用的链接

    React Native兼容性

    此客户端使用React Native ,你需要安装一些附加的依赖项以实现兼容性,并将window.localStorage分配给AsyncStorage。

    • 安装react-native-browser-polyfill ( npm install react-native-browser-polyfill )
    • 安装并遵循rn-nodeify安装指令(npm install rn-nodeify )
    
    // App.js
    
    
    import 'react-native-browser-polyfill';
    
    
    import './shim';
    
    
    import { AsyncStorage } from 'react-native';
    
    
    window.localStorage = AsyncStorage;
    
    
    
    

    另一个警告是,你只能在第一次连接打开后,连接房间。

    
    var client = new Colyseus.Client('ws://localhost:2657');
    
    
    
    client.onOpen.add(() => {
    
    
     let room = client.join("your_room");
    
    
    })
    
    
    
    

    许可证

    MIT



    文章标签:JAVA  Javascript  GAM  Multiplayer  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语