Ne,kurze erlaeuterung waere cool.
Ochjoa, kay.
Grundwissen:
Ein Bild per ShowPicture anzuzeigen lädt dieses von der Festplatte und kostet somit immer mehr Zeit als ein MovePicture-Befehl. Das kann oft vernachlässigt werden, manchmal aber auch zu Problemen führen.
Gehen wir mal davon aus man hätte eine Animation aus Pictures z.B. eine Figur die sich bewegt mit 3 Animationsframes.
Die kann man so lösen:
Show Picture (1,"FrameA")
Wait 0.1
Show Picture (1,"FrameB")
Wait 0.1
Show Picture (1,"FrameC")
Wait 0.1
Das funktioniert, allerdings werden dabei im Takt von 100ms Festplattenzugriffe gemacht.
Besser wäre:
Show Picture (1,"FrameA") //Unsichtbar
Show Picture (2,"FrameB") //Unsichtbar
Show Picture (3,"FrameC") //Unsichtbar
Move Picture (1) // sichtbar
Move Picture (2) // unsichtbar
Move Picture (3) // unsichtbar
Wait 0.1
Move Picture (1) // unsichtbar
Move Picture (2) // sichtbar
Move Picture (3) // unsichtbar
Wait 0.1
Move Picture (1) // unsichtbar
Move Picture (2) // unsichtbar
Move Picture (3) // sichtbar
Wait 0.1
Es wird einmal beim Mapwechsel oder so geladen und dann nur noch sichtbar und unsichtbar gemacht bzw. verschoben, das ist viel besser für die Performance.
Was man sich da natürlich sofort denkt: "Ja, aber das verbraucht dann aber 3 Picture-IDs statt einer und ich hab doch eh nur so wenige". Ja, diese Animation zB lässt auch auch clever anders lösen. Indem man ein Bild erstellt, auf dem FrameA,FrameB und FrameC zu sehn sind aber mit so viel Leerraum dazwischen, dass man Ab und C nicht sieht wenn gerade B im Bild ist.
Show Picture (1,"FramesABC") //Unsichtbar
Move Picture (1) // so dass A im Bild ist
Wait 0.1
Move Picture (1) // so dass B im Bild ist
Wait 0.1
Move Picture (1) //so dass C im Bild ist
Wait 0.1
Ein Bild, dass 32 Pixel Breit und zB 900 Pixel hoch ist hin und her zu verschieben mit MovePicture geht performanter als kleine Pictures immer wieder neu zu laden. Wenn du also zB in einem Actionkampfsystem eine Explosionsanimation mit 16 Frames hast,pack sie auf einen Streifen der dann 4000 Pixel hoch ist anstatt 16 verschiedene Pictures zu laden, oder 16 Picture-IDs gleichzeitig zu verwenden.
mfg
--CortiWins GitHub DynRPG < Charguide < [2k3] Zahlen und Werte < [2k3] Kurven als Wertetemplates < [2k3] DynRPG Werkstatt
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Hello from the otter side
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Geändert von Corti (07.10.2011 um 13:19 Uhr)