Spieler bewegen und anhalten mit der maus

  • GM 8

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

  • Spieler bewegen und anhalten mit der maus

    Hallo zusammen,

    ja ich weis das Thema wurde hier schon endlos diskutiert und ich hab mich auch die letzte Stunde durch zig posts gewühlt, leider hat mir nichts geholfen.

    Also, zu meinem Problem:
    Grundlegendes, ich will ein Spiel erstellen das aus der Vogelperspektive gespielt wird. Soweit so gut.

    Meinen Spieler kann ich auch mit der Maus bewegen, nur will der nicht mehr anhalten wenn er den gewünschten Punkt erreicht hat. ich hab versucht das ganze mit einem alarm event hinzubekommen, allerdings... naja.. ohne erfolg

    move_towards_point(mouse_x,mouse_y,3)
    image_angle = point_direction(x,y,mouse_x,mouse_y)
    speed = 3
    alarm[0] = point_distance(Obj_Player.x,Obj_Player.y,mouse_x,mouse_y)

    und im Alaram Event
    speed = 0
    bzw per D&D auf Move Stop


    und mit dem wenigen latain das ich kann bin ich auch schon am ende :)

    danke schonmal für eure hilfe
  • Erstmal ein herzliches Willkommen zum Forum.

    Nun zu deinem Problem. Ich habe deinen Code etwas modifiziert. Nun sieht er so aus:
    :event_mouse: Global mouse left:

    GML-Quellcode

    1. move_towards_point(mouse_x,mouse_y,3)//image_angle hab ich ins step Event verschoben, da es immer erneuert werden muss//speed ist nicht nörig, der wird bereits in move_Towards_point festgelegt
    2. alarm[0] = point_distance(Obj_Player.x,Obj_Player.y,mouse_x,mouse_y)/speed; //Geteilt durch speed ist wichtig, denn z.B. speed=3 bedeutet, dass er drei Pixel pro step zurücklegt


    :event_step: Step:

    GML-Quellcode

    1. image_angle=direction; //Muss in jedem Step erneuert werden



    Das :event_timer: Alarm 0-Event bleibt gleich:

    GML-Quellcode

    1. speed = 0



    Probier das doch mal aus.
  • Das ist nicht so ganz richtig, mit dem alarm, da können ungenauigkeiten entstehen.
    Ich würde es so machen:

    Alles ins Step-Event:

    GML-Quellcode

    1. if mouse_check_pressed(mb_left)
    2. {
    3. go_x = mouse_x
    4. go_y = mouse_y
    5. }
    6. if distance_to_point(x,y,go_x,go_y)<=1 // pos_meeting würde da auch gehen
    7. {
    8. speed = 0
    9. }
    10. else
    11. {
    12. speed = 3
    13. direction = point_direction(x,y,go_x,go_y)
    14. image_angle = direction
    15. }
    Alles anzeigen
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)