pfad und obj geschwindigkeit auslaufen

  • GM 8

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

  • pfad und obj geschwindigkeit auslaufen

    huhu,

    ich könnte mal etwas hilfe gebrauchen.
    ich hab nen pfad an dem ein objekt von punkt a nach punkt b bewegen soll. damit das ganze etwas "smoother" aussieht möchte ich es anfangs beschleunigen bis es , sagen wir mal 5pix/step, schnell ist. am ende möchte ich es wieder abbremsen bis das ende des pfades erreicht ist.
    jetzt habe ich garkeine ahnung wie ich das mitn bremsen machen soll.
    theoretisch müsste das objekt ja abfragen wieviel steps der pfad noch bis zum ende braucht. und dann könnte man dem objekt nen (trägheits)wert geben, sagen wir ma 0.5
    den schiffsspeed durch trägheit, 5 / 0.5 = 10 wären 10 steps die es braucht um von 5 auf 0 zu bremsen. nun die frage:
    was muss ich machen um dem objekt zu sagen an welchem punkt des pfades er mit dem bremsen anfangen soll?

    hoffe es ist verständlich, und jemand kann mir damit etwas auf die sprünge helfen.

    mfg
  • Was mir spontan einfällt wäre dies:

    GML-Quellcode

    1. //path_started auf true setzen zum starten path_pos muss dabei auf 0 gesetzt sein
    2. var sek_to_end = 3; //Sekunden die es benötigt vom Anfang bis zum Ende
    3. var sel_path = path0; //Der entsprehende Path
    4. var move_kind = 2; //0 = Vorwärts 1 = Rückwärts 2 = Vorwärts und Rückwärts
    5. var path_loop = false;
    6. if(path_started)
    7. {
    8. switch(move_kind)
    9. {
    10. case 0:
    11. path_pos += pi/(sek_to_end*room_speed);
    12. if(path_pos >= pi)
    13. {
    14. if(path_loop)
    15. {
    16. path_pos = 0;
    17. }else{
    18. path_pos = pi;
    19. path_started = false;
    20. }
    21. }
    22. x = path_get_x(sel_path, (cos(path_pos+pi)+1)*0.5);
    23. y = path_get_y(sel_path, (cos(path_pos+pi)+1)*0.5);
    24. break;
    25. case 1:
    26. path_pos += pi/(sek_to_end*room_speed);
    27. if(path_pos >= pi)
    28. {
    29. if(path_loop)
    30. {
    31. path_pos = 0;
    32. }else{
    33. path_pos = pi;
    34. path_started = false;
    35. }
    36. }
    37. x = path_get_x(sel_path, (cos(path_pos)+1)*0.5);
    38. y = path_get_y(sel_path, (cos(path_pos)+1)*0.5);
    39. break;
    40. case 2:
    41. path_pos += pi*2/(sek_to_end*room_speed);
    42. if(path_pos >= pi*2)
    43. {
    44. if(path_loop)
    45. {
    46. path_pos = 0;
    47. }else{
    48. path_pos = pi*2;
    49. path_started = false;
    50. }
    51. }
    52. x = path_get_x(sel_path, (cos(path_pos+pi)+1)*0.5);
    53. y = path_get_y(sel_path, (cos(path_pos+pi)+1)*0.5);
    54. break;
    55. }
    56. }
    Alles anzeigen

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

  • in den paths kann man bei den punkten zu x und y auchnoch speed in prozent angeben, das macht das dann alles automatisch...
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • huhu, sry dass ich mich jetzt erst melde.

    also so recht hilft mir der code nicht. die sache ist dass ich das ganze zum steuern eines öhm "ubootes" benötige. man klickt annen punkt im room und das uboot soll sich in bewegung setzen. da arbeite ich mit nem pfad, um automatisch hindernissen auszuweichen. das funzt auch ganz gut. um das uboot etwas schwammig wirken zu lassen soll es halt langsam anfahren und am ende langsam abbremsen. mein obj_spieler (uboot) hat nen wert eng = endgeschwindigkeit(klar in steps/frame), und nen wert agi = agilität(also der wert mit dem das boot anfährt und abbremst.)
    der pfad hat ja immer path_position zwischen 0 und 1. nun dachte ich dass ich ne formel für nen bremsweg zusammenbastel welche mir mit den werten eng und agi den bremsweg in steps/frame berechnet. nun kann man ja die pfadlänge in steps auslesen(path_get_length). dann wollte ich irgendwie die werte so verrechnen dass am ende von der pfadlänge der bremsweg abgezogen wird und das ganze dann in das verhältnis für path position gesetzt wird, damit immer der passende bremsweg berechnet wird.

    omg, sehe fast selber nimmer durch =P naja, da mein mathe/physik unterricht min 20 jahre her is, und ich von wegberechnung so ziemlich keinen plan habe bin ich hier aufgeschmissen. ich hänge mal mein (hundertprozentig mathematisch völligst danebenen xD) versuch als anhang. er sollte zumindest aufzeigen was ich vorhabe.

    so, hoffe das ganze hier verwirrt nur mich und ihr könnt mir helfen.


    mfg
    Dateien
    • test2.gm81

      (11,77 kB, 296 mal heruntergeladen, zuletzt: )
  • Wenn du mir es für Dummies erklärst, was du berechnen willst, kann ich dir sagen wie man es machen muss. (Bin noch ganz fit in Mathe und Physik)
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)