Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问相关图形对象的更好方法是什么_Javascript_Html_2d Games_Pixi.js - Fatal编程技术网

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

Javascript 访问相关图形对象的更好方法是什么,javascript,html,2d-games,pixi.js,Javascript,Html,2d Games,Pixi.js,我特别要求提供javascript,尤其是pixijscanvas-webgl库,但这个问题很容易推广到制作游戏中 我正在开发一个简单的2D游戏。在游戏中,有各种各样的物体被渲染成在屏幕上可见,并且通常它们彼此相关。例如,有5个敌人角色,每个角色都有一个武器、一个名字文本、一个生命点栏等,可以一起显示在屏幕上 为了对所有这些图形对象进行分组,通常有一个容器,即敌人,其对象被放入子对象数组中 但是我以后如何访问代码中的一个特定对象?敌人[3]。子对象[0]并不意味着什么,索引可以更改。我想要得到的

我特别要求提供
javascript
,尤其是
pixijs
canvas-webgl库,但这个问题很容易推广到制作游戏中

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

为了对所有这些图形对象进行分组,通常有一个
容器,即
敌人
,其对象被放入
子对象
数组中

但是我以后如何访问代码中的一个特定对象?
敌人[3]。子对象[0]
并不意味着什么,索引可以更改。我想要得到的是,例如,敌人的id为
language-1
的武器,属性为
race=hobbit

在小精灵中,我找不到这样的例子。在Kineticjs中有
find
方法。在《小精灵》里我也没看到

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

  • 编写一个常规的
    find
    方法,该方法允许根据对象的属性搜索对象,每次我需要对象时,在
    容器中进行搜索。这就像在KineticJs中一样。但效率有多高

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

  • 与第二种类似;将子对象作为变量添加到父对象,即,
    var-wearm=new-wearm();敌方。addChild(武器);敌方武器1=武器,然后在知道其变量名的情况下轻松访问该对象。但是,对象已经保存在
    子对象中,是否需要以第二种方式再次维护

在我看来,第一个更好。但是,

您如何做得更好?你是怎么组织的?有更好的第四条路吗?


谢谢。

毫无疑问,您的选项二将是我的第一选择,您是否可以展开“动态更改属性”。@KФ例如,当单击对象时,我们可以将“isClicked”属性更改为true,然后我们可以搜索“clicked”子项。是的,对于mvc模型,这可能在模型部分,但是想象一下我们想要在图形对象本身上保留这样的属性。毫无疑问,您的选项二将是我的第一选择,您可以扩展“动态更改属性”吗?@KФ例如,当单击对象时,我们可以将“isClicked”属性更改为true,然后我们可以搜索“点击”的孩子。是的,对于mvc模型,这可能在模型部分,但是想象一下,我们想要在图形对象本身上保留这样的属性。