|
Flow1:: bool MouseProc(int,int,unsigned __int32)
{
fos=fosExitNotClear; //设定当前流程需要退出
NextObject=new SecondObject; //设定下一个流程对象
//之后对象控制器会自动清除当前对象,并将指定的对象做为新的当前对象
return(true);
}
void ObjectReturn(FlowObject *obj)
{
//这里的obj为之前new出来的NextObject,这个函数在NextObject被delete前调用,一般用来回传参数
fos=fosOK;
NextObject=NULL;
}
Flow2:: bool OnClick(int,int,unsigned __int32)
{
fos=fosReturn; //设定当前状态为返回上一次调用fosExitNotClear的类
return(true);
}
问题1: Flow2 返回后是不是就被清除了? 如果想再次从Flow1进入,是不是又要重新new一个Flow2? 那这样如果Flow2很多资源要加载,重复加载玩家会觉得不爽。
问题2:Flow1 Flow2之间的游戏数据,除了使用全局变量外,有函数可以传递吗?
PS:我是希望把游戏设计成 StartMenu流程,第1关(找茬),第2关(打飞机),……,结束流程。//就不用关注gamestate了
1.希望能节省加载时间,加载过的流程可以重复使用,不需要NEW,任意流程时都可以指定到某个流程(不是NEW出来的)。
2.不同流程对共同数据的处理,比如游戏分数等,除了全局变量外,有其他解决方法吗
总的是希望学会用引擎管理游戏流程的方法,能很好的扩充和变更,以便之后可以专注在游戏内容的设计上。 |
|