Rendern vieler Kleiner Bilder

  • Antworten:2
yumperz
  • Forum-Beiträge: 17

12.01.2014, 14:17:28 via Website

Hallo nochmals :-)

Ich habe mal gehört, das es eine Möglichkeit gibt, viele Kleine Bilder, beim Programmstart bzw. betreten der Map (game entwicklung) in ein großes bild zu konvertieren und so als Variable zu Speichern, um nicht bei jedem lifeCycle durchlauf die Schleife mit 100x100 Bildern durchrennen zu müssen.
finde diese Funktion die ich mal in irgendeinem Forum gelesen habe aber leider nicht mehr wieder =(

  1. Kennt jemand dieses Prinzip und wird dieses auch genutzt oder ist es im Endeffekt genauso schnell wie die Schleife mit 10.000 Durchläufen?
  2. Oder sollte ich sowieso nur das Zeichnen was der User sieht (mehr Programmierarbeit denke ich mal)

Ich Arbeite mit der SurfaceView ohne Open GL, da ich der Meinung bin ein einfache
TileMap mit maximal 10 Beweglichen Objekten (nicht gleichzeitig sondern in abständen, Bewegung von NPC's randomly) sollte das Ding doch schaffen oder?

— geändert am 12.01.2014, 14:17:57

Antworten
impjor
  • Forum-Beiträge: 1.793

12.01.2014, 18:37:13 via Website

Hi,

yumperz
Oder sollte ich sowieso nur das Zeichnen was der User sieht
alles andere wäre sinnlos, oder?
(mehr Programmierarbeit denke ich mal)
Wer hat nochmal gesagt, dass ein Spiel programmieren einfach ist? :)

Ich habe mal gehört, das es eine Möglichkeit gibt, viele Kleine Bilder, beim Programmstart bzw. betreten der Map (game entwicklung) in ein großes bild zu konvertieren und so als Variable zu Speichern, um nicht bei jedem lifeCycle durchlauf die Schleife mit 100x100 Bildern durchrennen zu müssen.
Warum musst du in einer Schleife 100x100 Bilder durchsuchen? Wie programmierst du gerade das zeichnen? Hört sich nicht so optimal an!

Lg

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
yumperz
  • Forum-Beiträge: 17

12.01.2014, 19:03:47 via Website

Hey =)

Impjor
alles andere wäre sinnlos, oder?
Klar, nur dachte ich das eine SurfaceView das hinbekommt ;(

Impjor
Wer hat nochmal gesagt, dass ein Spiel programmieren einfach ist? :)
Niemand Thehe =)

Naja also ich habe eine TileMap die sagen wir mal 100 Tiles in Der X-Achse hat und 100 in der Y-Achse groß ist.

Nun hat man seinen Character der irgendwo auf dieser Map steht und sich bewegen kann. Der Character bleibt immer in der Mitte des Bildschirmes also wird die Map in gegengesetzer Richtung Bewegt um die Bewegung des Charakters zu Simulieren.

Dabei muss ja bei jedem LifeCycle-Update die Map neu gerendert werden um diesen Fluss hinzubekommen (sonst würde der character nur von Feld zu Feld springen anstatt sich flüssig zu bewegen. dazu muss also jedes dieser 100 Bilder (X-Achse) in jeder dieser 100 Zeilen (y-Achse) einmal angesprochen werden und gerendert werden. und das um ein Paar Pixel versetzt.
Ich hatte erst gedacht ich Zeichne die Map nur einmal am anfang und danach nicht mehr, doch dann gibt es ein Problem beim Zeichnen (Wenn der character sich bewegt dann zieht dieser sich selbst als bild hinterher, weil die Grafik die zuvor auf den Canvas gezeichnet wurde, nicht gelöscht wird sondern die neue einfach drüber gelegt wird.)

Mir fällt allerdings gerad ein, dass man mehrere Canvas verwenden kann die beim DrawCanvas alle automatisch zusammengesetzt werden. Wenn ich dort den Character drauf stelle und die map sein eigenen Canvas hat welcher über canvas.Translate() einfach verschoben wird, dann muss das doch funktionieren oder? Der des characters wird bei jedem Update des lifeCycles auf "drawColor(Color.TRANSPARENT)" gesetzt und der andere wird einfach verschoben.

Antworten