Diskuze: Timer- pomoc

C# .NET .NET (C# a Visual Basic) Timer- pomoc American English version English version

Avatar
magic44
Redaktor
Avatar
magic44:

Ahoj mám takový problém, potřebuji, aby se mi přehrávala jedna animace
(to je vpořádku: player.StartClip(da­ta.AnimationClip­s["jmeno"]) :)), ale potřebuji, aby se přehrávala např. 5 sekund a pak se na 3 sekundy přehrála jíná (stejný kód jako předtím) a pak se zase přehrávala ta první.
Zkoušel jsem to s TimeSpan, nebo ElapsedGameTime, ale nějak mi to nefungovalo :)

Editováno 7.2.2014 21:46
Odpovědět 7.2.2014 21:45
Moudrý člověk nechce být lepší než ostatní, ale lepší, než byl sám včera.
Avatar
Odpovídá na magic44
Jakub Lásko[Saarix]:

Použil bych DispatcherTimer a na něm událost Tick.

Nahoru Odpovědět 7.2.2014 21:59
Časem je vše možné.
Avatar
magic44
Redaktor
Avatar
Odpovídá na Jakub Lásko[Saarix]
magic44:

Díky, ale ve jmeném prostoru System.WIndow­s.Threading DipatcherTimer nemám
:( a nemůžu ho najít nikde jinde.

Nahoru Odpovědět 8.2.2014 10:49
Moudrý člověk nechce být lepší než ostatní, ale lepší, než byl sám včera.
Avatar
Odpovídá na magic44
Jakub Lásko[Saarix]:

V cem tu svou app delas (mobilni prispevek)

Nahoru Odpovědět 8.2.2014 13:33
Časem je vše možné.
Avatar
magic44
Redaktor
Avatar
magic44:

V C# xna. (nějak nevím na co se ptáš :))

Nahoru Odpovědět 8.2.2014 14:03
Moudrý člověk nechce být lepší než ostatní, ale lepší, než byl sám včera.
Avatar
Odpovídá na magic44
Michal Žůrek (misaz):

v Update máš přece ElapsedTime, vem si z toho seconds a přes modulo si zjisti u které části animace jsi.

Editováno 8.2.2014 14:14
Nahoru Odpovědět 8.2.2014 14:14
Nesnáším {}, proto se jim vyhýbám.
Avatar
Ondřej Štorc:

Po mírných upravách by to mělo fungovat:

V metodě update:

// posun mraků doleva
                pozice.X--;
                // návrat na startovní pozici po vyjetí z obrazovky
                if (pozice.X < -(mraky.Width))
                        pozice.X = 0;

                // změna barvy mraků dle směru
                zmena += smer;
                if (zmena >= 96)
                        smer = -1;
                if (zmena <= 0)
                        smer = 1;

Je to popsané v tutoriálu na XNA v 3 díle tak se na to koukni...

Nahoru Odpovědět 8.2.2014 14:17
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
magic44
Redaktor
Avatar
magic44:

:)Díky moc všem :), nakonec je problém s časováním vyřešen:

//Nahore v LoadContent je zapnuta animace "Action".
float cekani = (float)Parent.Engine.GameTime.ElapsedGameTime.TotalSeconds;
prodleva += cekani;
          if (prodleva > 7)
           {
               player.StartClip(skinningData.AnimationClips["ActionN"]);
               if (prodleva > 8.5f)
               {
                   player.StartClip(skinningData.AnimationClips["Action"]);
                   prodleva = 0;
               }
           }

ALE..:) Buhužel se ActionN nepřehraje, pouze se přeruší Action a za tu 1 sekundu se zase začne přehrávat Action, ale to už je jiný problém ;) ještě jednou díky :)

Nahoru Odpovědět 8.2.2014 15:15
Moudrý člověk nechce být lepší než ostatní, ale lepší, než byl sám včera.
Avatar
magic44
Redaktor
Avatar
magic44:

Ale kdyby někdo věděl co s tím, tak by to bylo fajn a nemusel bych tady zakládat zalší vlákno. :D

Nahoru Odpovědět 8.2.2014 15:25
Moudrý člověk nechce být lepší než ostatní, ale lepší, než byl sám včera.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.