0

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

我将使用创建 jscontainer对象。

我想x,y为容器设置一个初始值,然后将容器中的每个元素设置为不同x,y的标签。我应该不使用容器吗?容器的原因是什么?

谢谢


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

        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);
4

1 回答 1

2

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

  • 一次变换/平移一组项目(移动、旋转和缩放容器、设置 alpha、compositeOperation、阴影等)
  • 将一组对象缓存为一个(container.cache(0,0,w,h)以获得更快的性能
  • 维护不同的排序顺序,例如将所有前景元素添加到容器中,将所有游戏精灵添加到容器中,将所有背景元素添加到容器中——然后在每个容器中排序——但不必担心不同层中的元素混淆

简而言之,它只是管理内容组的一种有用方式。您不需要使用它,但它不会对性能产生巨大影响 - 因此绝对推荐用于任何复杂的事情。

于 2013-08-07T15:37:41.603 回答