Panzer kanone soll sich zur Maus drehen

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

  • Panzer kanone soll sich zur Maus drehen

    Hallo zusammen,
    ich habe einen Panzer und von dem die kanone soll sich immer zur maus drehen und die
    kugeln sollen dann auch in diese richtung fliegen, wie kann ich das? machen mit

    image_angle=direction
    hat es nemlich nicht funktioniert.
  • RE: Panzer kanone soll sich zur Maus drehen

    Hi. Diese Frage gibt es schon recht häufig, aber ich sage einfach mal, dass du schon vergebens gesucht hast.
    Erstmal müsste man wissen, welches Objekt dein Step-Event hat. Der Panzer? Die Kugel? Die Kanone? Oder sind panzer und Kanone ein Objekt? Das würde das ganze komplizieren.
    Allerdings solltest du dir mal folgende Funktion angucken:
    point_direction(x1,y1,x2,y2) Returns the direction from point (x1,y1) toward point (x2,y2) in degrees.


    Wenn du für das Kanonenrohr folgendes event nehmen würdest:

    GML-Quellcode

    1. image_angle = point_direction(x,y,mouse_x,mouse_y)
    müsste sich das Rohr zur Maus drehen. Bei der Kugel dann im - Event

    GML-Quellcode

    1. direction = point_direction(x,y,mouse_x,mouse_y)

    müsste klappen. Sonst probier es einfach mal aus.

    woku
    P.S.: Einwandfrei funktioniert das nur, wenn das Origin auf dem Dreh- und Angelpunkt der Kanone liegt. Das kannst du im Sprite-Editor einstellen.

  • wenn du zu faul bist zum suchen dann hier

    GML-Quellcode

    1. directionToTarget = point_direction(x,y,mouse_x,mouse_y)
    2. if (direction > directionToTarget)
    3. {
    4. if(direction - directionToTarget < 180)
    5. {
    6. direction = direction - 5;
    7. }
    8. else
    9. {
    10. direction = direction + 5;
    11. }
    12. }
    13. else
    14. {
    15. if (directionToTarget - direction < 180)
    16. {
    17. direction = direction + 5;
    18. }
    19. else
    20. {
    21. direction = direction - 5;
    22. }
    23. }
    24. image_angle = direction
    Alles anzeigen



    im event wo der panzer den schuss erzeugt

    GML-Quellcode

    1. mySchuss = instance_create(x,y,"name des schuss objektes")
    2. mySchuss.direction = direction
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%
  • Original von Siegfried
    Hallo :D.
    Vieleicht hilft dir das :D.
    Das tut ist aus dem GMC Forum ;).
    Gruß, Siegfried :D.

    Für 'n Link hat der Platz wohl nicht mehr gereicht.
    Dass er die SuFu (o.ä.) verwenden soll, wurde bereits gesagt.

    P.S.: Wo wir schon mal dabei sind.
    Panzer Example 1.0

    €DIT: Das Tutorial ist beschädigt btw.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • ach ja,
    ich hab noch mal ne frage,
    gibt es auch eine andere lösung dafür:
    ich habe im kanonenturm einfach auch WASD eingestelt also
    damit der kanonenturm in der mitte vom panzer bleibt.
    kann ich das irgendwie anders machen?


    hier mein problem, der kanonenturm dreht sich zwar zur maus hin aber nicht so wie er soll.
    Dateien
    • panzer_01.zip

      (2,28 kB, 108 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Xivilay ()

  • 1. Das mit WASD im Kanonenturm würde ich nicht machen.
    Weil sobald der Panzer dann an eine Wand stößt, wird der Turm weiter rücken und nicht mehr mittig sitzen.

    2. Un, dass sich der Turm nicht richtig zur Maus dreht, liegt einfach an folgendem:
    Die Richtung 0 bzw 360 liegt RECHTS, und nicht oben.
    Sprich: wenn die point_direction 0 ergibt, wird das Sprite normal angezeigt, wie es ist.
    Da du den Kanonenturm jedoch mit dem Rohr nach oben gezeichnet hast, wird dies nun als das Bild für die Richtung rechts angesehen.

    Jetzt gibt es 2 Möglichkeitem dem vorzubeugen:
    1. Überall wo der Winkel berechnet wird einfach ein "-90" anhängen, oder
    2. das Sprite an sich um 90° im Uhrzeigersinn drehen.

    Ich bevorzuge zweiteres.

    Btw: Guck dir bitte mal mein Example an, das befasst sich nämlich genau mit der angesprochenen Problematik.
    Original von Kilik
    P.S.: Wo wir schon mal dabei sind.
    Panzer Example 1.0
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Hab selbst mal ein Panzerspiel gemacht, vielleicht hilft es dir bei weiteren Problemen weiter.
    Jedenfalls ist es oftmals nicht wirklich sauber durchdacht (z.B. room speed=300 xD),
    also halt dich bei einfachen Problemen lieber an Kiliks Example, bei dem z.B. der Kanonenturm einfacherweise gedrawed, und kein einzelnes objekt ist. :)
    Dateien
    • TANKO.zip

      (109,71 kB, 139 mal heruntergeladen, zuletzt: )
    >"Ich habe keine Zeit mich zu beeilen."<

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Armordes ()