Actionscript 3 动作脚本3.0。如何添加随机子项和随机位置的项目

Actionscript 3 动作脚本3.0。如何添加随机子项和随机位置的项目,actionscript-3,flash,random,position,addchild,Actionscript 3,Flash,Random,Position,Addchild,在我的flash游戏中有9个可能的房间。每个房间有3个固定位置,可以添加物品。每个房间也有3个项目,但项目应始终添加在不同的位置 例如,如果这里有3个位置:Ax=1;y=1,Bx=2;y=2,Cx=3;y=3和Item1 Item2 Item3,有时Item1应添加到Ax=1;y=1,有时为Bx=2;y=2等应为添加项目位置的随机机会 在这张图中只显示了3个房间,但我总共有9个。正如您看到的,所有房间都有不同的物品位置,但每个房间都有固定的物品,蓝色、粉色和黄色的物品应该能够在每次添加到舞台上时

在我的flash游戏中有9个可能的房间。每个房间有3个固定位置,可以添加物品。每个房间也有3个项目,但项目应始终添加在不同的位置

例如,如果这里有3个位置:Ax=1;y=1,Bx=2;y=2,Cx=3;y=3和Item1 Item2 Item3,有时Item1应添加到Ax=1;y=1,有时为Bx=2;y=2等应为添加项目位置的随机机会

在这张图中只显示了3个房间,但我总共有9个。正如您看到的,所有房间都有不同的物品位置,但每个房间都有固定的物品,蓝色、粉色和黄色的物品应该能够在每次添加到舞台上时改变位置

做这件事的最佳表现是什么

声明如下:

var room1:Room1 = new Room1();
var item1:Item1 = new Item1();
var item2:Item2 = new Item2();
var item3:Item3 = new Item3();

var room2:Room2 = new Room2();
var item4:Item4 = new Item4();
var item5:Item5 = new Item5();
var item6:Item6 = new Item6();

....
所以在Room1中应该添加Item1 Item2和Item3,在Room2中应该添加Item4 Item5和Item6等等

首先,我需要随机选择9个房间中的1个。应该是这样的吗

addChildRoom+randNumber

稍后我需要指定是否为每个房间

if(Room+randNumber == Room1) {
   addChild(Item1);
   addChild(Item2);
   addChild(Item3);
}

但在这种情况下,如何为每个房间设置3个静态x、y位置,并为每个项目随机设置?

要随机选择9个房间中的1个,请使用以下代码:

var roomID:int = Math.round(Math.random() * 8 + 1);
var room:MovieClip = this["room" + roomID];
addChild(room);
室友是一个从1到9的随机数。 该房间是指向Room1、Room2。。。9号房间

if (room is Room1) // or if (roomID == 1)
{
    addChild(item1);
    addChild(item2);
    addChild(item3);
}
下一个。让我们设置x和y位置。在哪里存储x和y位置? 您说:“例如,如果这里有3个位置:Ax=1;y=1 Bx=2;y=2 Cx=3;y=3”。什么是A,B,C?Point类的实例

将向阶段添加三个项目时,请调用我的函数

    ...
    addChild(item1);
    addChild(item2);
    addChild(item3);

    var A:Point = new Point(100, 100);
    var B:Point = new Point(200, 200);
    var C:Point = new Point(300, 300);

    placeItems([item1, item2, item3], [A, B, C]);
}

function placeItems(items:Array, points:Array)
{
    for (var i:int = 0; i < items.length; i++)
    {
        var id:int = Math.round(Math.random() * (points.length - 1));
        items[i].x = points[id].x;
        items[i].y = points[id].y;
        points.splice(id, 1);
    }
}

谢谢你的回答。A B C什么都不是,我只是用它来解释我需要3个职位。我稍后会尝试一下,并告诉你这是否对我有效。