Für einen kurzen Moment schneller als sonst

  • GM 8

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

  • Für einen kurzen Moment schneller als sonst

    Hey Ho

    Sorry falls die Überschrift unklar is aber mein problem ist:

    Also ich hab einen obj_player, der hat eine rollen animation

    wenn er rollt soll er schneller sein als wie wenn er rennt, aber wenn er wieder aufhört zu rollen soll er wieder

    die geschwindigkeit haben die er beim rennen hatte.

    mit welchem code/D&D Symbol kann man das einstellen?


    Danke im voraus
  • achso hier sind die codes:

    create

    GML-Quellcode

    1. global.dir = 270
    2. run = 0


    step

    GML-Quellcode

    1. if global.dir = 180 && run = 0 {sprite_index = spr_link_stay_left }
    2. if global.dir = 0 && run = 0 {sprite_index = spr_link_stay_right}
    3. if global.dir = 270 && run = 0 {sprite_index = spr_link_stay_down }
    4. if global.dir = 90 && run = 0 {sprite_index = spr_link_stay_up }
    5. if global.dir = 180 && run = 1 {sprite_index = spr_link_run_left ;image_speed = 0.7}
    6. if global.dir = 0 && run = 1 {sprite_index = spr_link_run_right ;image_speed = 0.7}
    7. if global.dir = 270 && run = 1 {sprite_index = spr_link_run_down ;image_speed = 0.7}
    8. if global.dir = 90 && run = 1 {sprite_index = spr_link_run_up ;image_speed = 0.7}


    <no key>

    GML-Quellcode

    1. run = 0


    joystick 1 left

    GML-Quellcode

    1. if roll = 0 {x=x-3;global.dir = 180;run = 1}


    joystick 1 right

    GML-Quellcode

    1. if roll = 0 {x=x+3;global.dir = 0 ;run = 1}


    joystick 1 down

    GML-Quellcode

    1. if roll = 0 {y=y+3;global.dir = 270;run = 1}


    joystick 1 up

    GML-Quellcode

    1. if roll = 0 {y=y-3;global.dir = 90 ;run = 1}
  • Und wo lässst du ihn rollen bzw. kommt die Rollenanimation vor?
    Den an genau dieser Stelle würde ich die Geschwindigkeit erhöhen.

    Du hast ja schoin ein "if roll=0", bei dem sich der Player um 3 pixel bewegt.
    Mach jetzt ein "else" dahinter und tu das selbe nur mit höherer geschwindigkeit.
  • Nur mal so ,ich weiß, dass das Thema schon erledigt ist, aber das hier:

    GML-Quellcode

    1. if global.dir = 180 && run = 0 {sprite_index = spr_link_stay_left }
    2. if global.dir = 0 && run = 0 {sprite_index = spr_link_stay_right}
    3. if global.dir = 270 && run = 0 {sprite_index = spr_link_stay_down }
    4. if global.dir = 90 && run = 0 {sprite_index = spr_link_stay_up }
    5. if global.dir = 180 && run = 1 {sprite_index = spr_link_run_left ;image_speed = 0.7}
    6. if global.dir = 0 && run = 1 {sprite_index = spr_link_run_right ;image_speed = 0.7}
    7. if global.dir = 270 && run = 1 {sprite_index = spr_link_run_down ;image_speed = 0.7}
    8. if global.dir = 90 && run = 1 {sprite_index = spr_link_run_up ;image_speed = 0.7}

    hättest du auch in einen switch reinpacken können:

    GML-Quellcode

    1. if(run == 1){
    2. switch(global.dir){
    3. case 0: //Zeugs
    4. break;
    5. /*usw.
    6. ...*/
    7. }
    8. }
    9. else{
    10. switch(global.dir){
    11. case 0: //Zeugs
    12. break;
    13. /*usw.
    14. ...*/
    15. }
    16. }
    17. }
    Alles anzeigen


    Wäre vllt. ein wenig eleganter, aber Geschmackssache ;)

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Benutzer online 1

    1 Besucher