代码之家  ›  专栏  ›  技术社区  ›  Morrowless

在定义多个具有不同特性的对象时,如何避免代码重复?

  •  1
  • Morrowless  · 技术社区  · 14 年前

    我认为这一定是游戏编程中的一个非常常见的问题,在这个问题中,你有许多具有各种功能的字符。

    我正在使用协议来定义尽可能多的字符操作,以及当我需要对象共享大块代码时的继承。协议的问题在于它们只定义接口,因此实现通常是重复的代码。是否有更好的方法来解决这个问题,或者在这种情况下,是否可以接受 一些 代码重复?在Objective-C中没有多重继承,所以这是不可能的。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Firas Assaad    14 年前

    这是游戏设计中继承的一个常见问题。您可以尝试使用 components 相反。实现基于组件的系统有不同的方法,但通常情况下,游戏实体是组件的容器,您可以轻松地为不同的实体重用组件。以下是您可能会发现有用的更多资源:

        2
  •  1
  •   Kylotan    14 年前

    “我认为这一定是很常见的 游戏编程中的问题 有很多不同的角色 能力。”

    不,一般不会。听起来你在为游戏中的每种角色创建新的类或类型,而通常我们只创建一个角色类,并通过不同的方法或可互换的行为类实现不同的行为。如果有非常不同的行为,那么把它们放在用不同语言编写的脚本中是很常见的。不同功能的许多排列本质上是数据问题,而不是代码问题。