2013-11-24 100 views
0

你好我有疑問,需要你的幫助,如果可能的話。 我有一個班級菜,我加載1個文件「.swf」,我有一個小遊戲,它的工作原理是這樣的: 這道菜在x和y軸上移動,當我點擊它掉下來的菜時。 但我想不僅有一道菜我想有10種不同的圖像與不同的菜餚。 而我希望它們以隨機順序出現。 但我沒有理想,我不能這樣做...有人可以給我「光」?ActionScript - 如何以隨機順序放置10種不同的菜餚(裝載機)?

我使用這個變量來加載我的菜到我的遊戲項目的階段。

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

回答

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); 
+0

我試試嗎?但不工作!我試過這個代碼,但總是出現同一道菜! – OzzC

+0

應該工作得很好,你不能在你現有的代碼中錯誤地複製或者有其他問題。只要你有一個多個獨特的文件名數組,這應該工作得很好。 – prototypical

+0

感謝您的回答...我將您的代碼調整爲適合我的工作,但會發生什麼情況是randomIndex結果總是相同,所以我總是在第一個([0])位置上放置相同的菜餚! – OzzC

0

感謝的答案! 所以我不能在同一個「瑞士法郎」的所有菜餚? 我需要創建儘可能多的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())); 
    } 
} 

}

+0

你不清楚你想要什麼。如果你願意,你可以把所有的菜餚放在同一個.swf中。如果每個框架上都有一道菜,只需用'gotoAndStop()'把框架改爲任何你想要的菜。 - 你說你想要10個不同的裝載機,這就是爲什麼我假設你有多個.swf的每個都有不同的菜。 – prototypical