Von der Wand abspringen

  • Von der Wand abspringen

    Ich habe folgende Fragen. Und zwar erstelle ich gerade einen Mix aus JumpnRun und Action und habe mir gedacht, es sei bestimmt cool, wenn mein charakter gegen die wand springen könnte und dann quasi einen "erneuten" sprung in die höhe machen. hat jemand eine idee, wie man das hinbekommen kann?

    :happy: Noomä
  • Da es sogut wie unmöglich ist dass man exakt den moment erwischt, wenn die Figur die wand berührt die taste zu drücken, sollte man da einen spielraum einbauen. folgende evente alle bei der figur rein:

    ins createevent:

    GML-Quellcode

    1. wand_sprung = false;
    2. figur_sprung = false;


    bei kollision mit wand machst du:

    GML-Quellcode

    1. if (figur_sprung) {
    2. figur_sprung = false;
    3. wand_sprung = false;
    4. // Sprung ausführen: z.B. vspeed = -5
    5. } else {
    6. wand_sprung = true;
    7. alarm[0] = 5;
    8. }


    ins alarm event 0 :

    GML-Quellcode

    1. wand_sprung = false;


    bei sprungtastenevent bei figur machst du:

    GML-Quellcode

    1. if (wand_sprung) {
    2. wand_sprung = false;
    3. figur_sprung = false;
    4. // Sprung ausführen: z.B. vspeed = -5
    5. } else {
    6. figur_sprung = true;
    7. alarm[1] = 5;
    8. }


    ins alarm event 1 :

    GML-Quellcode

    1. figur_sprung = false;
  • Ähm... ich nehme an es wird ja schon beim normalen Sprung geprüft ob Bodenkontakt herrscht. Würde es also nicht ausreichen einfach zusätzlich dazu noch zu prüfen ob auch links oder rechts eine Kollision stattfindet?

    ...

    Jetzt wo ich so darüber nachdenke wird mir klar, dass es etwas blöde aussieht, wenn eine Figur an einer Wand entlang ganz flach hochspringen kann... und das noch dazu mehrmals... naa, eigentlich war nobodys Ansatz perfekt, nur dass natürlich noch die andere Seite fehlt (ist ja soweit nur für die rechte Wand zutreffend).

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

  • natürlich ist mein ansatz perfekt^^, ich verwende ihn auch in meinem J&R.
    alle abfragen zu machen kan uu. etwas dauern, darum mal komplett:

    GML-Quellcode

    1. if ( keyboard_check(vk_up) ) {
    2. if ( place_free(x,y+1) ) {
    3. vspeed = -12;
    4. if ( place_meeting(x+16,y,obj_wall) ) {
    5. hspeed = -12;
    6. }
    7. if ( place_meeting(x-16,y,obj_wall) ) {
    8. hspeed = +12;
    9. }
    10. }else {
    11. if ( place_meeting(x+16,y,obj_wall) ) {
    12. vspeed = -12
    13. hspeed = -12;
    14. }
    15. if ( place_meeting(x-16,y,obj_wall) ) {
    16. vspeed = -12;
    17. hspeed = +12;
    18. }
    19. }
    20. }
    Alles anzeigen
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl