mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 08:21 Benutzername: Passwort: Auto-Login

Thema: Flash Problem mit Objekt-Rotation vom 14.03.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Flash Problem mit Objekt-Rotation
Autor Nachricht
CreeTar
Threadersteller

Dabei seit: 21.07.2005
Ort: Stuggi Town
Alter: -
Geschlecht: -
Verfasst Mi 14.03.2007 18:24
Titel

Flash Problem mit Objekt-Rotation

Antworten mit Zitat Zum Seitenanfang

- Grünes Objekt: Gibt Bewegung und Rotation von rotem Objekt vor
(im Prinzip der verschobene Mittelpunkt des roten Objekts, sprich Rotationspunkt)

- Blaues Objekt: Soll sich bei Kontakt an die Bewegung von rotem Objekt orientieren

Hab schon atan2 versucht, aber bin wohl zu blöd. War in Mathe nie ein Genie *Schnief*

Würde mich freuen wenn mir jemand den Code zaubert.

Code ist grob so:
Code:

if (objContact)
{
  // rotate Obj in depend. of mainObj
  objRotate();
}


und das ganze nochmal optisch:
http://as-bytes.com/public/flash/test.swf

ta ^^


Zuletzt bearbeitet von CreeTar am Mi 14.03.2007 18:25, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
DayusRam

Dabei seit: 18.03.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst So 18.03.2007 23:05
Titel

Antworten mit Zitat Zum Seitenanfang

Code:

function blauTrifftGruen() {
   var xpos1:Number = rot._x-blau._x;
   var ypos1:Number = rot._y-blau._y;
   var radius:Number = Math.sqrt(xpos1*xpos1+ypos1*ypos1);
   var radians1:Number = Math.atan2(blau._y-rot._y, blau._x-rot._x);
   var winkel1:Number = (radians1/Math.PI)*180;
   blau.onEnterFrame = function() {
      var winkel2:Number = rot._rotation+winkel1;
      var radians2:Number = winkel2*(Math.PI/180);
      var xpos2:Number = radius*Math.cos(radians2);
      var ypos2:Number = radius*Math.sin(radians2);
      blau._x = xpos2+rot._x;
      blau._y = ypos2+rot._y;
   };
}
  View user's profile Private Nachricht senden
Anzeige
Anzeige
CreeTar
Threadersteller

Dabei seit: 21.07.2005
Ort: Stuggi Town
Alter: -
Geschlecht: -
Verfasst Di 20.03.2007 04:09
Titel

Antworten mit Zitat Zum Seitenanfang

DayusRam hat geschrieben:
Code:

function blauTrifftGruen() {
   var xpos1:Number = rot._x-blau._x;
   var ypos1:Number = rot._y-blau._y;
   var radius:Number = Math.sqrt(xpos1*xpos1+ypos1*ypos1);
   var radians1:Number = Math.atan2(blau._y-rot._y, blau._x-rot._x);
   var winkel1:Number = (radians1/Math.PI)*180;
   blau.onEnterFram :thumbsup:  :thumbsup:  :thumbsup:  :thumbsup: e = function() {
      var winkel2:Number = rot._rotation+winkel1;
      var radians2:Number = winkel2*(Math.PI/180);
      var xpos2:Number = radius*Math.cos(radians2);
      var ypos2:Number = radius*Math.sin(radians2);
      blau._x = xpos2+rot._x;
      blau._y = ypos2+rot._y;
   };
}


Herrlich, so wünscht man sich das Lächel
die Rotation war nicht dabei, aber da hab ich die Geschwindigkeit des Objekts und die Richtung,
läuft prima.

Vielen Dank *Thumbs up!*
  View user's profile Private Nachricht senden
CreeTar
Threadersteller

Dabei seit: 21.07.2005
Ort: Stuggi Town
Alter: -
Geschlecht: -
Verfasst Sa 07.04.2007 02:41
Titel

Antworten mit Zitat Zum Seitenanfang

Hab ein Problem mit der Rotation. Das Objekt wird nicht vom HitPoint an rotiert sondern es springt kurz *Schnief*

Also hier mal die Daten:

Kontaktpunkt beider Objekte (48.7,-2.25)

eigentliche Position von Objekt 1: 48.71
berechnete Position von Objekt 1: 24.49

Rotation von Objekt 1: 103
Rotation von Objekt 2: -50

Berechneter Winkel vom Objekt 2 zu Objekt 1: -5.96

Kurz gesagt
Punkt bei Aufschlag (48.7,-2.25)
Punkt nach Rotationsformel (24.45,21.5)

Berechnen von Winkel und Distanz von Objekt 1 zu Objekt 2, die Formeln stimmen
Code:

var xpos1:Number = obj1._x-obj2._x;
var ypos1:Number = obj1._y-obj2._y;

this.distance = Math.sqrt(xpos1*xpos1 + ypos1*ypos1);
this.angle = ((Math.atan2(obj2._y-obj1._y, obj2._x-obj1._x))/Math.PI) * 180;


Berechnung der Punkte für Objekt 1 abhängig von der Bewegung und Rotation von Objekt 2
Code:

var radTemp:Number = (obj1._rotation + this.angle) * (Math.PI/180);
obj2._x = this.distance * Math.cos(radTemp)+obj1._x;
obj2._y = this.distance * Math.sin(radTemp)+obj1._y;
// rotieren von Objekt 2 mit der Rotationsgeschwindigkeit von Objekt 1
obj2._rotation += this.rotSpeed;


Im Prinzip funktioniert es wunderbar, bis auf die Tatsache das wenn der Punkt von Objekt 1
berechnet wird, er nicht den exakten Aufschlagspunkt als Ergebnis bekommt sondern nur
eine Annäherung, was dazu führt das das Objekt kurz einen Satz macht und dann rotiert/bewegt.

Kann mir da jemand einen Tipp geben? Würde es ungern mit einer Animation lösen *Schnief*

Kann es sein das es innerhalb von Flash Schwankungen bei der Genauigkeit gibt?
Wie man sieht sind obige Werte nicht alle gleich obwohl Sie mit trace() ausgelesen wurden

Cheers


Zuletzt bearbeitet von CreeTar am Sa 07.04.2007 02:43, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Objekt-Rotation um eigene Achse
360° Rotation in Flash
suche rotation/slider gallery in flash
(Flash 8) - Rotation Pfeil ausgerichtet an einem MC
Gruppierte Elemente in Flash - Rotation funktioniert nicht
3d objekt in Flash
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.