Ergebnis 1 bis 11 von 11

Thema: Brauche mehr Pictures fuer Auto Enter Patch...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ne,kurze erlaeuterung waere cool.

  2. #2
    Zitat Zitat von lokipoki Beitrag anzeigen
    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

    Geändert von Corti (07.10.2011 um 13:19 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •