ich verstehe nicht warum das script-stück nicht funktioniert...

  • GM 8

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

  • ich verstehe nicht warum das script-stück nicht funktioniert...

    Hi leute ich habe endlich diesen doppelsprung hinbekommen. aber jetzt habe ich ein anderes problem...

    ich will ja das der erst doppelsprungfähig ist wenn er ein item eingesammelt hat.
    das wird mit dem if (item_sprung=1) geprüft...
    das problem ist, auch wenn das item nicht eingesammelt wird macht der den doppelsprung... ich poste mal mein scriptstück...

    GML-Quellcode

    1. if (sprung<1) &(keyboard_check_pressed(vk_up)) &!(place_meeting(x,y,obj_treppe)) &(place_free(x,y-2+vspeed))
    2. {
    3. if (item_sprung=1)//prüft ob das jump_item schon eingesammelt wurde
    4. {
    5. sprung += 1;
    6. vspeed = -7;
    7. }
    8. if (item_sprung=0)//prüft ob das jump_item schon eingesammelt wurde
    9. {
    10. sprung += 3;
    11. vspeed =- 7;
    12. }
    13. }
    Alles anzeigen


    wie eigendlich müsste er die sprungvariable auf 3 setzen wenn das item nicht eingesammelt wurde. und damit ist er dann nichtmehr fähig ein weiteres mal zu springen. aber das funktinoirt nicht 8| . aus mit unerklährlichen gründen springt der trotzdem 2 mal...

    ich check einfach nicht wo der fehler liegen soll ...

    edit: sorry hab ich vergessen. wenn er den boden berührt wird die sprungvariable wieder auf 0 gesetzt...

    GML-Quellcode

    1. if (place_meeting(x,y+1,obj_boden_par)) &(sprung>0)
    2. {
    3. sprung=0;
    4. }


    gruß gruen


  • Ich denke dass das Problem darin liegt, dass wenn du die Taste zum Springen drückst, der Player immer noch auf dem Boden steht, und somit die sprung Variable wieder auf 0 gesetzt wird.
    Änder das Script mal so:

    GML-Quellcode

    1. if (place_meeting(x,y+1,obj_boden_par)) &(sprung>0) & !(keyboard_check_pressed(vk_up))
    2. {
    3. sprung=0;
    4. }


    Also nur wenn die Sprungtaste nicht gedrückt ist, soll sprung wieder 0 sein.
  • Dein code ist heftig verwirrend für mich... aber ich könnte mir vorstellen, dass du in deinem allerersten Script das du gepostet hast nicht auf "(sprung<1)" sondern auf "(sprung<=1)" oder "(sprung<2)" prüfen solltest.
    Weil wenn du schon einmal gesprungen bist und das Item hast dann wird die Variable "sprung" um 1 erhöht und hat dann den Wert 1, da deine Bedingung aber auf sprung<1 prüft wird die If-Abfrage abgewiesen.
  • Benutzer online 1

    1 Besucher