Probleme bei flugbahnberechnung

  • GM 8
  • Probleme bei flugbahnberechnung

    heyho, habe folgendes problem, ich habe einen gegner gebastelt, der wenn ich mich ihm nähere eine handgranate auf mich werfen soll, diese soll dann parabel-förmig zu dem punkt fliegen wo sich mein spielerobjekt dabei befindet. ich habe also p1(x1,y1) als position meines gegners und p2(x2,y2) als position meines player_objektes.
    die funktion: y = -x²+((x2²-x1²+y2-y1)/x2-x1)x + x2²-((x2²-x1²+y2-y1)/x2-x1)*x2+y2 sollte wenn ich mich bei der herleitung nicht vertan habe eig meine flugbahn durch beide punkte beschreiben(zumindest bei meinen test mit meinem taschenrechner hats geklappt:D )

    so mein create event meiner granate

    GML-Quellcode

    1. x1 = x
    2. y1 = y
    3. x2 = obj_player.x
    4. y2 = obj_player.y


    mein step event

    GML-Quellcode

    1. x += 1
    2. y = -(x^2) + (((x2^2)-(x1^2)+y2-y1)/(x2-x1))*x + (x2^2)- (((x2^2)-(x1^2)+y2-y1)/(x2-x1))*x2 -y2


    (geht jetzt erst mal rein um die flugbahn), das problem ist das es irgendwie net funzt ich komme immer auf werte für y die irgendwo bei -300 oder so losgehn und dann immer kleiner werden. kann mir jemand sagen was ich falsch mache?
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Mir sind zwei Fehler aufgefallen:

    1. Im GM hat der ^-Operator eine andere Bedeutung. Zum Quadrieren musst du die Funktion sqr verwenden.
    2. Ich habe die Formel mal nachgerechnet und bin dabei für den Linearterm auf das gleiche gekommen, aber beim Absolutglied auf das Negative von deinem.

    Eventuell solltest du aber auch noch berücksichtigen in welchem Winkel die Granate geworfen werden soll. Bislang hast du ja vor dem x^2 den Koeffizient -1 was zu einer ziemlich hohen Kurve führen sollte.
  • heyho danke für die antwort also das mit dem sqr wusste ich nicht das ist schon mal gut^^
    zu punkt zwei, ich habe auch nocheinmal drüber geschaut und habe auch noch einen kleinen fehler gefunden, aba zumindes die funktion die ich am anfang geschrieben hatte y = -x²+((x2²-x1²+y2-y1)/x2-x1)x + x2²-((x2²-x1²+y2-y1)/x2-x1)*x2+y2 stimmt glaub ich:D ich habs zumindest nochmal zweimal nachgerechnet und dann in meinem taschenrechner verglichen und da passte es (auch wenn ich mich hier nicht mit einem mathe student anlegen will :whistling: weil da kann ich eh net mithalten^^ ansonsten bitte mich vom gegenteil überzeugen :rolleyes:

    hab das ganze jetzt so geändert: (vlt hab ich mich ja auch mit einer klammer oder so vertan)

    GML-Quellcode

    1. x += 1
    2. y = -sqr(x) + ((sqr(x2)-sqr(x1)+y2-y1)/(x2-x1))*x + sqr(x2)- ((sqr(x2)-sqr(x1)+y2-y1)/(x2-x1))*x2 +y2


    das mit dem winkel weiß ich noch nicht, ich wills erst mal so hinbekommen. die wurfweite ist recht gering also ca 100 pixel von daher dürfte die parabel auch nicht zu hoch werden hier mal das bsp dazu. einfach nach rechts gehn. die variable die unter dem schild erscheint ist der y wert der granate
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Ja, du hast recht, die Formel stimmt so. Hatte mich verrechnet. Und wenn's mit der Formel jetzt funktioniert ist das ja auch die Bestätigung. Konnte dein Beispiel aber leider nicht testen, da mir beim Entpacken angezeigt wird, dass das Archiv beschädigt sei. Aber wenn's geht ist ja gut.
  • hehe also funken tut es leinder noch nicht
    sry das es vorhin net geklappt hat
    hier noch mal neu. also problem ist halt immernoch das es irgendwo bei -300 anfängt und sofort immer kleiner wird...


    Edit: ok hab meine fehler gefunden zum einen ging die x-koordinate in die falsche richtung... und zum andern hattest du recht, die parabel geht viel zu hoch, irgendwas um die 2700 oder so das ist zu viel, also versuchs ichs jetzt mal mit faktor^^ aba danke fürs auf den richtigen weg bringen^^
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey

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