Maus Position abfragen,um Spielfigur zu bewegen

  • GM 7

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

  • Maus Position abfragen,um Spielfigur zu bewegen

    Hallo GM-Commu :),

    ratet wer wieder ein WehWeh´chen hat....richtig!Ich! xD

    Es geht um ein Problem,mit dem ich allein nicht fertig werde.Und zwar möchte ich,dass meine Spielfigur(Auf dem Bild in der Mitte)per Mausklick auf das grüne Feld zieht.gm-d.de/wbb/index.php/Attachment/6774/

    Kennt wer die Codierung für die Abfrage und Bewegung diagonal gelegener bzw horizontal/vertikaler Positionen,wenn man per Mausklick ziehen möchte?
  • Ich würds einfach mal mit 'ner kleinen Bewegungsaktion machen, also (wenn ich dich richtig verstanden habe :P ) in etwa so (Beides Step-event ;) ) :

    GML-Quellcode

    1. if mouse_check_button_pressed(mb_left)
    2. {
    3. direction = point_direction (x,y,kaestchenodermaus.x,kaestchenodermaus.y)
    4. speed = deinegeschwindigkeit
    5. }


    Wenn du nicht willst dass er diagonal läuft, kannste dass nehmen :

    GML-Quellcode

    1. if mouse_check_button_pressed(mb_left)
    2. move = true
    3. if move
    4. {
    5. direction = round(point_direction (x,y,kaestchenodermaus.x,kaestchenodermaus.y)/4)*4
    6. speed = deinegeschwindigkeit
    7. }


    Ist ungetestet , aber vielleicht kannst du ja was damit anfangen ;)

    Oh, da sehe ich gerade dass du wahrscheinlich auch noch die Abfrage für Sachen im Weg haben willst...

    Für Vertikal :

    GML-Quellcode

    1. if !collision_line(x,y,kaestchenodermaus.x,kaestchenodermaus.y)
    2. {
    3. //Tue das oben beschriebene
    4. }


    Für Raster müsste man da wahrscheinlich motion planning nehmen...

    Ich hoffe dass ich dir nichts vorkaue, was du schon weißt...

    Gruß, Phoenix

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

  • Danke Phoenix aber das funktioniert leider nicht ;o)

    Wie meinst du das mit "Motion Planning"?,bzw was sind "Grids"?...

    Also etwas vorkauen denk ich net...ich weiß nich allzuviel viel,was den GM angeht...habe kaum Zeit dafür ;(...

    Also das wäre super,wenn wir ne Lösung für das Bewegungsproblem hinbekämen.

    Die Figur in der Mitte soll per Mausklick auf das nächste feld laufen.Muss auch net unbedingt diagonal sein.

    Dafür dachte ich ahlt brauche ich ne Abfrage,damit er weiß in welche Richtung ^^...also wie würde n Profi des machen :D?(Hoffe meine Frage is überhaupt verständlich)
  • Eine Grid ist ein Raster, dessen Felder so groß sind wie man angibt. Dafür gibt es auch eine ganz nette d&d-Funktionen (snap instance oder so) die dir ermöglicht, Instanzen an diesem Raster auszurichten ( heißt in etwa : Wenn x oder y nicht gleich Perfekt ins Raster passen, ist halt x oder y gleich Perfekt ins Raster eingefügt (zur nächsten "Zelle des Rasters")).

    Hoffentlich verstehst du, was ich dir verklickern will, aber *gähhn* ich bin sehr müde, tut mir wirklich leid wenn nicht. Vielleicht hab' ich Übermorgen dafür noch 'nen freieren Kopf (Morgen hab ich einen Termin ;) ), und kanns mir dann nochmal ansehen, solange niemand so nett ist und es dir anstelle erklärt.

    Also denne : Gute Nacht allerseits^^
  • Probier es mal hiermit. Ich kanns leider gerade nicht testen. Sonst guck einmal unter gm-d.de/help -> GML -> GamePlay -> Motion Planning bzw. Pfade

    StepEvent:

    GML-Quellcode

    1. if mouse_check_button_pressed(mb_left)
    2. {
    3. grid = mp_grid_create(0,0,(room_width/32),(room_height/32),32,32);
    4. path = path_add();
    5. goal_x = mouse_x-(mouse_x mod 32);
    6. goal_y = mouse_y-(mouse_y mod 32);
    7. mp_grid_path(grid,path,self.x,self.y,goal_x,goal_y,true);
    8. path_start(path,4,0,true);
    9. }
    Alles anzeigen
  • Also der Code funktioniert schonmal einwandfrei,vielen Dank dafür ;).

    Das einzige was ich jetzt noch verändert habe ist

    goal_x = mouse_x-(mouse_x mod 16);
    goal_y = mouse_y-(mouse_y mod 16);

    Kann ich so benutzen,vielen Danke an alle :o)!
  • Benutzer online 1

    1 Besucher