Changeset 1485 for 2010/23


Ignore:
Timestamp:
2010-07-31 11:46:02 (13 years ago)
Author:
hniemi
Message:

Profetiallinen ennustusnäyttö lisätty.

Location:
2010/23/hniemi/JyTris/JyTris
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/hniemi/JyTris/JyTris/Peli.cs

    r1484 r1485  
    1414    /// Seuraavana tulossa: 
    1515    /// - Kuvat palikoille 
     16    /// - Ruutu jossa näkyy seuraava palikka 
    1617    /// - Lisääntyvä vaikeusaste 
     18    /// - Efektit palikkojen tuhoutumiseen 
    1719    /// </summary> 
    1820    public class Peli : Game 
     
    2325 
    2426        GameObject[][] pelikentta; 
     27        GameObject[][] ennustuskentta; 
    2528        TetrisPalikka aktiivinenPalikka; 
     29        TetrisPalikka ennustusPalikka; 
    2630 
    2731        Timer tiputusajastin; 
     
    197201            pistenaytto.Position = new Vector(Screen.RightSafe - 100, Screen.TopSafe - 100); 
    198202            Add(pistenaytto); 
     203 
     204            /* 
     205             * Koska ennustuskenttä on kaksiulotteinen taulukko, joudumme luomaan 
     206             * ensiksi taulukon sarakkeet, jotta voimme luoda rivit. 
     207             */ 
     208            ennustuskentta = new GameObject[4][]; 
     209            for (int i = 0; i < ennustuskentta.Length; i++) 
     210            { 
     211                ennustuskentta[i] = new GameObject[4]; 
     212            } 
     213 
     214            //Tässä luodaan pelikentän "laatiko" ja sijoitetaan ne oikeille kohdilleen. 
     215            for (int i = 0; i < ennustuskentta.Length; i++) 
     216            { 
     217                for (int j = 0; j < ennustuskentta[i].Length; j++) 
     218                { 
     219                    ennustuskentta[i][j] = new GameObject(palikkojenSivu, palikkojenSivu, Shapes.Rectangle); 
     220                    ennustuskentta[i][j].Color = Color.TransparentWhite; 
     221                    ennustuskentta[i][j].X = Level.Right + 100 + (palikkojenSivu / 2) + j * (palikkojenSivu); 
     222                    ennustuskentta[i][j].Y = Screen.TopSafe -200 - (palikkojenSivu / 2) - i * (palikkojenSivu); 
     223                    Add(ennustuskentta[i][j]); 
     224                } 
     225            } 
    199226        } 
    200227 
     
    233260        } 
    234261 
     262         
     263 
    235264        /// <summary> 
    236265        /// Asettaa pelin aikana tarvittavat näppäimet. 
     
    404433        void LuoPalikka() 
    405434        { 
    406             aktiivinenPalikka = new TetrisPalikka(leveys / 2); 
     435            //Luo uuden palikan ja siirtää ennustuspalikan aktiiviseksi 
     436            //ennustusPalikka = new TetrisPalikka(leveys / 2); 
     437            if (aktiivinenPalikka != null) 
     438            { 
     439                aktiivinenPalikka = ennustusPalikka; 
     440            } 
     441            else  
     442            {  
     443                aktiivinenPalikka = new TetrisPalikka(leveys / 2);  
     444            } 
     445 
     446            ennustusPalikka = new TetrisPalikka(leveys / 2); 
     447 
     448            AsetaEnnustusnaytto(ennustusPalikka); 
     449 
    407450            tiputusajastin.Reset(); 
    408451 
     
    418461 
    419462            PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 
     463        } 
     464 
     465        void AsetaEnnustusnaytto(TetrisPalikka palikka) 
     466        { 
     467            for (int i = 0; i < ennustuskentta.Length; i++) 
     468            { 
     469                for (int j = 0; j < ennustuskentta[i].Length; j++) 
     470                { 
     471                    ennustuskentta[i][j].Color = Color.TransparentWhite; 
     472                } 
     473            } 
     474 
     475            Vector[] sijainnit = palikka.Sijainti(); 
     476            int offset = -(leveys / 2) + 1; 
     477 
     478            foreach (Vector paikka in sijainnit) 
     479            { 
     480                ennustuskentta[(int)paikka.X + offset][(int)paikka.Y].Color = palikka.Vari(); 
     481            } 
    420482        } 
    421483 
Note: See TracChangeset for help on using the changeset viewer.