der code von Tempelbauer wahr schon das was ich wollte nur die Sache mit dem permanenten anzeigen der Linien ist nicht enthalten.
Tempelbauer schreibt:
du erzeugst eine Liste vor Eintritt in die while. In der mouse_right==1 Verzweigung fügst du einen neuen Eintrag in die Liste ein (der die Start und Endpunkte der aktuellen Linie enthält). Und damit du die bisherigen Linien anzeigen kannst, muss du nur die Liste durchlaufen und mit draw_line die gespeicherten Positionen zeichnen.
das sieht dann bei mir so:
if (mouse_right == 1)
{
liste_linie = file_open_append("line.txt");
file_var_write(liste_linie,(start[0]));
file_var_write(liste_linie,(start[1]));
file_var_write(liste_linie,(end[0]));
file_var_write(liste_linie,(end[1]));
file_close(liste_linie);
draw=0;
}
zum erneuten zeichnen hab ich mir folgenden Code gebastellt:
function immer_zeichen()
{
liste_linie = file_open_read("line.txt");
while(liste_linie >= 0)
{
start[0] = file_var_read(liste_linie);
start[1] = file_var_read(liste_linie);
end[0] = file_var_read(liste_linie);
end[1] = file_var_read(liste_linie);
draw_line (start,vector(255,255,255),100);
draw_line (end,vector(0,0,255),100);
wait(1);
}
file_close(liste_linie);
}
hier hab ich dann aber gleich wieder 2 neue Probleme. wird die funktion immer_zeichen() im Main aufgerufen dann wird weder das alte noch das neu gezeichnete gezeichnet. rufe ich sie hingegen in der Mausfunktion auf werden die gespeicherten Linien gezeichnet aber ich kann nur eine linie hinzufügen. Ich glaube das hier das Problem besteht das die line.txt 2x gleichzeitig geöffnet ist.