1

我正在做一个棋盘策略游戏。问题是我之前进行了一次房间聊天,连接的玩家可以使用组合框选择他的颜色(类似于帝国时代 2)并一直交谈直到主机开始游戏。

问题是我不知道如何更新其他玩家的 GUI 以显示玩家 X 选择了红色。

我已经将游戏(主机)的创建者与客户端连接起来,我可以通过控制台相互发送消息。但我真的不知道如何从一个简单的组合框更改后更新两个 GUI。

如果玩家 2 将他的颜色设置为绿色

然后它必须在其他播放器 GUI 中显示为绿色,但我不知道该怎么做。

4

3 回答 3

1

您可以尝试实现观察者设计模式

于 2013-02-27T15:01:26.847 回答
1

您必须向组合框添加一个侦听器。侦听器应将特殊消息(命令)与颜色(类似于“playerColorChanged #00ff00”)一起发送到主机,并且主机必须将其分发给所有其他客户端(另外附加源玩家名称/ID)。然后客户端必须相应地更新他们的 GUI。

我不知道您的代码,但可能必须更新客户端和主机之间的当前通信协议才能发送此类“系统消息”。

于 2013-02-27T15:00:38.907 回答
0

根据您的客户端/服务器协议的编写方式,您应该有一些发送不同消息类型的方法。让每个客户端向服务器发送特定的消息类型,通知玩家何时选择一种颜色,然后将其转发给所有其他客户端。这些客户端中的每一个在收到该消息后都会更改相关的 UI 指示器。

(该方法可以与对等协议类似。)

于 2013-02-27T15:06:11.713 回答