Perfomance Frage

  • 4 Antworten
  • Neuester Beitrag
Diskutiere Perfomance Frage im Android App Entwicklung im Bereich Betriebssysteme & Apps.
K

Kollen

Gast
Hey, wollte eine Frage stellen wegen der Perfomance und zwar ich will mir
einen parallaxbackground programmieren und habe es auch irgendwie mit
ein paar Zeilen code auch geschafft bloß ich bin mir nicht sicher wie es mit
der Perfomance ausschaut wenn sich so ein code die ganze Zeit
wiederholt.

Die Grafik sowie den code hab ich mal im Anhang gepackt falls ihr es
probieren wollt. Die Grafik und das ganze ist auf mein Handy Dimensionen
zugeschnitten - bin ja im moment noch am experimentieren.

Außerdem freue ich mich auf verbesserungs Vorschläge, bzw ist Asynctast
etwas für?

MfG





 

Anhänge

killphil75

killphil75

Fortgeschrittenes Mitglied
Also so wie ich das jetzt verstehe kopierst du die Grafik jetzt 2x. in voller Bildschirmgöße übereinander ?

Ich glaube der Ansatz bei Parrallax ist in etwa so.
Gehen wir davon aus das deine Hintergründe aus sogenannten Tilemaps bestehen. Sprich die Elemente liegen als Sprites in verschiedenen Größen vor.

Dann legst du Dir 3 (ich geh jetzt mal immer von 3 aus) Scrollwerte für deine jeweiligen Ebenen fest.

Background_2 = 1pixel (Wolken)
Background_1 = 3pixel (Gebäude)
Background_0 = Vordergrund = 5pixel; (Gras und Erde)

Jetzt berechnest du alle Elemente von Background2 -> zeichnest Sie auf deine Ebene anschliessend berechnest du alle Elemente von Background 1 und übermalst somit bereits die unteren Elemente , analog dazu Background_0 und zu guter letzt Spielfigur und andere Elemente des Vordergrundes.
 
K

Kollen

Gast
Hey schonmal danke für deine Antwort,

ja da sind 2x die gleiche Grafik mit jeweils maße 480x800. Die erste setz ich am anfang so das die volle Bildschirmgröße abgedeckt wird. Die zweite
setz ich so da nur die 2 px (in height-richtung) unten bedeckt werden. Bei jedem durchlauf immer nach 5ms Wartezeit wird die erste Grafik und die
zweite sozusagen immer um ein pixel hochgeschoben bis die erste Grafik sich nicht mehr im Bildschirm befindet dafür aber die zweite ganz. Das
ganze wiederholt sich.

Ps: Wenn ihr das liest ist es einbischen komisch denn normal verläuft es meistens von rechts nach links meins verläuft aber von unten nach oben.

Ich will bloß den Background bewegen lassen und zwar immer und immer wieder, er besteht nicht aus tiles oder sprites. Ich will sozusagen die von
dir genannte Ebene und zwar die ganz hintere die sich nur die ganze Zeit bewegt und keine besondere funktion hat außer schön anzusehen.

MfG
 
killphil75

killphil75

Fortgeschrittenes Mitglied
Hmm dann ist das aber kein Parallaxscrolling sondern lediglich eine Hintergrundgrafik welche von unten nach oben durchscrollt. In deinem Beispiellink sah das aber anders aus.

Parallax hat immer etwas mit mehreren Ebenen zu tun.

Naja aber deine Frage richtete sich ja auch an die Performance.

Du kopierts momentan die gesamte Bitmap, bei verschiedenen Hintergründen müsstest du jetzt deiner App jedes Mal eine neue Bitmap 480x800 mitgeben. Das verbraucht schon mal ewig viel Speicher.
Irgend etwas soll ja sicherlich auch noch im Vordergrund der App passieren, da müsstest du wieder etwas kopieren bzw. dort sowieso eine Bitmap anlegen und darauf rummalen.

Deswegen der Vorschlag mit den Tilemaps, das spart jede Menge Speicher und ist flexibel. Von dem Problem der unterschiedlichen Handyauflösungen will ich gar nicht erst anfangen. Wenn du jetzt noch für jede Auflösung eine Fullbitmap beilegst dann bist du schnell bei einigen MB.

Bei einer Titlebitmap würdest du lediglich das Muster speichern.
Die Dimension des Handys abfragen, eine Bitmap in Handygröße erschaffen.
Auf der Bitmap dein Muster malen bzw. rumscrollen.
 
K

Kollen

Gast
Hey,

killphil75 schrieb:
Hmm dann ist das aber kein Parallaxscrolling sondern lediglich eine Hintergrundgrafik welche von unten nach oben durchscrollt.
Genau das soll es auch noch nicht werden, ich will es aber erreichen .. am Ende, Schritt für Schritt.

Also so wie ich das verstanden hab soll ich anstatt eine fertige Bitmap, einzelne Tiles nehmen und zeichnen und natürlich diese nach Lust und Laune bewegen,
bzw alle in gleicher Richtung.

Sowas existiert ja auch nicht im Netz damit man sich einen Bild davon machen kann wie man sowas richtig umsetzt und wie sowas funktioniert. Zwar gibt
es haufenweise Beiträge die darum gehen sind aber weniger Hilfreich.

MfG
 
Ähnliche Themen - Perfomance Frage Antworten Datum
10