Objekt um ein anderes drehen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Objekt um ein anderes drehen

    Hi

    Ich bins mal wieder;) .So ich hab jetzt noch eine Frage danach mach ich wieder nen neuen Thread auf wen ich eine Frage oder ein Problem hab... Also und nun zu meiner Frage ich möchte nämlich gerne wissen wie ich dafür sorgen kann das ein Object sich nur um das andere Object drehen soll. Mit direction -=2/direction +=2 hab ich es schon versucht aber dann ist der machmal zu weit von Object entfernt oder ist im Object drinnen.
    wäre nett von euch wen ihr mir diese Frage beantworten könt ^^

    Nur ein Problem pro Thread ~TrunX
  • Spellmaker schrieb:

    Hab ich auch schon mal danach gesucht.
    Hier die Problemlösung.
    Also ich weiß jetzt nicht ob das aufs gleiche rauskommt, aber ich würde das so machen:
    (Object0 soll Object1 umkreisen)
    Object0 Step:

    GML-Quellcode

    1. x=object1.x+cos(direction*pi/180)*32; //Die *32 sind für den Abstand also in dem Fall 32Pixel
    2. y=object1.y-sin(direction*pi/180)*32;


    Aus direction könntest du dann z.B. point_direction(x,y,mouse_x,mouse_y) machen und dann dreht der sich immer zur Maus aber eben um Object1.
  • Das hört sich für mich vor allem danach an, als hättest du dem Sprite einen recht großen Rand gelassen und den Origin nicht versetzt.
    Setz den erstmal genau in die mitte des Sprites und versuch die ganze Chause dann noch mal.

    Und noch etwas: Bevor man sich hier als Unkundiger mit dem ganzen rumgerechne bezüglich Sinus, Cosinus und Radius rumschlägt, würde ich vorschlagen in dem Fall die vom GM vorgefertigten Funktionen lengthdir_x/y(len,dir); zu nehmen.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Hi

    Also danke erstmal für alle Antworten.

    Tobi
    eigentlich möchte ich das der auf der linken und rechten Pfeiltaste das macht und sich nicht per Maus dreht und das wäre dan auch meine Frage ;) wie ich das mache.
  • Du ersetzt direction durch eine beliebige Variable (kannst aber auch direction lassen)... ich mache das jetzt einfach mit direction...

    Dann Left-Key:

    GML-Quellcode

    1. direction+=1;

    Dann Right-Key:

    GML-Quellcode

    1. direction-=1;


    Und der Rest bleibt wie oben... ich glaube, bei dem von Kilik kommt das gleiche bei raus :D
  • Tobi schrieb:

    Und der Rest bleibt wie oben... ich glaube, bei dem von Kilik kommt das gleiche bei raus :D
    Nein, bei kilik's Variante bleibt die Distanz immer dieselbe. In deiner Version hängt die Distanz von der Geschwindigkeit ab.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Nein, bei kilik's Variante bleibt die Distanz immer dieselbe. In deiner Version hängt die Distanz von der Geschwindigkeit ab.
    OK seh ich ein, aber von welcher Geschwindigkeit denn?
    In den Zeilen steht doch nichts von room_speed oder ähnlichem...!?
    Der Abstand ist doch eigendlich, soweit ich weiß, das *32 oder nicht?

    Wenn ich falsch liege klärt mich auf :D
    Wäre dann auch nochmal ne Hilfe für mich :D

    €dit:
    Ihr könnt mir doch nicht sagen, dass das was anderes ist, oder?
    Spoiler anzeigen

    copyboy schrieb:

    Das ist total einfach (ich schreib das jetzt auch für den anderen Thread):

    GML-Quellcode

    1. // center = Das innere Objekt
    2. // distance = Abstand in Pixeln
    3. // dir = Richtung
    4. x = center.x+lengthdir_x(distance,dir);
    5. y = center.y+lengthdir_y(distance,dir);

    Was du sonst noch machen musst ist die Variable dir hochzuzählen, das wars.
    (Ich hab inzwischen auch ne Ahnung von Sinus und Cosinus, aber wer lengthdir nimmt, hat's unkomplizierter ^^ )
  • Doch, das ist was völlig anderes. Es geht um die Geschwindigkeit des Objektes, das sich um das andere dreht. Du musst dann schon die Richtung relativ zur Geschwindigkeit ändern. Probier's einfach aus.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.