Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Actionscript 3 动作脚本-如何将10个不同的盘子(装入器)随机排列?_Actionscript 3_Flash_Adobe - Fatal编程技术网

Actionscript 3 动作脚本-如何将10个不同的盘子(装入器)随机排列?

Actionscript 3 动作脚本-如何将10个不同的盘子(装入器)随机排列?,actionscript-3,flash,adobe,Actionscript 3,Flash,Adobe,你好,我有一个疑问,需要你的帮助,如果可能的话。 我有一个类盘,我加载1个文件“.swf”,我有一个小游戏,工作原理如下: 盘子在x轴和y轴上移动,当我在盘子中单击时,它会落下。 但我不想只吃一道菜,我要10道不同的菜,有不同的图像。 我希望它们以随机序列出现。 但我不知道我怎么做不到…有人能给我“光” 我使用这些变量将我的盘子加载到游戏项目的舞台上 var load_dish:Loader = new Loader(); var path:URLRequest = new URLRequest

你好,我有一个疑问,需要你的帮助,如果可能的话。 我有一个类盘,我加载1个文件“.swf”,我有一个小游戏,工作原理如下: 盘子在x轴和y轴上移动,当我在盘子中单击时,它会落下。 但我不想只吃一道菜,我要10道不同的菜,有不同的图像。 我希望它们以随机序列出现。 但我不知道我怎么做不到…有人能给我“光”

我使用这些变量将我的盘子加载到游戏项目的舞台上

var load_dish:Loader = new Loader();
var path:URLRequest = new URLRequest("dish.swf");

下面是一个例子,说明你每次都可以随机得到一道菜:

// whenever you need to create a new dish 

var dishFilenames:Array = ['dish1.swf', 'dish2.swf', 'dish3.swf']; // etc etc 
var randomIndex:int = Math.random() * dishFilenames.length;
var filename:String = dishFilenames[randomIndex];
var load_dish:Loader = new Loader();
var path:URLRequest = new URLRequest(filename);
谢谢你的回答! 所以我不能把所有的菜都放在同一个“swf”里? 我需要创建尽可能多的swf? 到目前为止,我班的菜是这样的: 我没有其他方法可以做到这一点?(只有一个包含所有菜肴的swf)

包装{

import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.MouseEvent;




public class Dishe {

    var velX: int;
    var velY: int ;


    var game:Game; //i have also a class game to control everyting
    var broken_dish:URLRequest = new URLRequest("broken_dish.swf");
    var gravity:int = 2;

    var dishFilenames:Array = [ 'dish.swf','second_dish.swf']; 
            var randomIndex:int = Math.random() * dishFilenames.length;
            var filename:String = dishFilenames[randomIndex];
            var load_dish:Loader = new Loader();
            var path:URLRequest = new URLRequest(filename);

    public function Dishe(e:Game, vX:int, vY:int)
    {
        velX = vX;
        velY = vY;
        load_dish.x = -180;
        load_dish.y = randomBetween(250,-5);
        load_dish.load(caminho);
        game = e; 
        game.myStage.addChild(load_dishe);
        load_dish.addEventListener(MouseEvent.CLICK, _shoot);

        }

    public function broken_dish(e:Event)
    {

        velY += gravity;
        load_dish.y +=velY ;
        if(load_dish.y >= game.myStage.stageHeight)
        {
            game.game_states(Game.state_playing);
        }

    }

public function _enterFrame(e:Event):void
{
    if(load_dish.content!=null)
    {
        load_dish.x += velX;
        load_dish.y += velY *(1 - (load_dish.x / game.myStage.stageWidth) * 2 );
    if(load_dish.x > game.myStage.stageWidth)
    {
         load_dish.y = randomBetween(250,-5);
         load_dish.x = -180;

    }

    }
}

    public function _shoot(e:MouseEvent):void
    {

        trace("nice!!");
        game.game_states(Game.state_stop);
        load_dishe.load(broken_dish);   
    }
    function randomBetween(a:int, b:int) : int {
        return a + int(Math.round( (b-a)*Math.random() ));
    }
}

}

我试过了,但不管用!我试过那个密码,但总是一样!应该可以正常工作,您必须没有错误地复制某些内容,或者现有代码中没有其他问题。只要您有一个多个唯一文件名的数组,这应该可以正常工作。感谢您的回答…我将您的代码调整到我的工作中,但所发生的是,randomIndex结果始终相同,因此我得到的始终是第一个([0])位置的盘!你的阵列中有多少个盘子?如果您有10,randomIndex并不总是0。同样,您复制的内容不正确或类似。如果你在数组中只有一道菜,那么你当然只能得到第一道菜。我现在有两道菜要测试,我更新了我的代码。你能看看是否一切都正常吗?谢谢你再给我一次机会!你不清楚你想要什么。如果你愿意,你可以把所有的菜都放在同一个盘子里。如果每个框架上都有一个盘子,只需使用
gotoAndStop()
将框架更改为您想要的任何盘子即可-您说过您需要10个不同的装载机,这就是为什么我假设您有多个。swf的每个框架都有一个不同的盘子。