游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3397|回复: 4

关于FlowControl的应用问题

[复制链接]

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2011-4-13 10:13:00 | 显示全部楼层 |阅读模式
请教下 GameApplication 中的 flow (流程控制器) 的常规使用方法. (手册和示例中几乎没有提到)

我是用app中的flow 控制整个游戏的流程,比如从"欢迎界面"流程 -> "菜单"流程->"游戏过程"->"结束"

main函数中 : app.SetStart(new TestFlow1(&app));    //把应用程序指针传入流程(在流程中可以控制整个程序的流程)

TestFlow1::TestFlow1(GameApplication* app)
{
   m_pApp = app;
} // Flow1的构造函数,保存应用程序指针

TestFlow1::OnNextFlowButtonClick(GUIObject* obj)   //Flow1中的某个按钮事件
{
    if(!this->NextObject)
         NextObject = new TestFlow2(m_pApp);
    m_pApp->flow->Call(NextObject);
}

还是想请教下作者,比较合理的使用方法.方向就行,不需要代码.

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-13 10:16:00 | 显示全部楼层

Re:关于FlowControl的应用问题

曾试用过HOHO,HGE,CLANLIB 还是发现古月功能最完整. 研究过程中最大困难就是没有完整的手册说明和详细的示例研究

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-13 10:25:00 | 显示全部楼层

Re:关于FlowControl的应用问题

FlowControl在GameApplication中本就存在,无特殊必要无需自定义。

FlowControl中的Call,Exit是极特殊情况的用法,一般无需使用。
FlowObject在运行中,如要进入下一流程,或是返回上一流程,设置好NextObject,并设定fos值即可。

比如:
StartMenu:开始菜单
GameUnit:游戏单元

在一开始的GameMain()中

app.SetStart(new StartMenu);

在StartMenu的某个按钮的OnClick事件中写下
NextObject=new GameUnit;  //指定下一单元
fos=Exit;                 //指定当前单元退出


fos的值可参见FlowObjectState枚举定义,

                fosExitNotClear,                ///<退出,但不清除
                fosExitToBack,                  ///<退出到后台,继续绘制和刷新,但不接收事件
                fosReturn,                      ///<返回上一个状态为ExitNotClear/ExitToBack的对象

                fosExit,                        ///<退出,进入下一个对象
                fosExitFlow,                    ///<退出当前流程控制中的所有流程对象,并进入指定的下一个流程
                fosExitGame,                    ///<退出整个游戏

16

主题

31

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2011-4-13 10:36:00 | 显示全部楼层

Re:关于FlowControl的应用问题

非常感谢,还有个问题,请问FlowControl中有查找功能吗,就是遍历所有流程


就是想 flow1 -> flow2 -> flow3 -> flow4 -> null  指针这样连接的,但是我不想打乱顺序,想在任何flow时,直接返回到指定的flow(比如flow1)

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-13 16:56:00 | 显示全部楼层

Re:关于FlowControl的应用问题

FlowControl中有有一个objstack属性,是保存的这个信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-12-22 09:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表