hallo,
ich bastel gerade an einer navigation.es handelt sich um kleine punkte.
hier im forum hab ich auch schon ne magnetfunktion gefunden.
PHP-Code:
onClipEvent (load) {
// Magnetradius
radius = 30;
startX = _x;
startY = _y;
}
onClipEvent (enterFrame) {
distance = Math.sqrt(Math.pow(_root._xmouse-startX, 2)+Math.pow(_root._ymouse-startY, 2));
if (distance<radius) {
_x += _xmouse/3;
_y += _ymouse/3;
} else {
_x += (startX-_x)/3;
_y += (startY-_y)/3;
}
}
das funktioniert auch alles wunderbar, allerdings würde ich die klienen buttons auch noch gerne sich bewegen lassen, also dass sie zufällig in einem ziemlich klienen radius sich bewegen, wie so einzeller. hab versucht folgendes script draufzulegen:
PHP-Code:
onClipEvent (load) {
// hier verschiedene presets festlegen:
// ************************************
xMax = 550; // größe der bewegungsfläche
yMax = 400;
xMin = 0;
yMin = 0;
hispeed = 8; // geschwindigkeit
loSpeed = 6;
traegheit = 0.1; // naja, trägheit halt...
grenzen = this.getBounds (this); // erstellt objekt mit den maßen des clips, brauchen wir für bewegungsbegrenzung
}
onClipEvent (enterFrame) {
// hier wird die richtung geändert ( 2 vektoren verglichen und trägheit berücksichtigt)
// Speed: tatsächliche geschwindigkeit/richtung
// Drive: gewünschte geschwindigkeit/richtung
xSpeed += ( xDrive - xSpeed ) * traegheit;
ySpeed += ( yDrive - ySpeed ) * traegheit;
// wenn die nächste positionierung out of bounds wäre, dann schnell mal die richtung geändert
if ( _x + grenzen.xMax + xSpeed > xMax|| _x + grenzen.xMin + xSpeed < xMin ) {
xSpeed *= -1;
xDrive *= -1;
}
if( _y + grenzen.yMax + ySpeed > yMax || _y + grenzen.yMin + ySpeed < yMin ) {
ySpeed *= -1;
yDrive *= -1;
}
// so, jetzt ist's so weit: einen schritt weiter setzen ( vektor addieren )
_x += xSpeed;
_y += ySpeed;
// wenn die tatsächliche geschwindigkeit/richtung *fast* gleich der gewünschten ist, dann geschw/richtung ändern
if ( xDrive - xSpeed < 0.1 && xDrive - xSpeed > -0.1 && yDrive - ySpeed < 0.1 && yDrive - ySpeed > -0.1 ) {
do {
xDrive = Math.random () * hiSpeed; // erstmal die geschwindigkeit
xDrive *= ( Math.random () > .5 ) ? 1 : -1; // und dann links (-1) oder rechts (+1)
yDrive = Math.random () * Math.sqrt (Math.pow ( hiSpeed, 2) - Math.pow (xDrive, 2) );
yDrive *= ( Math.random () > .5 ) ? 1 : -1; // oben oder unten
} while ( Math.sqrt ( Math.pow ( xDrive, 2 ) + Math.pow (yDrive, 2 ) ) < lospeed );
}
}
leider tut sich dann gar nix mehr! Ich denke mal das sich beide scripte irgendwie hemmen...
kann ich überhaupt beides kombinieren?