Obj soll 360° rollen und langsam abbremsen

  • GM 6

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

  • Obj soll 360° rollen und langsam abbremsen

    Ich hab auch die SuFu genutzt, habe aber nichts gefunden

    Ich bin am Arbeiten eines Platformsspiels
    mein player ist ein Kreis
    und ich will, wenn man nach links drückt, damit der player auch nach links rollt in 360°
    und genau das gleiche, wenn man rechts drückt!

    Nun, wenn er rollt, und man links loslässt will ich dass er langsam abbremst,
    nicht schnell, und dann erst nach einer weile stoppt, und das gleiche, wenn man rechts drückt!

    Vielen Dank im Vorraus!
  • rollen kriegst du mit image_angle hin. Wenn du da +=5 machst, rollt er z.B. nach rechts.
    Und abbruemsen kannst du entweder mit friction machen oder mit speed-=deinwert.

    image_angle The angle with which the sprite is rotated. You specify this in degrees, counterclockwise. A value of 0 indicates no rotation. This variable can only be set in the registered version!


    friction Current friction (pixels per step).


    speed Its current speed (pixels per step).


    Noch eine kleine Anmerkung:
    friction muss ein Wert zwischen 0 und 1 sein.

    ,-Megamag

    Magical dream time!
  • Also das mit dem langsam abbremsen ist einfach:
    Step

    GML-Quellcode

    1. if!(keyboard_check(vk_left)) || !(keyboard_check(vk_right))
    2. {
    3. hspeed=hspeed/1.5
    4. }

    Und das mit dem Rollen:
    Setz den Sprite Orgin deines Balls auf die Mitte:
    Keyboard Left

    GML-Quellcode

    1. image_angle+=hspeed

    Keyboard Right

    GML-Quellcode

    1. image_angle-=hspeed

    Hoffe es funzt :D

    EDIT:
    @ Megamag:
    Bei deiner Antwort verwendest du Friction! Friction verringert aber den hspeed UND den vspeed! Das würde dann Probleme mit der Gravity geben!
    EDIT2:
    Hä? Mir ist gerade aufgefallen dass sich für image_angle eine ungerade Sprite größe (z.B. 65x65) besser empfiehlt ?(
    fabse64 -> haiyyu

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von fabse64 ()

  • Megamag@

    Ich versteh leider, dass nicht so genau,
    denn ich bin ein völliger noob.

    fabse64@

    dein Code funzt leider nicht.
    Ich weis nicht wieso, es geht aber nicht


    Hier nochmal mein Code:

    GML-Quellcode

    1. Information about object: obj_player
    2. Sprite: spr_player_stand
    3. Solid: false
    4. Visible: true
    5. Depth: 0
    6. Persistent: false
    7. Parent: <no parent>
    8. Mask: <same as sprite>
    9. Step Event:
    10. if relative position (0,1) is collision free for Only solid objects
    11. set the gravity to 0.5 in direction 270
    12. else
    13. set the gravity to 0 in direction 270
    14. if vspeed is larger than 12
    15. set variable vspeed to 12
    16. Collision Event with object obj_platform1:
    17. execute code:
    18. {
    19. move_contact_solid(direction,12);
    20. vspeed=0;
    21. }
    22. Keyboard Event for <Left> Key:
    23. execute code:
    24. {
    25. //This moves the character right.
    26. if place_free(x-4,y)
    27. x-=4;
    28. }
    29. Keyboard Event for <Right> Key:
    30. execute code:
    31. {
    32. //This moves the character right.
    33. if place_free(x+4,y)
    34. x+=4;
    35. }
    Alles anzeigen


    Was muss man den hier ändern, damit er rollt und langsam abbremst ?( HILFT MIR BITTTEE! :heul:
  • Achso, du verwendest ja
    Jump to a given Position
    Wenn mein Code funzen sollte müsstest du:
    Set the horizontal speed verwenden!
    Also mach es so:
    Lösch alles aus deinem Keyboard Left und Right Event und schreib folgendes rein:
    Keyboard Left

    GML-Quellcode

    1. if(place_free(x-hspeed,y))
    2. {
    3. hspeed-=0.20
    4. }
    5. else
    6. {
    7. hspeed=0
    8. }

    Keyboard Right

    GML-Quellcode

    1. if(place_free(x+hspeed,y))
    2. {
    3. hspeed+=0.20
    4. }
    5. else
    6. {
    7. hspeed=0
    8. }

    So müsste es dann funktionieren!
    fabse64 -> haiyyu