Draw Problem

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

  • Ich habe ei nkleines Proble. Ich bin neu in GML. Aber ich möchte eine nDraw Befehl ausprobieren. Und zwar:

    Wenn ich klicke wird ein Dreieck gezeichnet dass vom Spieler zur maus verläuft und dann verblasst.

    Naja, den Script habe ich schon, möchte in aber umändern. Doch ic hscheiter bei der sache:

    x1=x2+20;
    x2=obj_player.x-20;
    y1=y2+20;
    y2=obj_player.y-20;

    Ich weiss einfach nicht wie ich es anordnen soll, dass immerein Dreieck gezeichnet wird. Wenn ich es aber austeste dann wird zwar ein dreicek, aber bis zu einer Position wird es immer dünner und dünner.. (Bis man es nicht sieht.) Das deieck soll aber immer im Zentrum des Objekts sein, und immer die gleiche dicke beibehalten...

    Gibt es da eine lösung? Oder gibt es einen Befehl fürs zeichen eines Vierecks? (Ei nviereck würde das Problem vielelicht lösen...)
  • Am besten wäre es, wenn du uns mal den ganzen Skript zeigen würdest, aus dem kleinen Schnipsel lässt sich nicht viel machen. Das einzige, was ich auf Anhieb erkennen konnte, war, dass du allen Koordinaten winkelunabhängige Positionen relativ zum Objekt verpasst (also ohne die direction zu beachten).
    Ein ungetesteter lösungsvorschlag meinerseits:

    GML-Quellcode

    1. dir=point_direction(x,y,mouse_x,mouse_y);
    2. len=/*gewünschte Seitenlänge*/
    3. x1=x+lengthdir_x(len,dir+90);
    4. y1=y+lengthdir_y(len,dir+90);
    5. x2=x-lengthdir_x(len,dir+90);
    6. y2=y-lengthdir_y(len,dir+90);
    7. draw_triangle(x1,y1,x2,y2,mouse_x,mouse_y,true);


    Einen Zeichenbefehl für Vierecke gibt es auch, er nennt sich draw_rectangle. Der Nachteil dabei ist allerdings, dass die entsprechenden Vierecke nicht gedreht werden können. Dafür hat Nobody-86 aber wiederum dieses Skript hier gepostet, welches dir vielleicht auf die Sprünge helfen könnte.

    hf progging :P
  • Da ich anfänger bin, schau ich mir die Codes ersmal an udn versuch sie umzuschreiben.

    Das ist der Code:

    Quellcode

    1. // create red laser beam
    2. if (mouse_check_button_pressed(mb_left)){
    3. alpha=0.75;
    4. {
    5. x1=x2+20;
    6. x2=obj_player.x-20;
    7. y1=y2+20;
    8. y2=obj_player.y-20;
    9. }
    10. }
    11. alpha-=0.15; // laser fades away
    12. // zeichne Laser Beam
    13. draw_set_alpha(alpha);
    14. draw_set_color(c_red);
    15. draw_triangle(x1,y1,x2,y2,mouse_x,mouse_y,false);
    16. // draw score text
    17. draw_set_alpha(1);
    Alles anzeigen


    Das ist ein Code aus dem Interceptors GML Tutorial.

    Naja, ich will mahcen dass ein Dreieck gezeichent wird, aber dass es immer die gleiche dicke hat.
    Da es bei mDreieck aber nur 2 Punkte innerhalb des Objekts gibt varriert die dicke...

    Ich wollte die Lösung so einfach wie möglich gestalten... :)

    Edit: Das Verblassen ist nicht das Problem. Das Problem ist die Dicke des Dreiecks... (Linie.)

    Da es ja nur 2 Punkte gibt die sich mit der Maus verbinden, entsteh ein Dreieck bei dem die ``dicke´´ Optisch varriert. Und bei mir soll sie immer gleich sein.

    Hätte da also jemand eine einfache lösung? Ich bin ja anfänger und möchte mich nicht mit schweren Codes herumschlagen.^^

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