长时间读者首次海报。请温柔。“自觉”课程?
我热衷于在VB.net中创建游戏。作为一名业余爱好程序员,我可以免费游戏。由于我没有经过正式培训而最懒散,所以我尝试着学习正确的编程原则,并在编程时遵循它们,如OOP。然而,有些事情我明显错过了自学,也许我会知道我是否受过正式的教育。
一旦这样的问题真的成了我的祸根,那么不同类别(从现在开始被称为对象)'彼此'了解',而无需编程具体交互(请在此留言......请......)
好的想象这,你有一个空间的游戏,以下对象
- clsShip
- clsMissile
- clsAsteroid
- clsSpaceJunk
现在,这些对象中的每一个都有一个Health,X,Y和Z私有成员和属性,它们都是为了参数而从clsSpaceEntity继承的。现在他们之间的编程冲突的一个方法是将代码从下面的逻辑在游戏主循环
为每艘船舶
检查每个clsMissile在列表中的一个列表,看它是否与它,如果碰撞因此,降低健康
检查每个clsAsteroidin列表,看它是否与它,如果是碰撞时,降低健康
检查每个clsSpaceJunka列表,看它是否与它,如果是碰撞时,降低健康
...等对等为每个对象 未来
ECT ECT等...
现在,如果你说的是简单的例子以上,但我的一些游戏有几千万甚至,在这个基本的方式进行交互的对象数百这可能还好缝。现在
我的问题有经验的程序员在那里。
是否有面向对象的方式来执行下列操作...
为从clsSpaceEntity继承每一件事情
针对继承此类型(除本身)所有其他对象 检查,如果他们相碰,然后降低健康
未来
?
这种能力对于一个类型的对象/类或什么的,要作另一个“识别”和它们是如何相同/不同的互动会救我吨,吨和编码吨。
任何援助/帮助或反馈,这将是非常赞赏。感谢您的时间,对于长时间的阅读感到抱歉。
不要使用匈牙利符号('clsWhatever')。 – SLaks
它看起来像你试图实现适当的问题分离。使用更多的OOP概念,您可以制作精美分离的逻辑,而无需处理每种类型对象的巨大方法。祝你好运! – SLaks
稍微偏离主题,但您对类和对象似乎有点困惑。虽然它们是相关的,但它们并不是一回事。这个评论框对于完整的解释有点小,但是阅读差异会让你的生活更轻松。 –