shadowice3
注册于:2009年6月29日 等级:新手上路 帖子数:4 积分:31 阅读权限:10 | |
其实这个问题问的有点笼统了。具体点来说的话,问题出自我自己正边学边弄的一个独立游戏中。 是这样的: 为了我代码的重用性,我把我的图像引擎从游戏引擎中独立出来了。首先我想知道:这样对不对?
然后,为了保证这个库的纯正,我不希望在图像引擎的代码里处理任何和游戏本身有关的东西。比如,我并不希望在图像引擎中出现类似: if(nextframe==NULL) { game->setState(gameover);//这个指针和函数的调用方式是我非常不希望它出现的..... } //以上是伪代码,
那么,有没有其他的办法可以让游戏引擎知道图像引擎的运行状态,而不必每一帧,每一次循环都去检索一下呢?(每次检索的话,感觉效率太低了)
难道只有模仿c#的委托机制么?追根究底,委托还是函数指针啊.....
总结问题: 1.我把图像引擎从游戏引擎中独立出来,自成为一个类库,以便于以后写游戏时的重用,这种方法正确吗?可取吗? 2.因为我设计的结构式,游戏引擎里面包含了图像管理引擎,声音控制类和输入控制类。所以,我不希望在创建图像管理引擎的时候,必须把一个游戏引擎对象的指针给它,否则结构上感觉很不美观。这种想法正确么? 3.如果错误,那么请问应该用一种什么方法来看待这种关系? 如果正确,那么请问我应该是用什么方法来达成这种类似回调函数的效果?函数指针么? 4.可能冒昧了,我有点想知道《异想II》是如何处理当——你鼠标移到一个按钮上,点击按钮以后,数据区域或者场景发生相应变化——这种逻辑效果的?
提问最后,感谢答疑者。
|
|
|
| 🗓2009-7-26 20:28(约15年前) 👁802 |
|
|
Jeminai
自称:雙子騎士注册于:2005年5月26日 等级:站长 帖子数:6428 积分:41808 阅读权限:200 | |
1: 理应如此,便于日后移植留后手。 \N2:我和你相反,我是把图像管理引擎,声音控制类和输入控制类的指针给游戏引擎随时调用。 \N3:我是采用游戏引擎初始化时,把各种所需的各种类指针装载进来恭候调用。 \N4:你要编写一个专门的操作界面UI类,在这里面获取和处理各种消息事件,当然这个类指针也要装进游戏引擎系统里的,然后游戏系统根据UI的获取的消息事件做相应的处理。 \N \N其实说起来这几句话,实际做起来那麻烦的老了去了。[em82]
|
我的Blog网址:blog.geminight.com |
|
|
|
shadowice3
注册于:2009年6月29日 等级:新手上路 帖子数:4 积分:31 阅读权限:10 | |
受教了。实际做起来有多麻烦,我已经深有体会了啊...[em06]
|
|
|
|