source: 2010/24/anlakane/Muistipeli/Kortti.cs @ 888

Revision 888, 3.2 KB checked in by anlakane, 10 years ago (diff)

Kortti kääntyilee ja väri melkein vaihtuu.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using Jypeli;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Graphics;
7
8namespace Muistipeli
9{
10    public class Kortti : GameObject
11    {
12        bool onkoKaantynyt;
13        protected Vector alkuperainenKoko;
14        protected enum PuoliEsilla { Etu, Taka }
15        protected enum Liikkeentila { Pysahtynyt, Pienentyy, Suurentuu }
16        protected Jypeli.Color etuVari;
17        protected Jypeli.Color takaVari;
18        Liikkeentila liikkeenTila;
19        PuoliEsilla puoliEsilla;
20        bool kaantyminenAlkanut = false;
21
22        public Kortti(double width, double height, bool etupuoliEsilla, Jypeli.Color etuVari, Jypeli.Color takaVari)
23            : base(width, height, Shapes.Rectangle)
24        {
25            this.etuVari = etuVari;
26            this.takaVari = takaVari;
27
28            if (etupuoliEsilla)
29            {
30                this.puoliEsilla = PuoliEsilla.Etu;
31                this.Color = etuVari;
32            }
33            else
34            {
35                this.puoliEsilla = PuoliEsilla.Taka;
36                this.Color = takaVari;
37            }
38            //thisonkoKaantynyt = false;
39            //liikkeenTila = Liikkeentila.Kuvapuoli;
40            IsUpdated = true;
41            this.alkuperainenKoko = new Vector(width, height);
42        }
43
44        public void Kaanna()
45        {
46            kaantyminenAlkanut = true;
47            liikkeenTila = Liikkeentila.Pienentyy;
48        }
49
50        void AsetaPuoli(PuoliEsilla puoli)
51        {
52            switch (puoli)
53            {
54                case PuoliEsilla.Etu:
55                    this.Color = etuVari;
56                    break;
57                case PuoliEsilla.Taka:
58                    this.Color = takaVari;
59                    break;
60            }
61        }
62
63        /// <summary>
64        /// Allows the game component to update itself.
65        /// </summary>
66        /// <param name="gameTime">Provides a snapshot of timing values.</param>
67        public override void Update(Time time)
68        {
69            if (liikkeenTila == Liikkeentila.Pienentyy)
70            {
71                if (this.Width > 3)
72                {
73                    this.Size = new Vector(this.Width - 3, this.Height);
74                }
75                if (this.Width <= 3)
76                {
77                    liikkeenTila = Liikkeentila.Suurentuu;
78                    if (puoliEsilla == PuoliEsilla.Etu)
79                    {
80                        AsetaPuoli(PuoliEsilla.Taka);
81                    }
82                    else
83                    {
84                        AsetaPuoli(PuoliEsilla.Etu);
85                    }
86                }
87            }
88
89            if (liikkeenTila == Liikkeentila.Suurentuu)
90            {
91                if (this.Width < this.alkuperainenKoko.X)
92                {
93                    this.Size = new Vector(this.Width + 3, this.Height);
94                }
95                if (this.Width >= this.alkuperainenKoko.X)
96                {
97                    liikkeenTila = Liikkeentila.Pysahtynyt;
98                }
99
100            }
101
102
103            // TODO: Add your update code here
104            base.Update(time);
105        }
106    }
107}
Note: See TracBrowser for help on using the repository browser.