Objective C - 抽象层 - Cocos2d(其他图形库)

时间:2013-09-11 13:40:09

标签: ios objective-c macos cocos2d-iphone

我有一个关于在使用grahpic图层时使用抽象图层的问题。

我用SFML 2.0编写了一些用c ++编写的游戏。当我写我的游戏时,写一个我使用的纯虚拟类。例如,SfSprite类继承自纯类Sprite。

使用它的优点是,我可以非常简单地切换grahpic库。我只使用纯类(在本例中为“Sprite”)。

现在我将在IOS上开发游戏。所以我的问题是:

  • 我可以用目标C中的协议实现这种模式吗?

  • 建议在ios游戏中实现这种模式吗?

1 个答案:

答案 0 :(得分:0)

  1. 是的,您可以使用协议。协议声明接口;抽象类也这样做。您可以将协议用于相同目的,但从技术上讲,它们与抽象类不同。
  2. 此模式与游戏无关。游戏编程没有什么特别的建议或不鼓励使用协议。
  3. Cocos2D-iphone本身在许多类中使用协议。

    为什么要实现切换库的目标?您将花费更多时间在抽象上而不是创建游戏,但更换图书馆的任务仍然很简单。不同的库具有非常不同的接口。

    在一个游戏项目的持续时间内坚持使用单个引擎会更好吗,如果确实需要,可以重新使用另一个引擎吗?支持多个平台(iOS,Android等)的可能性比将您自己的代码从一个库切换到另一个库更重要。