如何一次向所有在线用户显示掷骰子值


How to display a dice rolled value to all online user at a time?

在动作脚本Adobe flash中,我创建了一个掷骰子的棋盘游戏。虽然它是一个多人游戏并在线玩,但如果玩家1掷骰子,则掷骰子动作及其"价值应该对其他玩家可见"(即玩家2,玩家3,玩家4)。如何实现?

在服务器端使用 php。请给出一些建议。

这里有任何帮助吗?

谢谢。

这是一个

暗示问题,而不是特定于任何特定语言。观察者设计模式非常适合您的情况。

根据维基百科:

观察者模式

是一种软件设计模式,其中称为主体的对象维护其依赖项的列表,称为观察者,并自动通知它们任何状态更改,通常通过调用其方法之一。

因此,在这种情况下,您的"

观察者"是您的玩家,您将在"主体"中注册。每当观察者更改其状态(掷骰子)时,都会通知主体,然后也会通知所有其他观察者。

在这里,如何存储数据并不重要。只要观察者通知主体它已经掷骰子,主体就可以更新向其注册的所有观察者。

您可以从数据库表中存储/检索数据。然后,您只需在每个玩家移动时写入它,并在通知主体更新移动的所有观察者时从中读取。

因此,每个玩家都可以有自己的ID,这将是您的主桌键,当其中一个玩家采取行动时,表格就会更新。您需要一种方法来通知游戏知道表已更新。将其写入游戏不断检查的 xml 文件是一种方式,当 xml 数据更改时,它会更新玩家。

有各种各样的方法可以实现该模式,但您会发现使用 Observer 模式更容易理解。