Hallo Leute,
Ich habe ein unschönes Problem mit Texturen. Ich würde gerne mehrere Polygone mit einer Textur zeichnen. An sich ist das nicht unbedingt schwer, das es ja draw_primitive_begin_texture gibt. Das Problem ist aber nun, dass die Textur sich wiederholen muss um ein bzw mehrere Polygone "zu füllen". Dies kann man natürlich mit texture_set_repeat einstellen, dies ist aber nicht auf eine einzige Textur begrenzt, sondern auf die gesamte aktuelle texture page (wo ggf. alle backgrounds und sprites drauf sind). Was also letztendlich dazu führt, dass die Polygone mit zum Teil anderen Sprites gefüllt werden.
Um das Problem nochmals anders auszudrücken:
Das Problem hat mit xtex und ytex zu tun. Normaler Weise sollen die einen Wert zwischen 0 und 1 haben. xtex = 0 und ytex = 0 ist halt obere linke Ecke der Textur etc. Wenn jedoch texture_set_repeat auf true ist, dann können auch Werte größer als 1 genutzt werden. Wenn man nur eine Textur hat ist das perfekt, aber bei mehreren Texturen ist das problematisch, weil anstatt nur die eine Textur zu wiederholen, wird das eben mit der ganzen page gemacht, was ich eben gerade nicht will. Ich habe schon ein Paar Sachen probiert, aber es klappt nur richtig wenn eben nur eine Textur auf der Page ist (und Textur-Größe 2^n ist).
Ein work around währe halt jede textur auf ein eigene page zu tun, aber das wäre ziemlich suboptimal und ich müsste mir extra dafür die Pro-Version kaufen.
Ich hoffe, ich konnte das Problem verständlich erklären.
Falls nicht, kann ich screenshots machen und die hier Verlinken.
Das Problem macht mich schon ein Wenig wahnsinnig. Hoffentlich kann mir wer helfen.
EDIT: Ich bin doof. Habe nochmal etwas genauer in die Dokumentation geschaut da steht: "Sprites and backgrounds are always drawn without repeating, so once you draw a sprite or background this value is reset to false. This default behaviour will not affect texture stage settings (ie: calling the function will, but the internal setting to false will not)."
Also man muss es immer wieder auf true setzen, habe ich natürlich nicht gemacht...
Ich habe ein unschönes Problem mit Texturen. Ich würde gerne mehrere Polygone mit einer Textur zeichnen. An sich ist das nicht unbedingt schwer, das es ja draw_primitive_begin_texture gibt. Das Problem ist aber nun, dass die Textur sich wiederholen muss um ein bzw mehrere Polygone "zu füllen". Dies kann man natürlich mit texture_set_repeat einstellen, dies ist aber nicht auf eine einzige Textur begrenzt, sondern auf die gesamte aktuelle texture page (wo ggf. alle backgrounds und sprites drauf sind). Was also letztendlich dazu führt, dass die Polygone mit zum Teil anderen Sprites gefüllt werden.
Um das Problem nochmals anders auszudrücken:
Das Problem hat mit xtex und ytex zu tun. Normaler Weise sollen die einen Wert zwischen 0 und 1 haben. xtex = 0 und ytex = 0 ist halt obere linke Ecke der Textur etc. Wenn jedoch texture_set_repeat auf true ist, dann können auch Werte größer als 1 genutzt werden. Wenn man nur eine Textur hat ist das perfekt, aber bei mehreren Texturen ist das problematisch, weil anstatt nur die eine Textur zu wiederholen, wird das eben mit der ganzen page gemacht, was ich eben gerade nicht will. Ich habe schon ein Paar Sachen probiert, aber es klappt nur richtig wenn eben nur eine Textur auf der Page ist (und Textur-Größe 2^n ist).
Ein work around währe halt jede textur auf ein eigene page zu tun, aber das wäre ziemlich suboptimal und ich müsste mir extra dafür die Pro-Version kaufen.
Ich hoffe, ich konnte das Problem verständlich erklären.
Falls nicht, kann ich screenshots machen und die hier Verlinken.
Das Problem macht mich schon ein Wenig wahnsinnig. Hoffentlich kann mir wer helfen.
EDIT: Ich bin doof. Habe nochmal etwas genauer in die Dokumentation geschaut da steht: "Sprites and backgrounds are always drawn without repeating, so once you draw a sprite or background this value is reset to false. This default behaviour will not affect texture stage settings (ie: calling the function will, but the internal setting to false will not)."
Also man muss es immer wieder auf true setzen, habe ich natürlich nicht gemacht...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kiewi ()