游戏类继承






1.78/5 (9投票s)
一种简化游戏类和代码的方法,以达到最大的效率。
引言
在创建视频游戏时,代码量可能会变得庞大且无序。虽然游戏会用到大量的类(至少可以说),但使用继承,你会发现为PC视频游戏编写代码的过程实际上可以非常井井有条。
使用代码
当一个类继承另一个类时,它基本上会克隆每一个变量、方法和属性,就像它们都在该类中声明一样(尽管可见性有限[私有成员只能通过委托访问])。这是一种避免重复输入冗余代码的有效方法。这种用法类似于某种蓝图……比如一栋房子。建造者不必一遍又一遍地创建相同的蓝图,而是可以将图纸复制到不同的工作中。
在这个示例中,你将看到三个对象的类。一个是地精,一个是主角,最后一个是箱子。现在,从复杂的角度来看,地精、主角和箱子实际上并没有太多的共同之处,但它们共享一些相似的属性:它们都有尺寸。因此,利用这种共同性,你可以创建一个可继承的类,来概括这三个对象的基本尺寸。
'(MustInherit Optional)
Public MustInherit Class PhysicalObject()
Public Area As Rectangle
End Class
声明这个类可以省去为每个类定义面积变量的麻烦,并确保游戏中所有物理对象的尺寸一致性。要将此继承到其他类中,你可以这样做
Public Class Goblin
Inherits PhysicalObject
End Class
Public Class MainChar
Inherits PhysicalObject
End Class
Public Class Box
Inherits PhysicalObject
End Class
类只能继承另一个类,这可能有点遗憾,但也迫使你保持代码的一致性和组织性。虽然每个类只能继承一个类,但继承了自身具有继承权的类,就可以访问与该类相关的那些继承权。因此,如果另一个类要继承“Box
”类,它也会间接继承“PhysicalObject
”类。
在游戏代码中使用继承就像一个流程图,从模糊到具体。
在这个流程图中,所有内容都与其左侧连接的内容相关联。Obj
与钢箱无关,但通过 Box
类,钢箱与 Obj
类相关联,并具有所有相同的方法、属性和变量(至少是公共的那些)。使用这种方法,你可以保持代码的组织性和惊人的简单性,方便调试和修复,并且这种方法还可以通过节省你为每个类重新声明变量的时间来加速编码过程,并允许你随时介入并为游戏创建一个新的对象。要进入这个流程图并为游戏创建一个“金箱”将不会很困难!只需继承“Box
”类,所有箱子的基本设置就准备好了!