マッチングフレーム同期Tankedaizhan

マッチングシステム、プロジェクトの全体的な構造についての最初の話を導入する前に。

>ホーム - - >を選択します - >ゲーム開始:プロジェクトは、4つの主要なシナリオを持っています

ファイル

start_sceneは:このシーンは主に、ユーザーのニックネーム、画像やその他の情報を取得し、マイクロチャネルのライセンスを作られて、ゲームシーンの始まりです。(:クラウドの機能を理解していない、この記事を参照することができ、クラウド機能を経由してユーザーのOpenIDを取得したマイクロチャネルクラウド開発をチュートリアルを使用して)。そして、ユーザー情報とユーザーのグローバルオブジェクトグローバルOpenIDのは、後で使用するために内部を入れています。

ファイル

ファイル

home_scene:許可に成功した後、我々はシーンにジャンプします。

ファイル

このシナリオを入力した後、あなたは、SDK MGOBEフレームワークを初期化する必要があります。

まず、(コンソールから取得gameId、OpenIDを、秘密鍵、サーバ、)パラメータ値は、SDKのために必要な、キャッシュに入れました。

ファイル

ISを行うinitListen機能が聴くための部屋を追加するために、リスナーを初期化し、部屋のインスタンスを作成します。次のように主コードが取られます。

ファイル

初期設定が完了したら、1V1,3V3を選択することができます。実際に、私は3V3設定は、実際の効果を測定するのではなく、2V2で現在ですが、考慮に入れて、この状況をタンクの初期位置の計算は、フレーム同期が再度詳細に行くことに。

choose_scene: 1V1や3V3を選択した後、シーンに入ります。実際には、現在の状況、choose_sceneとhome_sceneは、一つのシーンにマージすることができます。それらを分離する理由ここで、私が説明します。

そのため、私は自由がこのシナリオでは、選手によってタンクの種類を選択することを想像する前に、選択した後、プレイヤーマッチで手動でクリックしてください。試合栄光の王の前にシーンに似たすべてのゲームショーの情報を、同時に、あなたも、選手たちの成功を一致させることができる選手と対戦します。これは、将来のために、便利な機能を拡張しています。この次の例:

ファイル

現在、これらの優先順位の低いセクターを省略。したがって、choose_sceneシーンを入力した後、直接試合を開始します。

ファイル

試合を開始する前に、我々はMGOBEコンソールのマッチングルールを作成する必要があります。

首先,在控制台左侧菜单【房间管理】,找到【匹配规则集】

ファイル

新建规则集,填写规则集名称和规则集内容。名称随意填就好,规则集内容是一个json。它的结构是这样的:

ファイル

我以当前坦克大战的规则集为例,解释一下各个字段的含义。

{
  "version": "V1.0",  //版本号,一般填V1.0就可以
  "teams": [
    {
      "name": "1v1",  // 名称1v1
      "maxPlayers": 1,  //每支队伍的最大玩家数量为1
      "minPlayers": 1,  //每支队伍的最小玩家数量为1
      "number": 2  //总共有两支队伍
    }
  ],
  "playerAttributes": [
    {
      "name": "lv",  //等级,匹配时需要传入此参数
      "type": "number"  //属性的类型,目前暂时仅支持number
    }
  ],
  "rules": [
    {
      "type": "deviation",  //匹配规则的类型:当前为误差规则
      "expression": "teams[i].players.lv", //依据玩家等级组队
      "value": 5, //表示所有玩家之间等级相差不能超过5
      "waitTimeSteps": [
        {
          "waitTimeSeconds": 10, //等待10秒若匹配不上,则放宽规则
          "value": 10 //把等级差放宽为10
        }
      ]
    }
  ],
  "timeout": 15 //全局匹配超时时间
}

更复杂的匹配规则,可以参考官方文档:
https://cloud.tencent.com/document/product/1038/34952

规则集创建完之后,就需要创建匹配code了。左侧菜单【房间管理】,找到【在线匹配】。右侧新建匹配,填写描述信息,匹配规则选择刚才我们创建的那条匹配规则集。

ファイル

点击确定之后,就会分配一个匹配code,这个code就是调用发起匹配API需要传入的一个参数。

现在,可以调用room.matchPlayers方法发起匹配了。匹配超时之后,会弹出超时的对话框,可以选择重新匹配,或者取消匹配退出匹配队列。取消匹配,会返回到home_scene场景。(超时对话框是我从cocos论坛找的UI,结合自己需要改的)

ファイル

至此,整个匹配的主要流程就讲完了。查看完整代码,在公众号回复关键字“帧同步”即可获取。

说明一下:

  1. 目前MGOBE匹配支持两种模式,房间匹配和玩家自由匹配。房间匹配采用的是类似于棋牌游戏,一个玩家开房,然后邀请其他玩家进来游戏,或者其他玩家通过房间匹配进来。所有玩家准备之后,开始进行游戏。而玩家自由匹配,是指所有玩家进行的单人匹配。因此,目前框架不支持类似于王者荣耀那样的组队匹配。之前,有联系过他们的产品,说以后会上线此功能。

  2. 帧同步,所有逻辑都在客户端完成,因此不需要在服务端写额外的代码。这样一来,有好处也有坏处。好处就是我们不用关心服务端的实现,坏处就是灵活性不够强,很多问题,只能通过在客户端想办法来实现。另外,此框架有个需要注意的地方就是,在这种情况下,也需要下载实时服务器的代码(即服务端),然后发布到实时服务器。操作流程可查看官方文档。

  3. すべてのAPIフレームワークはMGOBE.t.dsファイルの解釈と使用に対応しています。だから、この文書を見てみると、フレームワークと、あなたがより身近になります。

  4. コメントアウトコード内のコードがたくさんあります。様々な実装と左を比較するために、いくつかのデバッグプロセスでは、現在の論理の影響の前にコードを維持するためにいくつかの。無視することができます。

  5. コードは、私のサーバーパラメータで一時的にアップ実行cocoscreator 2.0.10をすることができ、直接ダウンロードすることができます。

おすすめ

転載: www.cnblogs.com/starry-skys/p/11980419.html