Spieler läuft zur Maus (bei klick "moba art")

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

  • Spieler läuft zur Maus (bei klick "moba art")

    Hi zusammen,
    der Titel sagt soweit alles :)

    ich hab's beim ersten mal so versucht
    _____________________________________________

    if mouse_check_button(mb_left)
    {
    direction = point_direction(mouse_x,mouse_y,x,y)
    speed = 2;
    }
    _____________________________________________

    der Code bewegt das Objekt zur Maus
    aber..
    das Objekt bewegt sich von der Maus weg
    desweiteren bleibt das Objekt nicht stehen wenn es an den Punkt
    der zuvor geklickten Ort kommt.
    Ich habe also versucht das ganze so zu lösen.
    _____________________________________________
    if mouse_check_button(mb_left)
    {
    direction = point_direction(mouse_x,mouse_y,x,y)
    speed = 2;
    }
    if !mouse_check_button(mb_left)
    {
    direction = point_direction(mouse_x,mouse_y,x,y)
    speed = 0;
    }
    _____________________________________________

    klappt nur leider nicht ..

    also habe ich das ganze nochmal mit move_towards_point
    allerdings wird mir in den beispielen (weil sie veraltet sind)
    nur move_towards_point(mouse_x,mouse_y,speed)
    aber Speed geht in GM Studio nicht mehr weil
    ein Sprite abgefragt wird.


    hat jemand vielleicht ne Aktuelle Lösung?
    danke im voraus
    MfG ZaMi_

    EDIT: wo wir grad beim Thema sind, ich hätte es gern so
    das sich das Objekt nur bewegt wenn ich in ein gewisses Gebiet klicke.
    Ich möchte z.B. nicht das sich das Sprite auf den Hintergrund bewegt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ZaMi_ ()

  • Ich muss zugeben, dass ich bei dem Code ein wenig Schmunzeln musste :D
    Denn du hast bei point_direction was vertauscht. Du kriegst die Richtung von der Maus zu dem Objekt, da du mouse_x & mouse_y als erstes benutzt hast, und nicht umgekehrt ^^ Richtig wäre es point_direction(x,y,mouse_x,mouse_y) :D

    EDIT: Zu der Sache mit dem stehenbleiben, du müsstest die Koordinaten von der Maus bei dem Klick abspeichern damit dein Objekt dort stehen bleibt. Du könntest zB dem Objekt diese Koordinaten geben mit (Stepevent)

    GML-Quellcode

    1. if mouse_check_button_pressed { destination_x = mouse_x destination_y = mouse_y }
    Natürlich musst du die beiden Variablen voher deklarieren :D

    Und dann muss das Objekt an dieser Position nurnoch anhalten(Stepevent, Gibt bestimmt was besseres, aber das ist mir auf die schnelle eingefallen:)

    GML-Quellcode

    1. if distance_to_point(destination_x,destination_y) < 2 { speed = 0 }


    EDIT2: Zu der letzten Sache könnte man den Code so verändern:

    GML-Quellcode

    1. if mouse_check_button_pressed && point_in_rectangle(mouse_x, mouse_y, x1, y1, x2, y2) // Hier die Koordinaten für das Gebiet rein
    2. {
    3. destination_x = mouse_x destination_y = mouse_y
    4. }

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von 3D2Y Bandicoot ()

  • Dafür gibt es mp_potential_step_object (destination_x, destination_y, speed, obj_wall);
    simpel und effektiv. Dab braucht man auch nicht mehr Rumwursten, der bleibt dann auch direkt da stehen wo er soll.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • 3D2Y Bandicoot schrieb:

    Ich muss zugeben, dass ich bei dem Code ein wenig Schmunzeln musste
    Denn du hast bei point_direction was vertauscht. Du kriegst die Richtung von der Maus zu dem Objekt, da du mouse_x & mouse_y als erstes benutzt hast, und nicht umgekehrt Richtig wäre es point_direction(x,y,mouse_x,mouse_y)


    das Problem habe ich grad selbst gelöst und musste auch lachen :troll:
    na ja, es war schon später *hust* :D

    nun zum thema "destination_x,y" wie beim spielstand abspeichern?

    point_in_rectangle ist genau das was ich gesucht habe !
    danke dir für die hilfe :)

    und nun zu dir Atomicmaster

    rahzul hats ja beantwortet ^^



  • Rhazul schrieb:

    Dafür gibt es mp_potential_step_object (destination_x, destination_y, speed, obj_wall);
    simpel und effektiv. Dab braucht man auch nicht mehr Rumwursten, der bleibt dann auch direkt da stehen wo er soll.


    mp_potential_step_object


    zum thema rumwurschteln^^