Huom! Nämä wikisivut ovat osittain vielä työn alla, osa sisällöstä saattaa olla puutteellista. Ongelmakohtien viereen voit jättää kommentin, yliopiston käyttäjät myös pystyvät (ja saavat) muokata sivuja.

Jypelin käyttöohjeet » Animaation lisääminen oliolle

Jypelissä pelin olioille voi lisätä animaatioita eli liikkuvaa kuvaa. Oikeastaan animaatio koostuu useasta yksittäisestä kuvasta, jotka näytetään peräkkäin.

Aluksi täytyy siis piirtää animaatio piirrostyökaluja käyttäen, esimerkiksi näin.

TODO: TIMIIN

1. Animaation lataaminen

Kuvat on ensin liitettävä projektiin yksitellen (lue Sisällön tuominen peliin. Sen jälkeen kuvat ladataan koodissa taulukkoon, jonka jälkeen niistä voidaan koostaa animaatio.

public class Peli : PhysicsGame
{
    private Image[] ukkelinKavely = LoadImages("uk2anoik1", "uk2anoik2", "uk2anoik3");

    public override void Begin()
    {
         //...
    }

Rivi

private Image[] ukkelinKavely = LoadImages("uk2anoik1", "uk2anoik2", "uk2anoik3");

siis lataa kuvat taulukkoon. Kuvien nimet laitetaan lainausmerkkeihin ja erotetaan pilkulla, huomaa että tiedostopäätettä (esim .png) ei tarvitse kirjoittaa.

2. Animaation asettaminen oliolle

Kun animaatio on ladattu jommalla kummalla yo. tavoista, se voidaan asettaa oliolle missä vaiheessa halutaan. Yleensä animaatio asetetaan heti olion luonnin jälkeen.

pelaaja.Animation = new Animation(ukkelinKavely);
pelaaja2.Animation = new Animation(ukkelinKavely);
  • Jos asetat animaation suoraan ilman new Animation -kutsua (ja ukkelinKavely on tyyppiä Animation), niin animaatio on kirjaimellisesti sama, eli jos pysäytät toisen, myös toinen pysähtyy!

Lisäämisen jälkeen animaatio täytyy käynnistää:

pelaaja.Animation.Start();

Animaation saa lopetettua vastaavasti:

pelaaja.Animation.Stop();

Jos halutaan toistaa animaatio esimerkiksi vain kerran, Start voi ottaa parametrina toistojen määrän:

pelaaja.Animation.Start(1);

Animaation nopeutta voi vaihdella muuttamalla sen FPS-arvoa (frames per second). Sen arvo tarkoittaa, montako ruutua animaatiosta näytetään sekunnin aikana.

pelaaja.Animation.FPS = 10;

2.1 Animaation peilaaminen pysty- tai vaakasuunnassa

Animaatio voidaan peilata (Mirror) tai kääntää ylöalaisin (Flip) koodissa, jolloin saadaan sama animaatio eri suuntiin, esimerkiksi eri suuntiin liikkumista varten.

Animation ukkeliPeilattu = Animation.Mirror(ukkeli);
Animation ukkeliYlosalaisin = Animation.Flip(ukkeli);

3. Animaatiot PlatformCharacter-tasohyppelyhahmolle

PlatformCharacter (ja PlatformCharacter2) -tyypille voidaan antaa erikseen

  • kävelyanimaatio,

  • paikallaan olon animaatio,

  • hyppyanimaatio ja

  • putoamisanimaatio.

Kuvat kannattaa piirtää niin, että niissä pelaajan rintamasuunta on oikealle. Silloin animaatiot kääntyvät automaattisesti vasemmalle ja oikealle, jos liikuttamiseen käyttää hahmon Walk-metodia.

Kuvat kannattaa ladata muuttujiin pelin alussa. Katso tämän ohjeen alusta, jos et muista miten se tehdään.

Kun kuvat on ladattu mukaan peliin, asetetaan kuvista uudet animaatiot PlatformCharacterille pelaaja1:

pelaaja1.AnimWalk = new Animation(kavelyAnimaatio);
pelaaja1.AnimIdle = new Animation(paikallaanAnimaatio);
pelaaja1.AnimJump = new Animation(hyppyAnimaatio);
pelaaja1.AnimFall = new Animation(laskeutumisAnimaatio);

Animaatioiden nopeutta voi säätää niiden FPS-ominaisuudesta:

pelaaja1.AnimWalk.FPS = 5;

Animaatioiden hienosäätöön tarkoitettuja ominaisuuksia:

LoopJumpAnim Toistetaanko hyppyanimaatiota useammin kuin kerran per hyppy (oletus ei).
LoopFallAnim Toistetaanko putoamisanimaatiota useammin kuin kerran per putoaminen (oletus ei).
WalkOnAir Toistetaanko kävelyanimaatiota ilmassa (oletus ei).

4. Muun animaation lisääminen PlatformCharacterille

PlatformCharacterille voi asettaa myös muita animaatioita kuin edellä mainittuja. Esimerkiksi hyokkaysAnimaatio-muuttujaan tallennettu animaatio voidaan toistaa kirjoittamalla

pelaaja.PlayAnimation(hyokkaysAnimaatio);

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.