drag and drop- Problem

  • GM 8

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

  • drag and drop- Problem

    Hallo zusammen,
    ich habe folgendes Problem:
    Ich Habe ein Objekt, der es mir ermöglicht ein anderes zu bewegen.
    Dieser bewegt sich nachdem ich auf das andere objekt geklickt habe solange ich die maus gedrückt halte, mit der maus.
    Dazu habe ich im Step-event folgende Funktion eingefügt:

    GML-Quellcode

    1. if bewegen=1 { x=(mouse_x-x);
    2. y=(mouse_y-y);


    nun leider klappt diese funktion nur teilweise, denn die instance bewegt sich mit der maus mit aber jede sekunde bewegt es sich auch dann noch woanders hin.
    d.H. 1.Sekunde: x= 200( wie es sein sollte)
    2.Sekunde: x= 600( obwohl die maus sich nicht bewegt hat)
    3.Sekunde: x= 200(ohne maus zu bewegen)
    ... und so geht es die ganze Zeit.

    Ich hoffe jemand kann mir helfen

    mfg. hilfe:P
  • das liegt daran:
    als beispiel
    mouse_x = 200
    x=50

    ergebniss = 150

    es wird nochmal ausgeführt

    mouse_x = 200
    x=150

    ergebniss = 50
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Bewegt sich es von selbst ?
    Mach dann mal speed = 0 ^^

    klappt nicht aber danke, der bewegt sich nicht von selbst sondern wird dauernt auf verschiedene posiotioen veschoben

    das liegt daran:
    als beispiel
    mouse_x = 200
    x=50

    ergebniss = 150

    es wird nochmal ausgeführt

    mouse_x = 200
    x=150

    ergebniss = 50


    ich bewege die maus nicht und trotzdem wird die position geändert.(x sollte sich hierbei garnicht ändern).
    Es sieht so aus als hätte die instance dauerhaft 2 positionen an den sie stehen sollte.
    beim bewegen der maus ändert sich natürlich ihre position(maus geht nach rechts objekt auch).
    Nun gibt es dann aber auch eine andere positon wo sie dauerhaft auch erscheint.

    habe dazu auch ein Example:
    Dateien
    • Example.gmk

      (9,35 kB, 190 mal heruntergeladen, zuletzt: )
  • es war ja nur ein beispiel wie gesagt, ich glaube du hast nicht genau geschaut, wenn du jetzt
    y=50
    mouse_y=200

    hast dann wird y wegen der rechnung 200-50 gleich 150 sein
    also:
    y=150
    mouse_y=200
    Rechnung 200-150 gleich 50

    also springt es immer von 150 auf 50 und anders rum
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Sorm: falsch.

    Probier mal hier mit was.

    :event_create: Create Event

    GML-Quellcode

    1. drag = false;
    2. offset_x = 0;
    3. offset_y = 0;


    :event_mouse: Mouse Left Click Event (sollte es hoffentlich geben lol)

    GML-Quellcode

    1. if (!drag)
    2. {
    3. offset_x = x - mouse_x;
    4. offset_y = y - mouse_y;
    5. drag = true;
    6. }


    :event_step: Step Event

    GML-Quellcode

    1. if (!mouse_check_button(mb_left))
    2. {
    3. drag = false;
    4. }
    5. if (drag)
    6. {
    7. x = mouse_x + offset_x;
    8. y = mouse_y + offset_y;
    9. }


    edit: code verbessert
    :saint:

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Tice ()

  • Achso danke Husi012 ,sry hab es vorhin nicht verstanden.
    Jetzt weiß ich schonmal warum dieses Problem besteht, mal sehen ob ich es dann anders hinbekomme. :)

    Sorm diese funktion geht natürlich auch.
    Ich wollte aber, dass sich das objekt von seiner ursprünglichen position aus bewegt d.H. wenn ich jetzt dieses objekt präzise bewegen
    will und aber dieser code erst eintrift wenn ich ein anderes objekt berühre,
    ''teleportiert'' sich das objekt das ich bewegen will zum anderen/zur Maus.

    Edit:

    danke Tice,
    genau nach dieser Funktion habe ich gesucht

    mfg. Hilfe:P
  • Benutzer online 1

    1 Besucher