Mausverfolgen nach Klick

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

  • Mausverfolgen nach Klick

    Da ich nicht noch einen thread öffnen wollte tu ich meine 2te Frage hierrein:
    Ich bin dabei ein Grid zu erstellen, und würde gerne es so machen das meine Maus sich nicht flüssig bewegt sondern immer jede 16 pixel (pro Grid-Zelle) nun frage ich mich wie ich das tun könnte...

    1.
    also zur Zeit hab ich es so gemacht:
    habe ein object gemacht; grid1 und im step event dann

    GML-Quellcode

    1. mp_grid_create(0,0,room_width/16,room_height/16,16,16);


    2.
    kann man das Grid eigentlich auch sehen lassen wenn man das Game startet? zB dass man lauter schwarze Zellen sieht..

    weiß jemand weiter oder ist das überhaupt richtig?


    Ich habe in meinem Inventar eine Holzmauer und möchte diese in die Map werfen, wenn ich mit der linken Maustaste draufdrücke
    Dazu wär es praktisch wenn ich es so machen würde:
    wenn mb_left geklickt ist dann soll Holzmauer die Maus verfolgen/dran kleben bleiben bis ich nochmal mb_left in die Map tue, dann soll die Holzmauer in der Map stehen.
    Also codes sind da ja nicht wirklich erforderlich von meiner Seite aus, da ich trotz Suchfunktion etc leider keinen Code gefunden habe der die Maus(mit Object) verfolgt oder dergleichen...
    trotzdem; mein Code sieht leider so(leer:() aus:

    GML-Quellcode

    1. if mouse_check_button(mb_left)
    2. {}

    {hier müsste maus verfolgen + holzmauer etc rein :/?}

    Grüße... :)

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

  • Ich hoffe du meinst es so, wie ich es meine:

    obj_controller:

    [ Create ]

    GML-Quellcode

    1. build = 1;


    [ Step ]

    GML-Quellcode

    1. if mouse_check_button_pressed(mb_left) {
    2. instance_create(mouse_x,mouse_y,obj_holzmauer);
    3. }


    obj_holzmauer:

    [ Create ]

    GML-Quellcode

    1. placed = 0;


    [ Step ]

    GML-Quellcode

    1. if placed = 0 {
    2. x = mouse_x;
    3. y = mouse_y;
    4. }
    5. if mouse_check_button_pressed(mb_left) {
    6. placed = 1;
    7. alarm[0] = 10;
    8. obj_controller.build = 0;
    9. }


    [ Alarm 0 ]

    GML-Quellcode

    1. obj_controller.build = 1;


    ;)
    fabse64 -> haiyyu

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von fabse64 ()

  • Danke

    Ich habe schon die ganze Zeit versucht es richtig hinzubekommen doch leider vergebens.

    Ich habe alles richtig eingetragen und so, aber wenn ich nun auf meine Holzmauer drücke im Inventar dann erscheint direkt eine nochmals im Inventar (da wo gerade die Maus ist)(was total falsch ist). Ich wollte es so haben; dass ich die Holzmauer in die Map "setzen" wo ich nur möchte kann...

    und die Holzmauer in meinem Inventar ist für immer da, die soll da bleiben und nicht weggehen (unendlich charges)...? :S


    Wofür ist eigentlich die Variabel "build", die bringt in meinen Augen nicht wirklich etwas, oder?

    Grüße...
  • Dann probier ich dir mal zu helfen
    Holzmauer object:
    Create
    wegwerfen=false

    Left pressed mouse event

    if wegwerfen = false
    {
    wegwerfen=true
    exit
    }


    if wegwerfen=true
    {
    wegwerfen=false
    exit
    }

    Step Event

    if wegwerfen = true
    {
    x=mouse_x
    y=mouse_y
    }

    Da konnte jetzt keiner vor mir helfen... Müsste klappen. Habs auch ausprobiert.
  • Also codes sind da ja nicht wirklich erforderlich von meiner Seite aus
    Eigentlich schon. Das ist doch normales Variablen Grundwissen?

    @Prustel: Das könntest du noch ein bisschen vereinfachen. Was bringt das exit da an der Stelle? Die If abfrage wird sowieso nur einmal ausgeführt. (Zu der Codesyntax sage ich mal nichts...)

    Create

    GML-Quellcode

    1. Wegwerfen = false;

    Left Mouse Pressed

    GML-Quellcode

    1. Wegwerfen = !Wegwerfen;

    Step

    GML-Quellcode

    1. if(Wegwerfen == true)
    2. {
    3. x = mouse_x;
    4. y = mouse_y;
    5. }


    mfg Critical
  • @ Critical;

    Also codes sind da ja nicht wirklich erforderlich von meiner Seite aus
    Eigentlich schon. Das ist doch normales Variablen Grundwissen?
    ups da hast du mich falsch verstanden; ich meinte ich brauch keinen von meinen Codes zeigen, im ersten Post; da ich ja diesen Code suchte für den Mauszeiger etc...
    Natürlich sind codes wichtig... hab mich vllt ein wenig komisch ausgedrückt ;)


    back to topic:

    also ich habe es jetzt soweit wie fabse64 & Prustel mir vorgegeben haben gemacht und dann auch nochmal das von Critical verändert. Doch bei mir ist es jetzt so:

    Das game startet, ich habe sofort eine Holzmauer an meinem Mauszeiger kleben und im Inventar ist noch die Holzmauer (was auch so sein soll)
    (und wenn ich in der eine Holzmauer ein wenig überlappe dann verschwindet die alte und die neue wird ersetzt; gibt es da was, dass man keine bauen kann wenn distance_to_object < 50...)

    Nur dass sie vom Anfang an an der Maus klebt stört mich sehr doll, wie kann ich es denn hinbekommen dass ich einfach nur einen mb_left auf die Holzmauer im Inventar mache und dann kann ich eine weitere Holzmauer in die Map setzen ?

    Habe wiedermal ein wenig rumprobiert aber noch hat es nicht geklappt! Vielleicht kann mir ja jemand helfen !!? :huh:

    Grüße..'