image_angle - Probleme

  • GM 7
  • image_angle - Probleme

    Hi an Alle

    Nach langer Zeit habe ich auch mal wieder ein Problem.
    Ich versuche es so gut wie es geht zu erklären.
    auf meinen Kriegsschiff befindet sich eine Kanone, die nach hinten zeigt. siehe Bild



    Wenn sich jetzt mein Player der Kanone nähert, richtet sich die Kanone zum Spieler aus. Was auch vom Programm auch richtig gemacht wird. Nur das das nicht die Kanonenrohre sind, sondern der Geschützturm. Ist auch so korrekt, ich habe mein Sprite auch so gezeichnet. Das ist nicht das Problem. Mein Problem ist dem Game Maker beizubringen nicht bei Winkel Null zu beginnen sondern bei Winkel 180. So das die Kanonenrohre auf mich ziehlen und nicht der Geschützturm.
    Wenn ich meine Berechnung, die im Step Event steht, die 180 abziehe kommt es zu einen hin- und her springen. Was natürlich nicht schön aussieht.
    Man könnte auch das ganze mit Subimages lösen, aber das würde ich nur als letzten Ausweg nehmen.
    Hat einer von euch eine Idee, wie man das mit image_angle lösen kann.
    Habe noch die Datei mit angehängt. Dann könnt ihr euch ein besseres Bild machen.

    Gruss Drachen
    Dateien
    • Schlachtschiff.rar

      (991,04 kB, 219 mal heruntergeladen, zuletzt: )
  • Ich kann leider überhaupt nicht erkennen, wo bei deiner Kanone hinten oder Vorne ist, geschweige denn, was der Player sein soll, aber vielleicht könntest du ja mal das Sprite im Editor spiegeln. Wenn man image_angle verwendet, muss das Sprite immer mit der Vorderseite nach rechts zeigen.

    Magical dream time!
  • hi

    megamag:
    die Kanonenrohre sind hinten, Geschützturm vorne. Der Player = der kleine Pac-Man. Ist aber nur ein Platzhalter für den Panzer

    Ja das weis ich auch das die Kanonenrohre nach rechts zeigen müssen. Aber für mein Spiel müssen die Kanonenrohre nach links zeigen, weil auf der rechten Seite die Schifftaufbauten sind.
    Darum meine Frage, gibt es eine Möglichkeit mit image_angle statt bei Winkel Null erst bei Winkel 180 anzufangen.
    Ansonsten muss ich wohl oder Übel die Subimages zeichen mit der entsprechende Animation.

    Gruss Drachen :(

    ------------------------------------------------------------------------------------------------------------------------------------

    Hi ich bin es nochmal

    Habe mein Problem selbst gelöst mit dem Befehl "draw_sprite_ext"
    Da klappt es wunderbar, ohne hin und her zu springen.

    Gruss Drachen

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

  • Die einfachste Lösung wäre, das sprite der Kanone weiterhin nach links schauen zu lassen und einfach die Parameter zu vertauschen:

    GML-Quellcode

    1. Winkel = (point_direction(obj_Player.x,obj_Player.y,x,y));


    Müsste funktionieren, ist aber etwas unschön. Wie miau bereits richtig erwähnt hat, sollten alle Objekte normalerweise nach rechts ausgerichtet sein. Ansonsten wird das ganze sehr verwirrend und du musst ständig Winkel wie eben beschrieben falsch herum berechnen.

    Wenn du z.B. willst, dass eine Kanone, deren sprite nach rechts ausgerichtet ist, am Anfang nach links schaut, dann schreibe einfach ins Create Event der Kanone: image_angle = 180;
    Wenn du das jetzt an deinem Spiel ausprobierst, wirst du feststellen, dass sich die Kanone trotzdem automatisch wieder langsam nach rechts dreht. Das liegt an der folgenden Zeile im Step Event der Kanone:

    GML-Quellcode

    1. Winkel_Anfang = (x,y,point_direction(global.id_pl_01.x,global.id_pl_01.y))

    Diese Zeile kann so nicht funktionieren, da die beiden Punkte, über die du den Winkel ausrechnen willts, genau auf der selben Position liegen. point_direction gibt dann immer 0 zurück, was bedeutet dein Anfangswinkel wird sofort auf 0° also rechts gestellt. Du solltest dir da also einen anderen Punkt auf dem Schiff suchen, an dem du dich ausrichtest oder ganz einfach Winkel_Anfang = 180; eingeben.
    Einige meiner Spiele:
  • Hi Interceptor

    Danke für deine ausführliche Antwort. Werde es gleich ausprobieren.

    Gruß Drachen :)

    --------------------------------------------------------------------------
    Danke Interceptor

    Hat sehr gut geklappt. Jetzt funktioniert es wie ich es wollte. Vielen Dank für deinen Tipp :thumbsup: :thumbsup: :thumbsup: :thumbsup:

    Gruss Drachen :D

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