[MX] zufälliges Umherfliegen

disear

Erfahrenes Mitglied
zufääliges umherfliegen

Hallo zusammen
hab schon die Suchfunktion benützt komme aber nicht schlau draus...
also ich möchte ein Objekt, dass sich zufällig nach rechts oder links verschiebt. in einem gewissen Bereich!!
Hat jemand nen tipp??
danke
gruss disear
 
also was noch dazu zu sagen ist
- ich verwende Flas MX.
- dieses Objekt kann auch miten im weg seine Richtung, Geschwindigkeit ändern...
- es verschiebt sich nur nach rechts und links...
- der bereich hat eine länge von 550px
brauche nur einen denkanstoss, also kein voll geschriebenes Skript...
danke schon im voraus
cya
disear
 
Hm, dann versuchen wir es mal mit Zufall. :)

  • Math.random() generiert dir eine Zufallszahl zwischen 0 und 1.
  • Math.round() könnte diese entweder auf 0 oder 1 runden, mehr gäbe es nicht - die analogie bestünde logischerweise zu Links- und Rechtsbewegung des Objektes
  • die Bewegung solltest du mit dem EventHandler onEnterFrame realisieren, indem du diesen EventHandler auf den Objekt-MC packst und dann innerhalb der Handlerfunktion die x-Koordinate über dessen Eigenschaft _x änderst.
    (abhängig also von der Zufallszahl)
  • um zuckende Bewegungen zu vermeiden, solltest du nicht nach jedem bewegten Pixel des Objektes erneut eine Zufallszahl berechnen lassen, sondern die Zufallszahl erst aller 30 oder 50 bewegten Pixel neu losen lässt
hth,
Geist

P.S.:
Beim nächsten Mal die Themenzeile des Beitrages bitte gleich von vorneherein mit der verwendeten Version von Flash versehen, siehe Stickie im Forum. :)
 
also hier mal mein skript, es will irgendwie nicht funktionieren :(

PHP:
var zufall;
zufall= Math.floor( Math.random() *6) + 30;
if ((zufall<=150) && (zufall>=550)) {
band1.moveTo(zufall, 68.8);
}
was habe ich falsch gemacht??? und wie kann ich dies zu einer endlosschleife machen? so wie du gesagt hast zum beispiel das erst nach einem Move von 30px die schleife angesprochen wird..
bin noch nicht so vertraut mit Flash...
danke...!
grüsse aus dem sonnigen wallis :)
disear
 
Puuuuuh verdammt heiss hier...

also wenn du mit dem hochzeiten auch warten willst bis
PHP:
((hochzeit <=150)&&(hochzeit>=550))
dann wirst du deine Mami ziemlich unglücklich machen, weil das nämlich nie passieren wird....
PHP:
((hochzeit >=150)&&(hochzeit<=550))
hingegen macht auch deine mami irgendwann mal glücklich....
 
Upsi, da stimmt einiges nicht. :)
PHP:
zufall= Math.floor( Math.random() *6) + 30;
Ich dachte du willst den MC nur nach links oder rechts bewegen?
Du behältst dir ja gleich 6 Bewegungsmöglichkeiten vor... :)
PHP:
if ((zufall<=150) && (zufall>=550)) {
Wie kann eine Zahl kleiner als 150 und größer als 550 zugleich sein? :)
Ich dachte man redet von einem Zahlenstrahl und nicht einem Zahlenkreis. ;)
PHP:
band1.moveTo(zufall, 68.8);
moveTo() ist keinenfalls eine Methode, um einen MC zu bewegen, sondern dient lediglich bei den neuen Zeichenfunktionen dazu, den Zeichenkopf innerhalb des Zeitleiste zu bewegen, in der er zeichnen soll. :)
Wie geschrieben - den MC über seine Eigenschaft _x bewegen.
PHP:
// Hilfsvariable setzen
var mcstart = mc._x;
// Startrichtung bestimmen
var zufall = Math.round(Math.random());
// EventHandler auf den MC packen
mc.onEnterFrame = function() {
	// nur aller 30 Pixel neue Richtung zufallsbestimmen
    if (Math.abs(mcstart - this._x) >= 30) {
        // entweder 0 oder 1
        zufall = Math.round(Math.random());
        // Vergleichswerte wieder angleichen
        mcstart = mc._x;
    }
    // MC horizontal bewegen
    if (zufall == 0) {
        this._x -= 1;
    } else if (zufall == 1) {
        this._x += 1;
    }
	// bei 150 bzw. 550 die Richtung wechseln
	if (this._x <= 150 || this._x >= 550) {
		zufall = (zufall == 1) ? 0 : 1;
	}
}
hth,
Geist
 
desweiteren..:
PHP:
band1.moveTo(zufall, 68.8);
ist ein Argument der Zeichen API von Flash und bestimmt die anfängliche Zeichnungsposition von dynamisch aus AS heraus zu zeichnenden Objekten, und ist mithin nicht das zielführende für deine Zwecke...

PHP:
_root.band1._x= zufall;
..dürfte deinen Zwecken da schon wesentlich näher kommen.

ausserdem ist deine Mathematische Zufallsfunktion ein bisschen arg in ihrem Zahlenraum eingeschränkt, was du ja sicher bemerkt hast.
Aber wie auch für die obigen Korrekturen gilt:
Drücke er F1 und sterbe er nicht dumm....

PHP:
onClipEvent (enterFrame){ 
var zufall;
zufall= Math.floor( Math.random() *6) + 300;
trace(zufall);
if ((zufall>=150) && (zufall<=550)) {
_root.band1._x= zufall;
trace("Achtung_X");
trace (_root.band1._x);
}}
ist das komplette script, einzufügen als Objekt AS direkt auf dem zu bewegenden Objekt, viel Spass beim selber Anpassen des Zahlenraumes der Zufallsfunktion....
 
..immer diese Gleichzeitigkeiten in diesem immer hilfsbegierigen Forum...

@Geist Liebe Grüsse aus dem fernen Fuerteventura....!!!

P.S.: (ja ich weiss. meine Tasten klemmen...)

B
 
Danke euch beiden!! hab jetzt die formel total neu aufgebaut
zu Basileus
ich will nicht so eine ruckartige Bewegung! so das es wenn das MC auf position X ist nicht auf Position Y springt sondern dass dies eine Bewegung ist...
hat dort jemand noch ne idea
dein Skript @ Geist funktionierte irgendwie nicht richtig... oder ich hab es falsch angepasst... werde es nachher nochmals durchgehen
 

Neue Beiträge

Zurück