本文已假定你已通读了官方文档。
1)SFS2X提供了两个层次的扩展:ZONE,ROOM。
一般棋牌类游戏有房间概念,我们可以认为一个ROOM 就是一张桌子的概念。ROOM 可以按照不同的组ID 分到不同的分组中。(虚拟的组)
一个ZONE下对应多个ROOM。
我们知道,每个不同的ROOM 有不同的游戏状态。所以,就用ROOM扩展作为游戏的主逻辑。官方原文如下。
* a Room-level Extension can only listen to the events in that Room and manage
* the Users contained in it. A typical use of Room-level Extension is to manage
* the logic of a game running in the Room.
所以,可以这样写类
public class AAAGameExtention extends SFSExtension {...}
覆写此方法,加上你的事件监听处理器(其中实现处理逻辑)。
@Override
public void init((){...}
这个就是实现游戏主逻辑的地方。(一般建议:在 AAAGameExtention 中 建一个 AAAGame的类作为一个实例变量,实现主逻辑。而AAAGameExtention
主要是与房间变量放置,修改的地方。)
有时,我们发现,对于ROOM的控制,如果我们去再ZONE的配置文件中添加修改,那是有点繁琐。
那我们可以在ZONE扩展里做这个事情,不用配置在文件中,而是可以从我们的数据库中,程序动态创建游戏房间。
下篇:ZONE 扩展介绍。
(Q群号:33431550 可来此讨论一起学习。谢谢)