创建JS:使用"容器”;

Create JS: Usage of "containers"

本文关键字:容器 quot JS 使用 创建      更新时间:2023-09-26

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

我将使用create-jscontainer对象。

我想为容器设置一个初始的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);

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

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

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