steuerung für copter

  • GM 8

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

  • steuerung für copter

    huhu,

    ich möchte eine einfache 2D drohne steuern lassen. sie soll über einen regler verfügen der die motorleistung zum hochfliegen oder sinken steuert. mit links und rechts soll er sich in die jeweilige richtung neigen. je stärker die neigung desto schneller soll er in die richtung fliegen. am besten das ganze iwie pseudo physisch. jetzt hab ich wirklich keinen plan wie ich das realisieren soll. meine momentanen versuche sind aufgrund meiner niedrigen programmierskills eher gescheitert. kann mir hier einer erklären wie ich an so eine steuerung rangehen kann? vllt kennt jemand sogar nen tut, oder anderes was mir hier auf die sprünge hilft?

    hintergrund des ganzen, ich hab nen quadrocopter gekauft, und finde die teile seit dem sehr lustig und möchte einfach mal einen in 2D in gamemaker "bauen".


    mfg
  • Also entweder machst du es mit einer Schubvariable udn eine Vector der mit der Direction seine Zeigerichtung verändert. Aber wenn du es nur simuliert brauchst dann würde ich es so machen:
    Die Neigung erhöht oder verringert hspeed, ab einem bestimmten "kritischen" Neigungswinkel wird dann vspeed verringert weil der Rotor den Helikopter nciht mehr gut trägt(stall).
    Ansonsten steuerst du vspeed relativ direkt. Damit eine gewisse Schwammigkeit reinkommt, machst du dir eine Variable die du erhöhst oder verringerst mit dem Intput und an die sich vspeed aber nur langsam anpasst.

    GML-Quellcode

    1. if keyboard_check(vk_up) && schub < 4
    2. {
    3. schub += 0.5;
    4. }
    5. if keyboard_check(vk_down) && schub > -4
    6. {
    7. schub -= 0.5;
    8. }
    9. //auf selber höhe schweben
    10. if schub < 0 // ggf noch not keyboard press abfragen
    11. {
    12. schub += 0.1;
    13. }
    14. if schub > 0
    15. {
    16. schub -= 0.1;
    17. }
    18. //vspeed an schub anpassen
    19. if vspeed < schub
    20. {
    21. vspeed += 0.1;//hier könnte auch eine variable sein die stärker oder schwächer anpasst
    22. }
    23. if vspeed > schub
    24. {
    25. vspeed -= 0.1;
    26. }
    Alles anzeigen


    keine gewähr für den code, bin grad in der arbeit^^

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)

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

  • huhu,

    danke für den script, hat mir mein denkfehler veranschaulicht, und funzt mit etwas feintuning super. hab noch eine var engineOn = true/false gemacht. nun kann man den schub nur steuern wenn der motor an/aus ist. werd mich ma belesen wie ich das mit links/rechts machen kann. vllt pro winkel-grad hspeed+ oder-.

    mfg