Avatar
magic44
Redaktor
Avatar
magic44:7.2.2014 21:45

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]:7.2.2014 21:59

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:8.2.2014 10:49

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]:8.2.2014 13:33

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:8.2.2014 14:03

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):8.2.2014 14:14

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:8.2.2014 14:17

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:8.2.2014 15:15

:)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:8.2.2014 15:25

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.