AnimatedSprite (SdlDotNet vs. C#) – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

AnimatedSprite (SdlDotNet vs. C#) – .NET – Fórum – Programujte.comAnimatedSprite (SdlDotNet vs. C#) – .NET – Fórum – Programujte.com

 

Omikron
~ Anonymní uživatel
4 příspěvky
9. 2. 2008   #1
-
0
-

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.


Nahlásit jako SPAM
IP: 193.84.186.–
14. 2. 2008   #2
-
0
-

Ahoj,

Možná se ptám hloupě, ale co je AnimatedSprite? Je to nějaký tvůj objekt? Nebo něco z DirectX? Zkus se víc rozepsat. Nebo někde vystav vzorový projekt.

M.

Nahlásit jako SPAM
IP: 89.24.98.–
.net
Omikron
~ Anonymní uživatel
4 příspěvky
21. 2. 2008   #3
-
0
-

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é....

Nahlásit jako SPAM
IP: 193.84.186.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý