加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – ‘自我意识’课程?

发布时间:2020-12-17 00:18:28 所属栏目:大数据 来源:网络整理
导读:长时间读者第一次海报.请温柔. 我热衷于在VB.net中创建游戏.作为一个业余爱好程序员,我免费赠送我的游戏.由于我是一个没有正式训练的爱好者,我确实尝试并教育自己正确的编程原则,并在编写OOP时遵循它们.然而,有些事情我显然错过了自学,也许我会知道我是否接
长时间读者第一次海报.请温柔.

我热衷于在VB.net中创建游戏.作为一个业余爱好程序员,我免费赠送我的游戏.由于我是一个没有正式训练的爱好者,我确实尝试并教育自己正确的编程原则,并在编写OOP时遵循它们.然而,有些事情我显然错过了自学,也许我会知道我是否接受过正规教育.

一旦真正成为我的祸害的问题是不同的类(从现在开始称为对象)如何“了解”彼此没有编程特定的交互(请留在这里……请…)

好的想象一下,你有一个太空游戏和以下物品

> clsShip
> clsMissile
> clsAsteroid
> clsSpaceJunk

现在,这些对象中的每一个都有一个Health,X,Y和Z私有成员和属性,这些成员和属性都是为了参数而从clsSpaceEntity继承而来.现在,它们之间编程碰撞的一种方法是在主游戏循环中编写以下逻辑

对于船舶清单中的每艘船舶
检查列表中的每个clsMissile以查看它是否与它发生冲突,如果是,则降低运行状况
检查列表中的每个clsAsteroid是否与它发生冲突,则降低运行状况
检查每个clsSpaceJunka列表以查看它是否与它发生冲突,则降低运行状况
…等等每个对象
下一个

等…

现在,如果您谈论上面的简单示例,但是我的一些游戏有几十甚至几百个以这种基本方式交互的对象,那么这可能会好转.

现在我向经验丰富的程序员提问.

OOP中是否有办法执行以下操作…

对于从clsSpaceEntity继承的每个东西
检查继承此类型的所有其他对象(除了它自己)以及它们是否发生冲突然后降低运行状况
下一个

对于某种类型的对象/类或任何“了解”另一个对象以及它们如何相同/不同并且相互作用的这种能力将节省我吨和吨和编码的TONNES.

任何帮助/帮助或反馈都将非常感激.感谢您的时间,对不起阅读.

您应该创建一个包含所有实体的List(Of SpaceEntity),而不是为每个派生对象提供单独的List(Of T).

然后,您可以创建一个嵌套的For Each循环,循环遍历每对实体并进行冲突检查. (在if x<> y检查之后)

您可以通过为SpaceEntity提供MustOverride函数来处理与其他对象的冲突,而不会使用每个实体的单独逻辑污染碰撞循环,从而进一步增强您的设计.
您应该使用visitor pattern来允许实体对与不同其他类型的实体的冲突做出不同的反应.

请注意,每次碰撞都将被发送到两个单独碰撞的对象;你需要在你的逻辑中处理它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读