iohao / ioGame

无锁异步化、事件驱动架构设计的 java netty 网络编程框架; 轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式; 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景; 通过 ioGame 你可以很容易的搭建出一个集群无中心节点、集群自动化、分布式的网络服务器;FXGL、Unity、UE、Cocos Creator、Godot、Netty、Protobuf、webSocket、tcp、socket;java Netty 游戏服务器框架;

Home Page:http://game.iohao.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

模拟系统创建房间,GameFlowContext 的使用

twniuniu opened this issue · comments

你的问题 | 使用场景

引用 #297 后续 房间自动开始游戏 启动定时任务执行业务

描述你遇到的问题,或使用场景(询问框架能否满足此类需求)

GameFlowContext.of(room,FlowContext)

预期值

期望的预期值

GameFlowContext.of(room)

实际值

实际值

复现步骤

描述复现步骤,并提供复现 demo

版本

  • ioGame version:

可以描述一下具体的使用场景吗。
除了创建房间外,创建玩家、进入房间;解散房间、退出房间、玩家准备 ...等流程都是与玩家相关的。

游戏内的某个活动 需要通过系统自动创建房间及自动开始游戏 活动内的活动类似竞猜
玩家可在中途加入与退出活动房间
所有活动房间初始化的时候需要直接将活动房间的定时器打开。相当于游戏开始

protected void initRoom() {
    log.info("进入初始化房间");

    Map<Integer, RuleInfo> allRoomRuleInfo = getAllRoomRuleInfo();
    RoomService roomService = getRoomService();
    for (Integer i : allRoomRuleInfo.keySet()) {
        Room room = roomService.createRoom(RoomCreateContext.of()
                .setSpaceSize(40, 0)
                .option(RoomAttr.ruleInfo, getRuleInfo()));
        roomService.addRoom(room);
        roomService.startGame(GameFlowContext.of(room));
    }
}

明白了。

public void test() {
    Room room = ...;
    GameFlowContext context = GameFlowContext.of(room);
    ... 省略部分代码
}