Durch die Decke springe

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

  • Durch die Decke springe

    Mein Collision-Skript

    GML-Quellcode

    1. //collision checking
    2. if (place_meeting(x+hspd, y, collision_object)) {
    3. while (!place_meeting(x+sign(hspd), y, collision_object)){
    4. x += sign(hspd);
    5. }
    6. hspd = 0;
    7. }
    8. if (place_meeting(x, y+vspd, collision_object)) {
    9. while (!place_meeting(x, y+sign(vspd), collision_object)){
    10. y += sign(vspd);
    11. }
    12. vspd = 0;
    13. }
    14. x += hspd;
    15. y += vspd;
    Alles anzeigen


    Funktioniert super, alles was zum "collsion_object" gehört ist unparierbar, ich falle nicht durch den Boden oder Wänden, aber eben auch nicht durch Decken. Wie kann ich das ergänzen?
    huhu
  • Entschuldige...
    Mein Ziel ist, das mein Figur durch collision_object springen kann (von unten nach oben) und dann aber auf dem collision_object wieder landet. Somit kann er zum Beispiel Leiterartig von Platform zum nächst höheren Platform springen. Da ist meine Frage: Wie würdet ihr das Problem anpacken / lösen?





    Anbei an Beispiel: , da bleibt meine Figur in der Decke (bzw: collision_object) hägen und kommt nicht durch
    huhu

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

  • Ich würd es ganz einfach so machen... in deinem collisions objekt im step event

    If ((player.y + player.sprite_index/2) > y) { // geteilt durch 2 funktioniert nur perfekt wenn dein origin in der mitte ist falls nicht musst bissle rum probieren vll. 3 oder 4 einsetzten
    mask_index = -1;
    }else {
    mask_index = collisionsobjet_maske;
    }
    Wir stehen zusammen und wir fallen zusammen
  • Sorry aber wenn du nicht willst das er durch jede decke springen kann sondern nur durch bestimmte, dann würde ich an den stellen wo du durch willst ein anderes kollisionsobjekt verwenden, als an denen wo er nicht durch darf. Und dann den Code von rhazul

    Wenn er allerdings nur hindurchgehen können soll wenn du auf der Treppe bist dann mach das mit einer if anweisung die dies kontrolliert