Jasně promiň, nějak jsem automaticky předpokládal znalost knihovny SdlDotNet....(je sice otázka zda mě budeš schopen poradit, když ji neznáš, ale co já jsem ten kdo má problém)
Takže:
AnimatedSprite je objekt knihovny SdlDotNet. Dalo by se zjednonušeně říci, že je to Surface, který si pamatuje posloupnost bitmap(AnimationCollection), která vznikne zde "rozřezáním" bitmap.bmp na okna 100*100px. Také si pamatuje čas, po kterém automaticky vymění jednotlivé bitmapy z AnimationCollection.
Jiný možný pohled by byl, že je to jakoby klasický kinofilm, který se každých 80ms(animace.Delay) posune o jedno pole.
Můj problém je, že ve stavu kdy došel k poslednímu "okenku" a měl by začít znova od začátku místo času 80ms čeká odhadem dvojnasobek.
Avšak pokud pustím "film" jakoby pozadu tak to jede v pořádku.
Nevím, ale snad je to teď dostatečne srozumitelné....
Příspěvky odeslané z IP adresy 193.84.186.–
Omikron
Omikron
Mam takový zajímavý problém, pracuji s animaci v AnimatedSprite, řekněme zapsanou nějak takto.
private AnimatedSprite objekt = new AnimatedSprite();
......
AnimationCollection animace = new AnimationCollection();
animace.Add(new Surface("bitmap.bmp"), new Size(100, 100), 0);
animace.Delay = 80;
this.Animations.Add("ANIMACE", animace);
......
a pak v cyklu:
Screen.Blit(objekt);
Screen.Update();
Animace se vykresluje v pořádku, problem nastane poté co dojede animace do "konce" a začne se opakovat znova od začátku.
Pak místo času 80ms čeká dvojnasobný čas(odhaduju podle toho ze při 1s to bylo asi 2s) .
Problém vyřeší další řádek kódu, který však převrátí běh animace.
animace.AnimateForward = false;
Neví někdo, proč se daná animace vždy "zasekne" než se spustí znova podotýkam že se to děje pouze pri dopředném běhu nikoli při zpětném.