Object soll background_part relativ zur Position im Raum zeichnen

  • GM 8

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

  • Object soll background_part relativ zur Position im Raum zeichnen

    Die Überschrift trifft so einiger Maßen. In einem alten Jump&Run Projekt, dass ich weiter machen will, verwende ich Objekte mit quadratischen und dreieckigen sprites für das Terrain. Da ich keine Lust habe unzählige Terrainobjekte oder Tilesets zu machen, werden diesen Objekten in jedem Level ein entsprechender background zugewiesen, den sie praktisch als Textur bekommen. Sie sollen immer ein Teilstück des Hintergrunds, in entsprechender Form, relative zu ihrer Position im Raum zeichnen. Sieht ja dann so aus:

    GML-Quellcode

    1. draw_background_part(global.bg,x,y,64,64,x-32,y-32)

    Dass funktioniert natürlich nur wenn die Position im Raum nicht größer ist als die Größe des backgrounds. Ich möcht jetzt aber auch ned riesige backgrounds verwenden, die so groß sind wie ein Level (z.B. 4000x2000). Ich bin mir sicher dass sich das Problem leciht mit ein bißchen Rechenarbeit lösen lässt, doch irgendwie komm ich nicht auf den Weg. Wer weiss wie?

    Wenn das dann funzt, dann hab ich des nächste Problem: Wie mach ich des dann bei den Dreiecken? Klar mit draw_primitive_begin_texture(pr_trianglelist,textur), aber des mit den draw_vertex_texture(x,y,xtex,ytex) leuchtet mir nicht ganz ein. Wieso muss xtex und ytex zwischen 0 und 1 liegen? Wie rechne ich dann die Position im background, die gezeichnet werde soll, in Werte die kleiner Eins sind um?

    Bin für jede Antwort dankbar.
    Anderer Leuten Signaturen sind... anderer Leuten Signaturen!


  • Raphi schrieb:

    Wie rechne ich dann die Position im background, die gezeichnet werde soll, in Werte die kleiner Eins sind um?


    mit Prozenten!
    bsp:
    background höhe 120.
    gesuchte höhe 50.
    50/120(bzw 50 120stel)=0,4166666666...
    also immer gewünschte durch tatsächliche breite(zähler durch nenner).
    warum das so ist weiß ich nicht, aber so funktioniert es. Zur eigentlichen frage hab ich leider keine antwort :(
  • Ok danke, dann ist mir des schon mal klar. Wer einen Lösungsweg für das eigentliche Problem weiss, immer her damit.
    Anderer Leuten Signaturen sind... anderer Leuten Signaturen!


  • Benutzer online 1

    1 Besucher