gpt4 book ai didi

java - 使用 Adob​​e BlazeDS/LiveCycle 向客户推送问题

转载 作者:行者123 更新时间:2023-12-01 05:55:01 27 4
gpt4 key购买 nike

在过去的几周里,我一直在创建一种完全围绕玩家行为的基于文本的冒险游戏。总的想法是,有一个模拟类来维护世界的状态,并且是模拟 Controller (即玩家)保持 Action 继续进行的责任。大多数时候,会说 Controller 告诉模拟要做什么(即向前模拟 1 个时间步长),但偶尔模拟需要向 Controller 询问一些信息。因此,我创建了一个像这样的界面:

/**
* An interface to a GUI, command line, etc;
* a way to interact with the Simulation class
* @author dduckworth
*
*/
public interface SimulationController {

/**
* Returns the index of a choice from a list
*
* @param message: prompt for the player
* @param choices: options, in order
* @return: the index of the choice chosen
*/
public int chooseItem(String message, List<String> choices);

/**
* Returns some text the player must type in manually.
*
* @param message
* @return
*/
public String enterChoice(String message);

/**
* Give the user a message. This could be notification
* of a failed action, some response to some random event,
* anything.
*
* @param message
*/
public void giveMessage(String message);

/**
* The simulation this controller is controlling
* @return
*/
public Simulation getSimulation();

/**
* The primary loop for this controller. General flow
* should be something like this:
* 1) Prompt the player to choose a tool and target
* from getAvailableTools() and getAvailableTargets()
* 2) Prompt the player to choose an action from
* getAvailableActions()
* 3) call Simuluation.simulate() with the tool, target,
* action chosen, the time taken to make that decision,
* and this
* 4) while Simulation.isFinished() == false, continue onward
*/
public void run();
}

所有这一切的主控制循环必须在SimulationController.run()中实现,但模拟也可以调用其他方法来向玩家请求一些信息。

我目前正在使用 Adob​​e Flex 和 BlazeDS 创建一个非常简单的用户界面,该用户界面将通过实现或保留实现 SimulationController 接口(interface)的内容来与模拟进行通信。有“长轮询”的概念,但我不承认完全知道如何将它与这样的远程对象一起使用。

我的问题是,什么是好的设计模式来将信息推送到播放器,以便所有模拟请求直接发送到Flash客户端,并且所有控制循环逻辑都可以保留在Java端?

谢谢!

最佳答案

在 wiki 上阅读有关 Push technology 的内容理解主要概念。之后阅读 BlazeDS 开发人员指南中的消息传递部分。

我假设您有一些使用 BlazeDS 的经验..(至少您在某些应用程序服务器中安装了它)。查看示例文件夹,您会发现两个有趣的示例(一个聊天应用程序,另一个称为 datapush)。它们非常容易理解。

关于java - 使用 Adob​​e BlazeDS/LiveCycle 向客户推送问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3312639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com