ActionScript - 如何以随机顺序放置10种不同的菜肴(装载机)?

时间:2013-11-24 02:29:09

标签: actionscript-3 flash adobe

你好我有疑问,如果有可能需要你的帮助。 我有一个课程菜,我加载1个文件" .swf",我有一个像这样工作的小游戏: 盘子在x和y轴上移动,当我点击盘子时,它会下降。 但我想要的不仅仅是一道菜,我想要10种不同的菜肴和不同的图像。 我希望它们以随机顺序出现。 但我没有意识到我怎么不能这样做......有人可以给我"光"?

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

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

2 个答案:

答案 0 :(得分:0)

以下是每次获取随机菜肴的示例:

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

答案 1 :(得分:0)

谢谢你的回答! 所以我不能把所有的菜都放在同一个“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() ));
    }
}

}