Javascript Create JS:Usage of";货柜;

Javascript Create JS:Usage of";货柜;,javascript,createjs,Javascript,Createjs,我正在创建一个RPG,想将我所有的精灵添加到一个spriteContainer中,将NPC添加到NPC container中,等等。。。原因是,我可以简单地将容器及其相关标签添加到舞台,而不是每个单独的精灵 我将使用createjs容器对象 我想为容器设置一个初始的x,y,但随后将容器中的每个元素设置为不同的x,y,并带有标签。我应该不使用容器吗?使用集装箱的原因是什么 谢谢 编辑:我在开始时调用AddNPC,它会创建一堆东西,然后将它们添加到容器中: function add

我正在创建一个RPG,想将我所有的精灵添加到一个spriteContainer中,将NPC添加到NPC container中,等等。。。原因是,我可以简单地将容器及其相关标签添加到舞台,而不是每个单独的精灵

我将使用createjs
容器
对象

我想为容器设置一个初始的
x,y
,但随后将容器中的每个元素设置为不同的
x,y
,并带有标签。我应该不使用容器吗?使用集装箱的原因是什么

谢谢


编辑:我在开始时调用AddNPC,它会创建一堆东西,然后将它们添加到容器中:

        function addNPCs() {
            var NPCs = [];
            spriteContainer = new createjs.Container();

            spriteContainer.x = spriteContainerX-camX;
            spriteContainer.y = spriteContainerY-camY;  

            spriteBMP = new createjs.Bitmap("myBmp.png");           
            spriteBMP2 = new createjs.Bitmap("myBmp.png");
            spriteBMP3 = new createjs.Bitmap("myBmp.png");  

            spriteLabel = new createjs.Text("Hey kitty! Come talk to me!", "14px Arial", "white");
            spriteLabel.y = -70;    

            NPCs.push(spriteBMP, spriteBMP2, spriteBMP3);   

            for (npcs in NPCs) {
                spriteContainer.addChild(npcs);
                console.log("added " + npcs);
            }

        }
stage.addChild(spriteContainer);
然后添加该容器:

        function addNPCs() {
            var NPCs = [];
            spriteContainer = new createjs.Container();

            spriteContainer.x = spriteContainerX-camX;
            spriteContainer.y = spriteContainerY-camY;  

            spriteBMP = new createjs.Bitmap("myBmp.png");           
            spriteBMP2 = new createjs.Bitmap("myBmp.png");
            spriteBMP3 = new createjs.Bitmap("myBmp.png");  

            spriteLabel = new createjs.Text("Hey kitty! Come talk to me!", "14px Arial", "white");
            spriteLabel.y = -70;    

            NPCs.push(spriteBMP, spriteBMP2, spriteBMP3);   

            for (npcs in NPCs) {
                spriteContainer.addChild(npcs);
                console.log("added " + npcs);
            }

        }
stage.addChild(spriteContainer);

容器提供了一种非常简单的方法来对对象进行分组,并将它们作为一个对象进行控制。这使得:

  • 一次性变换/平移一组项目(移动、旋转和缩放容器、设置alpha、合成操作、阴影等)
  • 将一组对象缓存为一个(
    container.Cache(0,0,w,h)
    以提高性能
  • 保持不同的排序顺序,例如将所有前景元素添加到容器中,将所有游戏精灵添加到容器中,将所有背景元素添加到容器中,然后在每个容器中进行排序,但不要担心不同层中的元素混淆

简而言之,这只是一种管理内容组的有用方法。您不需要使用它,但它不会对性能产生太大的影响-因此,对于任何复杂的内容,都绝对建议使用它。

查看createjs的文档。如果容器看起来会使您的工作更轻松,请使用它们。如果不需要,请不要麻烦。javascript有构造函数d对象实例化类似于许多其他面向对象语言(它只使用原型继承而不是类)。谢谢,Lanny!我想我会坚持使用它们。我能把我所有的精灵放到一个容器中,然后独立操作它们吗?或者这会破坏容器的用途吗?