Leiter fassen und mittig sein

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

  • Leiter fassen und mittig sein

    Ich brauche eure Unterstützung.
    Das Raster: Player so wie auch die Leiter 16x16.

    Wenn ich springe und die Leiter berühre - ich habe es mit position_meeting(x, y, obj_leiter) gemacht - wechsle ich in die Leiter-State bzw. Script wie auch immer...das Ding ist, sobald ich die Leiter berühre hängt mein Player nur am Rande der Leiter, was ja Doof aussieht, der soll zentriert in der Mitte der Leiter stehen. Ich weis aber gerade nicht wie ich den Player am Besten sauber in die Mitte verschieben soll, sobald er die Leiter berührt?

    Hier noch ein Bild zu Veranschaulichung:
    huhu
  • Ist der Origin-Punkt also der mittelpunkt der leiter und des players auf der x-achse zentriert?

    wenn ja dann schreib sowas wie

    Quellcode

    1. ​if(position_meeting(x,y,obj_leiter)) and (keyboard_check_button(vk_up)){
    2. player.x=leiter.x;
    3. }


    also wenn dein spieler die leiter berührt und du die pfeiltaste nach oben drückst, dann wird der x-wert des spielers mit dem der leiter gleichgesetzt.

    sind die origin-punkte nicht zentriert, dann musst du dir die diferenz ausrechnen vermutlich 8 in deinem fall. dann wäre der code in etwa so:

    Quellcode

    1. if(position_meeting(x,y,obj_leiter)) and (keyboard_check_button(vk_up)){
    2. player.x=leiter.x-8;}


  • Ich Doofian hatte im Player-Objekt noch eine Collison-Event mit der Leiter gehabt, darum hat alles was ich Versuchte habe nicht funktioniert :headtouch: :heul:

    Danke trotzdem für deine Antwort Gruen.
    Hab es auch so immer stehen gehabt

    GML-Quellcode

    1. //check leiter_state
    2. if (!auf_leiter and position_meeting(x, y, obj_leiter)) {
    3. hspd = 0;
    4. vspd = 0;
    5. x += image_xscale*8;
    6. state = leiter_state;
    7. }
    huhu