1

AS3ムービークリップをランダムに動かしたいのですが。これは私が現在持っているもので、ENTER_FRAMEイベントにバインドされています。これにより、ムービークリップが左上から右下の端に移動するのは明らかなので、ターゲット位置を追加/削除するには、なんらかのスイッチが必要です。

function movePsycho(e:Event):void {
    e.target.y += Math.random()*2;
    e.target.x += Math.random()*2;
    if (e.target.y >= stage.height || e.target.x >= stage.width)
        e.target.removeEventListener(Event.ENTER_FRAME, movePsycho);
}
4

2 に答える 2

1

加算/減算する必要はありません。ランダムから正の値を取得するだけでなく、負の値も取得するようにする必要があるため、すべての側面に実行されます。

ランダム生成ラインを次のように変更してみてください。

e.target.y += Math.random()*10 - 5;
e.target.x += Math.random()*10 - 5;

これは、半径5pxで移動させたい場合に機能します。

画面上に新しいランダムポイントを生成してからそのポイントに移動し、オブジェクトが目的地に到達したら、別のランダムポイントを生成して移動することをお勧めします。その場合は、次のことを試してください。

mc.addEventListener(Event.ENTER_FRAME, onFrame);

var dirX:int = mc.x;
var dirY:int = mc.y;

function generateRandomPoint():void
{
    dirX = Math.random() * stage.stageWidth;
    dirY = Math.random() * stage.stageHeight;
}

function onFrame(e:Event):void
{
    mc.x += (dirX - mc.x) * 0.1;
    mc.y += (dirY - mc.y) * 0.1;

    if(Math.abs(dirX - mc.x) < 1 || Math.abs(dirY - mc.y) < 1)
        generateRandomPoint();
}
于 2012-08-08T10:04:42.030 に答える
1

私はactionscriptを知りませんが、あなたはこれで助けを見つけるかもしれません

http://www.actionscript.org/forums/showthread.php3?t=270725

于 2012-08-08T09:38:25.877 に答える