在 Collision AS3 上生成随机文本

Generating Random text on Collision AS3

我想在一个物体撞到另一个物体时生成一些随机词。

我试过了,但只出现一个词,而且再也不会改变。

另外,如果我为随机文本制作一个新的 class 或者将其包含在主 class 中是否足够好?谢谢!

这是我当前的代码:

package  {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;



public class Main extends MovieClip {

    public var cell:Cell;
    public var group:Array;
    public var gameTimer:Timer;
    public var score:int = 0;
    var array:Array = new Array ("Apples",
                                 "Bananas",
                                 "Grapes",
                                 "Oranges",
                                 "Pineapples"); //create an array of possible strings
    var randomIndex:int =  Math.random () * array.length;
    //public var randomTxt:String;





    public function Main() {

        group = new Array();


        gameTimer = new Timer (25);
        gameTimer.addEventListener(TimerEvent.TIMER,moveCell);
        gameTimer.start();
    }

    private function createCell(_x:Number = 0, _y:Number = 0):void {
        var cell:Cell = new Cell(_x, _y);
        group.push(cell);
        addChild(cell);
    }


     function moveCell (timerEvent:TimerEvent):void {

         if (Math.random() < 0.01) {
             var randomX:Number = Math.random()*800;
             var randomY:Number =  Math.random()*600;
             createCell(randomX, randomY);
         }


         for (var i:int = 0; i < group.length; i++)
         {
             var cell:Cell = Cell(group[i]);
             if (cell.hitTestObject(island))
             {
                 cell.parent.removeChild(cell);
                 group.splice(i,1);
                 score++;
                 txtWordDisplay.text = "Killed by" + array [randomIndex];


             }




         }

    scoreOutPut.text = score.toString();



    }


}

}

它始终是同一个词,因为您只在程序开头设置了一次 randomIndex

一个简单的修复方法是在发生碰撞时更新该值:

if (cell.hitTestObject(island))
{
    ...
    randomIndex =  Math.floor(Math.random () * array.length);
    txtWordDisplay.text = "Killed by" + array [randomIndex];
}