Hallo liebes Forum.
Habe diesbezüglich bereits im Chat schon 'rumgenervt, doch bin ich wohl zu konfus, um mein Problem verständlich zu machen. Zur Einleitung (und ewigen Wiederholung): ich bin ein Noob und werde es immer bleiben. Daher erscheinen mir gewisse Dinge nicht logisch und ich stelle möglicherweise Fragen, die so manchen "Durchblickenden" belustigen...
Es geht um einen mitscrollenden Hintergrund, der sich in einem anderen Tempo als die Spielfigur bewegt. Der Code hierfür sieht in meinem Fall folgendermassen aus (Horizontal-Scroll):
Beides im Scriptordner:
Script namens "draw_background_htile"
bg_width = background_get_width(argument0);
for(c = 0; c < ceil(room_width/bg_width); c+=1) {
draw_background(argument0,((argument1 mod bg_width) - bg_width) mod bg_width + (bg_width * c) , argument2);
}
Script für einen horizontal verlaufenden Room (Beispiel):
draw_background_htiled(bg_hintergrundbild,view_xview[0]/1.15,view_yview[0]/1.15)
Soweit so gut. Klappt genauso, wie ich es will. Vorallem mit mehreren Background-Ebenen (in verschiedenen Tempi) eine wunderschöne Sache (Pseudo-3D-Effekt). Weiters wird der Hintergrund nahtlos aneinandergereiht (horizontal gekachelt).
Nun aber möchte ich dasselbe VERTIKAL haben. Dh. der Hintergrund soll in einem bestimmten Level vertikal mitscrollen. Im Chat gab man mir bereits den Hinweis, "width" durch "height" zu ersetzten, was ich auch getan habe. Somit sehen die zwei Codes folgendermassen aus:
Script namens "draw_background_vtile"
bg_height = background_get_height(argument0);
for(c = 0; c < ceil(room_height/bg_height); c+=1) {
draw_background(argument0,((argument1 mod bg_height) - bg_height) mod bg_height + (bg_height * c) , argument2);
}
und eben wieder für das Level (Beispiel):
draw_background_vtiled(bg_hintergrundbild,view_xview[0]/1.15,view_yview[0]/1.15)
Das Traurige an der Sache ist nur; endet die untere (oder auch obere) Seite des Hintergrundbildes, wird es nicht erneut angereiht. Also kein vertikaler Kacheleffekt.
Ich steh total auf der Leiter. Natürlich ist der Horizontal-Code (bis auf die Tempogeschwindigkeiten) nicht von mir. Weil ich wie gesagt ein bekennender Noob bin.
Bitte helft mir, da ich sonst nicht weiter machen kann. Was muss ich tun, damit das Hintergrundbild vertikal wiederholt wird?
Danke vielmals und schöne Grüsse,
Kht.
Habe diesbezüglich bereits im Chat schon 'rumgenervt, doch bin ich wohl zu konfus, um mein Problem verständlich zu machen. Zur Einleitung (und ewigen Wiederholung): ich bin ein Noob und werde es immer bleiben. Daher erscheinen mir gewisse Dinge nicht logisch und ich stelle möglicherweise Fragen, die so manchen "Durchblickenden" belustigen...
Es geht um einen mitscrollenden Hintergrund, der sich in einem anderen Tempo als die Spielfigur bewegt. Der Code hierfür sieht in meinem Fall folgendermassen aus (Horizontal-Scroll):
Beides im Scriptordner:
Script namens "draw_background_htile"
bg_width = background_get_width(argument0);
for(c = 0; c < ceil(room_width/bg_width); c+=1) {
draw_background(argument0,((argument1 mod bg_width) - bg_width) mod bg_width + (bg_width * c) , argument2);
}
Script für einen horizontal verlaufenden Room (Beispiel):
draw_background_htiled(bg_hintergrundbild,view_xview[0]/1.15,view_yview[0]/1.15)
Soweit so gut. Klappt genauso, wie ich es will. Vorallem mit mehreren Background-Ebenen (in verschiedenen Tempi) eine wunderschöne Sache (Pseudo-3D-Effekt). Weiters wird der Hintergrund nahtlos aneinandergereiht (horizontal gekachelt).
Nun aber möchte ich dasselbe VERTIKAL haben. Dh. der Hintergrund soll in einem bestimmten Level vertikal mitscrollen. Im Chat gab man mir bereits den Hinweis, "width" durch "height" zu ersetzten, was ich auch getan habe. Somit sehen die zwei Codes folgendermassen aus:
Script namens "draw_background_vtile"
bg_height = background_get_height(argument0);
for(c = 0; c < ceil(room_height/bg_height); c+=1) {
draw_background(argument0,((argument1 mod bg_height) - bg_height) mod bg_height + (bg_height * c) , argument2);
}
und eben wieder für das Level (Beispiel):
draw_background_vtiled(bg_hintergrundbild,view_xview[0]/1.15,view_yview[0]/1.15)
Das Traurige an der Sache ist nur; endet die untere (oder auch obere) Seite des Hintergrundbildes, wird es nicht erneut angereiht. Also kein vertikaler Kacheleffekt.
Ich steh total auf der Leiter. Natürlich ist der Horizontal-Code (bis auf die Tempogeschwindigkeiten) nicht von mir. Weil ich wie gesagt ein bekennender Noob bin.
Bitte helft mir, da ich sonst nicht weiter machen kann. Was muss ich tun, damit das Hintergrundbild vertikal wiederholt wird?
Danke vielmals und schöne Grüsse,
Kht.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von kht ()