我一直在研究Obj-C的游戏引擎,并决定在Obj-C中为它构建一个编辑器。这就是我现在所做的,但是我想摆脱所有的"胶水代码"并遵循"最佳做法"。花费大量时间用于粘合代码"并且代码库变得非常大,以便与对象相互依赖并保持依赖。一个典型的老派场景: - )
View包含很多选项,例如复选框,滑块和放大器。文本框。
1)当" Stars" number更改为2000,操作将发送到Controller。
2)控制器验证输入,数字文本字段有数字格式化程序,但文件名或其他名称的文本输入通过运行一些代码来检查输入是否有效。
3)数字是星号(2000)被发送到下一层,游戏引擎场景(有一个Starfield对象成员)。
4)游戏引擎场景将新数量的星星应用于Starfield对象成员。
*)如果游戏引擎场景或Starfield对象内的星数变化,则会调用Controller,然后更新UI文本字段。
如何才能使这一点变得更加高效,为我能设置的所有选项摆脱所有胶水代码,保持简单干净? 我是否还需要修改游戏引擎以使编辑器及其UI更好地工作?
我想我应该瞄准这样的事情,您怎么看? 使用绑定,KVO等?
示例代码:假设我更改了文本字段中的星数,并且会调用它。
// in the Controller class
- (IBAction)starfieldAmountChanged: (id)sender
{
const NSInteger numOfStars = [sender integerValue];
[mGameEngineTestScene setStarfieldAmount: numOfStars];
}
// in the Game Engine test scene class
- (void)setStarfieldAmount: (NSInteger)newAmountOfStars
{
[mStarfield setAmountOfStars: newAmountOfStars];
}
- (NSInteger)getStarfieldAmount
{
return [mStarfield getAmountOfStars];
}
由于