Guten Abend, ich gehöre hier zu den vielen Membern, die das Spiel aus Kapitel 12 (C++ für Spieleprogrammierer) am Verändern sind und dazu eine Frage haben
(soll heißen, ich bin blutiger Anfänger).
Nun zu meiner Frage: Wie erreiche ich mit der SDL, dass ein Sprite einmal im Vordergrund, in einem anderen Fall aber im Hintergrund gerendert wird?
Generell ist es ja so: je weiter unten die Renderfunktion im Quellcode steht, desto weiter oben wird es gerendert (im Spiel aus Kapitel 12 in der Game.Run). Was mache ich aber, wenn ein Sprite einmal vor und einmal hinter einem anderen Bild gerendert werden soll? Schon bei 3 Sprites würde das mit If-Bedingungen festzulegen in eine ziemliche Zumutung ausarten.
Genauso beispielsweise mit Bäumen: die Renderreihenfolge mit If-Bedingungen einzustellen, damit der Stamm des hinteren Baumes nicht vor dem vorderen Baum zu sehen ist, halte ich ja für so gut wie unmöglich, wenn ich ein paar mehr Bäume habe.
Ich habe mir mal die SDL-Funktionen angesehen und fand nur SDL_UpdateRects als einen geeigneten Kandidaten, um das Problem anzugehen. Allerdings ist mir schleierhaft, wo ich den wie im Spiel aus Kapitel 12 verwenden könnte... und ob die Funktion überhaupt geeignet ist.
Außerdem habe ich gelesen, dass mit der Funktion aus Performance-Gründen nicht zu spaßen ist.
Über ein wenig Hilfe würde ich mich freuen, so etwas wie "wieso verwendest du SDL, nim doch [...] kann ich dann allerdings nicht brauchen.
Außer, wenn es mit der SDL unmöglich ist