0

だから、小惑星がランダムに動き回るゲームを作ろうとしていますが、Math.random関数を関数の外に置くと、1回だけ1つの値が与えられ、小惑星=0のたびに繰り返されることはありません。それを私の関数に入れると、それは常に更新され、私の小惑星をランダムに飛び回らせます。何か助けはありますか?編集:私が不明確だった場合は申し訳ありませんが、私は一晩中起きています。小惑星を画面上のランダムなパス上で移動させ、次に別のパスをランダムに選択してそのパス上を移動させようとしています。これは、x>1024およびy>768のたびに発生するはずです。

import flash.events.Event;
addEventListener(Event.ENTER_FRAME, massGain);
stop();

var math1:Number = Math.floor(Math.random()*20-10);
trace(math1);

function massGain(e:Event)
{


Mouse.hide();

Cosmo.x = mouseX;
Cosmo.y = mouseY;

Asteroid5.x = Asteroid5.x + math1;
Asteroid5.y = Asteroid5.y + math1;
if(Asteroid5.x >1024){
Asteroid5.x = 0;
}
if(Asteroid5.y > 768){
Asteroid5.y = 0;
}



}
4

2 に答える 2

0

これを使って!

import flash.events.Event;
addEventListener(Event.ENTER_FRAME, massGain);
stop();

// random value to start of with
var math1:Number = Math.floor(Math.random()*10);//20-10 doesnt make sense .. its 10

function massGain(e:Event)
{
        Mouse.hide();

        Cosmo.x = mouseX;
        Cosmo.y = mouseY;


        if(Asteroid5.x >1024){
        Asteroid5.x = 0;
        math1 = Math.floor(Math.random()*10);// new random Value
        trace(math1);
        }
        if(Asteroid5.y > 768){
        Asteroid5.y = 0;
        math1 = Math.floor(Math.random()*10);// new random Value
        }

        Asteroid5.x = Asteroid5.x + math1;
        Asteroid5.y = Asteroid5.y + math1;

}
于 2013-03-10T13:06:51.900 に答える
0
import flash.events.Event;
addEventListener(Event.ENTER_FRAME, massGain);
stop();

var speedX = Math.floor(Math.random()*20-10);
var speedY = Math.floor(Math.random()*20-10);

function massGain(e:Event)
{


Mouse.hide();

Cosmo.x = mouseX;
Cosmo.y = mouseY;

Asteroid5.x = Asteroid5.x + speedX;
Asteroid5.y = Asteroid5.y + speedY;
if(Asteroid5.x >1024||Asteroid5.x<0){
speedX = -speedX;
}
if(Asteroid5.y > 768||Asteroid5.y<0){
speedY = -speedY;
}
}

これを試して。

于 2013-03-10T13:14:07.800 に答える