Performance-Problem bei vielen Instanzen - auch mit anderen Lösungswegen

  • GM 7
  • Performance-Problem bei vielen Instanzen - auch mit anderen Lösungswegen

    In meinem derzeitigem Versuchsprojekt soll der Spieler mit einem Pinsel in den Raum malen können. Zuerst hatte ich es damit probiert, dass jeder Farbfleck eine Instanz des Objekts "Klecks" ist. Dieses Objekt tut nichts anderes als das sprite für den Fleck zu drawen. Ist logisch dass man da schnell mal tausende Instanzen zusammen (gemalt) hat und das Spiel lahmt. Gut dann dachte ich wär ganz schlau und hab alle Flecken mit nur einem Objekt mit Hilfe von ner for-Schleife und Arrays drawen lassen. Doch ist bei der Schleife die Variable i erst ma recht groß (da es viele Flecken zu zeichnen gibt) lahmt es ebenso. Dann dachte ich, ich erstell einfach nach ner gewissen Zeit nen Background vom Screen, lass den zeichnen und lösch die Instanzen (dann wieder mit Instanzen probiert). Der Spieler würde es nicht merken, doch natürlich ist in dem background dann auch der Pinsel und der hud zusehen. Dann probierte ich es mit create_background_from_surface und lies die Flecken und den background aufm surface zeichnen. Doch das brachte seltsame Grafikfehler mitsich.

    Lange Rede, kurzer Sinn: Ich weiß nicht mehr weiter. Hat jemand von euch noch eine ganz andere Idee, um das möglichst performanceschonend zu realisieren?
    Ich sags nochmal: Der Spieler soll nichts weiter können als mit einem Pinsel in den Raum zumalen. Und das Spiel darf nicht anfangen zu ruckeln, egal wieviel er malt.

    Hab übrigens Vista64, kann mir also auch vorstellen, dass es bei den meisten anderen nicht geruckelt hätte. Is aber nur ein Verdacht und selbst wenn es so ist, soll es ja bei mir und allen anderen "Vista-Bestraften" auch flüssig laufen.

    Bin für jede Antwort dankbar.

    Mfg Raphi
    Anderer Leuten Signaturen sind... anderer Leuten Signaturen!


  • Danke erst mal. Das hat mein Performance-Problem gelöst, allerdings hab ich jetzt ein Neues. Kann es sein, dass wenn man sprites mit alphachannel lädt, sie nicht auf einem surface drawen kann? Ich mein, man kann's schon aber dabei entsteht ein blöder Grafikfehler. Andere sprites, die ich nicht auf dem surface zeichne, "malt" es dann quasi.
    Anderer Leuten Signaturen sind... anderer Leuten Signaturen!


  • Bin grad durch dein anderes Thema auf dieses hier gestoßen. Vorweg: Air Control darfst du auf keinen Fall abbrechen! ;)

    Ich weiß nicht genau, ob wir das gleiche Probleme haben. Wenn ich Alphagrafiken verwende, funktioniert das an sich. Allerdings werden transparente Pixel auf vorhandenen Pixeln entweder nichttransparent oder volltransparent dargestellt. Zwischenstufen gibt es da offensichtlich nicht.
    In meinem Fall nutze ich ein Surface folgendermaßen:
    Der Schatten eines Panzers besteht aus 2 Teilen, die überlagert auf ein Surface gezeichnet werden: Unterteil und Kanone. Das Surface wird transparent über den Boden gelegt. Man erkennt nun deutlich die Kanten der Kanone auf dem Unterteil, da sie transparente Pixel enthalten. Vielleicht weiß ja jemand, ob und wie man das lösen kann.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Benutzer online 1

    1 Besucher