访问相关图形对象的更好方法是什么

时间:2016-01-08 08:21:16

标签: javascript html5 2d-games pixi.js

我专门针对javacript,特别是pixijs canvas-webgl库,但这个问题很容易推广到制作游戏。

我正在开发一款简单的2D游戏。在游戏中,有各种对象被渲染为在屏幕上可见,并且通常它们彼此相关。例如,有5个敌人角色,每个角色都有一个武器,一个名字文字,一个命中点栏等,可以一起显示在屏幕上。

要对所有这些图形对象进行分组,通常会有一个Container,即Enemy,其对象放在children数组中。

但是,如何在代码中稍后访问某个特定对象? Enemies[3].children[0]并不意味着什么,索引可以更改。我想要得到的是,例如,具有属性weapon-1的敌人的身份race=hobbit的武器。

pixijs 中,我找不到一个例子。在 Kineticjs 中有find方法。在pixijs我也没看到。

我认为有三种方法可以在javascript中实现这一点(使用pixijs):

  • 编写一个通用find方法,允许搜索对象取决于其属性,每次我需要对象时,在Container内进行搜索。这就像 KineticJs 。但效率会有多高?

  • 使用所有图形对象保留一个巨大的javascript map,然后立即使用其变量名称即map.stage.enemies.hobbits[0].weapons.weapon1}到达我想要的对象。但我怎么能保持这个呢?似乎很容易失去控制。此外,仍然需要find函数来搜索动态变化的属性。

  • 与第二个相似;将子项作为变量添加到父项,即var weapon = new Weapon(); enemy.addChild(weapon); enemy.weapon1 = weapon;,然后在知道其变量名称后轻松到达该对象。但是,对象已经保存在children中,是否需要再次维护?

第一个似乎对我好。但是,

你怎么做得更好?你是如何组织这个的?还有更好的第四种方式吗?

感谢。

0 个答案:

没有答案