Changeset 1482 for 2010/23/hniemi/JyTris


Ignore:
Timestamp:
2010-07-31 01:07:40 (13 years ago)
Author:
hniemi
Message:

Tiedostoja karsittu, toteutusta yksinkertaistettu.
Lisätty intro, ja mahdollisuus lopettaa peli kesken ja aloittaa alusta. (Escape ja F2)

Location:
2010/23/hniemi/JyTris/JyTris
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/hniemi/JyTris/JyTris/JyTris.csproj

    r1480 r1482  
    8383  </ItemGroup> 
    8484  <ItemGroup> 
    85     <Compile Include="J.cs" /> 
    86     <Compile Include="L.cs" /> 
    87     <Compile Include="Pitka.cs" /> 
    8885    <Compile Include="Properties\AssemblyInfo.cs" /> 
    8986    <Compile Include="Ohjelma.cs" /> 
    9087    <Compile Include="Peli.cs" /> 
    91     <Compile Include="ITetrispalikka.cs" /> 
     88    <Compile Include="TetrisPalikka.cs" /> 
    9289  </ItemGroup> 
    9390  <ItemGroup> 
  • 2010/23/hniemi/JyTris/JyTris/Peli.cs

    r1480 r1482  
    66namespace JyTris 
    77{ 
    8  
    98    /// <summary> 
    10     /// JyTris 
     9    /// JyTris 0.1 
    1110    ///  
    1211    /// Peli on tetrisklooni, joka on tarkoituksena toteuttaa JyPelillä 
     
    1514    /// Seuraavana tulossa: 
    1615    /// - Lisääntyvät pisteet 
    17     /// - Loput palikat 
     16    /// - Kuvat palikoille 
    1817    /// </summary> 
    1918    public class Peli : Game 
     
    2423 
    2524        GameObject[][] pelikentta; 
    26         ITetrispalikka aktiivinenPalikka; 
     25        TetrisPalikka aktiivinenPalikka; 
    2726 
    2827        Timer tiputusajastin; 
    29         double vaikeusaste = 0.2; 
     28        double vaikeusaste = 0.9 ; 
    3029 
    3130        IntMeter pisteet = new IntMeter(0); 
    3231        Label pistenaytto; 
    3332 
     33        /* 
     34         * Introon tarvittavat muuttujat 
     35         */ 
     36        Timer introajastin; 
     37        private int indeksi = 0; 
     38        private int suunta = 1; 
     39        private int vaihtoCounter = 0; 
     40 
     41        /// <summary> 
     42        /// Tekee pelin alkuvalmistelut 
     43        /// </summary> 
    3444        protected override void Begin() 
    3545        { 
    3646            LuoPelikentta(); 
     47            AlkuIntro(); 
     48            AsetaMenuNappaimet(); 
    3749            //LuoHud(); 
    38             AsetaNappaimet(); 
    39             KaynnistaPeli(); 
     50            //AsetaPeliNappaimet(); 
     51            //KaynnistaPeli(); 
     52        } 
     53 
     54        /// <summary> 
     55        /// Käynnistää alkuintron 
     56        /// </summary> 
     57        void AlkuIntro() 
     58        { 
     59            introajastin = new Timer(); 
     60            introajastin.Interval = 0.05; 
     61            introajastin.Trigger += IntroPyoritys; 
     62            introajastin.Start(); 
     63        } 
     64 
     65        /// <summary> 
     66        /// Pyörittää introa 
     67        /// </summary> 
     68        /// <param name="ajastin">Ei käytössä</param> 
     69        void IntroPyoritys(Timer ajastin) 
     70        { 
     71            TuhoaRivi(korkeus-1); 
     72 
     73            Color randomvari = RandomGen.NextColor(); 
     74 
     75            for (int i = 0; i < pelikentta[0].Length; i++) 
     76            { 
     77                pelikentta[0][i].Color = randomvari; 
     78            } 
     79            pelikentta[0][indeksi].Color = Color.Brown; 
     80            indeksi += suunta; 
     81            vaihtoCounter++; 
     82            if (indeksi > leveys-1 && suunta > 0) 
     83            { 
     84                indeksi = 0; 
     85            } 
     86            if (indeksi < 0 && suunta < 0) 
     87            { 
     88                indeksi = leveys - 1; 
     89            } 
     90            if (vaihtoCounter > 50) 
     91            { 
     92                vaihtoCounter = 0; 
     93                suunta = -suunta; 
     94            } 
    4095        } 
    4196 
     
    4499        ///  
    45100        /// Luo ensimmäisen palikan ja tekee ajastimen. 
     101        /// Tuhoaa myös kaikki valmiina olevat palikat. 
     102        ///  
     103        /// Poistaa asetetut kontrollit ja asettaa pelikontrollit. 
     104        ///  
     105        /// Resetoi vaikeusasteen! 
    46106        /// </summary> 
    47107        void KaynnistaPeli() 
    48108        { 
    49             LuoPalikka(); 
    50  
     109            introajastin.Stop(); 
     110            TuhoaKaikki(); 
     111            ClearControls(); 
     112            AsetaPeliNappaimet(); 
     113 
     114            vaikeusaste = 0.9; 
    51115            tiputusajastin = new Timer(); 
    52116            tiputusajastin.Interval = vaikeusaste; 
    53117            tiputusajastin.Trigger += Laske; 
    54118            tiputusajastin.Start(); 
     119            LuoPalikka(); 
    55120        } 
    56121 
     
    158223 
    159224        /// <summary> 
    160         /// Asettaa näppäimet. 
    161         /// </summary> 
    162         void AsetaNappaimet() 
     225        /// Asettaa pelin aikana tarvittavat näppäimet. 
     226        /// </summary> 
     227        void AsetaPeliNappaimet() 
    163228        { 
    164229            Vector vasemmalle = new Vector(-1, 0); 
     
    166231            Vector alas = new Vector(0, 1); 
    167232 
     233            Keyboard.Listen(Key.Escape, ButtonState.Pressed, PeliLoppui, "Keskeyttää pelin"); 
    168234            Keyboard.Listen(Key.Left, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa vasemmalle", vasemmalle); 
    169235            Keyboard.Listen(Key.Right, ButtonState.Pressed, Liikuta, "Liikuttaa palikkaa oikealle", oikealle); 
     
    174240 
    175241        /// <summary> 
     242        /// Asettaa menuissa käytettävät näppäimet 
     243        /// </summary> 
     244        void AsetaMenuNappaimet() 
     245        { 
     246            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistuu pelistä"); 
     247            Keyboard.Listen(Key.F2, ButtonState.Pressed, KaynnistaPeli, "Aloittaa uuden pelin"); 
     248        } 
     249 
     250        /// <summary> 
    176251        /// Liikuttaa palikkaa halutun verran. 
    177252        /// </summary> 
     
    221296            PaivitaPalikka(aktiivinenPalikka, Color.TransparentWhite); 
    222297 
     298            tiputusajastin.Reset(); 
    223299            if (!VoikoSiirtaa(new Vector(0,1), aktiivinenPalikka)) 
    224300            { 
     
    238314        void Tiputa() 
    239315        { 
    240             ITetrispalikka palikka = aktiivinenPalikka; 
     316            TetrisPalikka palikka = aktiivinenPalikka; 
    241317            while (aktiivinenPalikka == palikka) Laske(tiputusajastin); 
    242318        } 
    243319 
    244         bool VoikoSiirtaa(Vector[] siirrot, ITetrispalikka palikka) 
     320        /// <summary> 
     321        /// Tarkistaa, voiko palikalle suorittaa annetut siirrot 
     322        ///  
     323        /// Annetut siirrot siis lisätään niitä vastaaviin palikan 
     324        /// sijainteihin. 
     325        /// </summary> 
     326        /// <param name="siirrot">X- ja Y-arvot oltava kokonaislukuja</param> 
     327        /// <param name="palikka">Palikka, jonka suhteen tarkistetaan</param> 
     328        /// <returns>true, jos palikan siirtäminen on mahdollista</returns> 
     329        bool VoikoSiirtaa(Vector[] siirrot, TetrisPalikka palikka) 
    245330        { 
    246331            Vector[] sijainnit = palikka.Sijainti(); 
     
    253338        } 
    254339 
    255         bool VoikoSiirtaa(Vector siirto, ITetrispalikka palikka) 
     340        /// <summary> 
     341        /// Tarkistaa voiko kaikkia palikan osia siirtää annetun 
     342        /// vektorin verran 
     343        /// </summary> 
     344        /// <param name="siirto">X- ja Y-arvo oltava kokonaislukuja</param> 
     345        /// <param name="palikka">Palikka, jonka suhteen tarkistetaan</param> 
     346        /// <returns>true, jos siirto on mahdollinen</returns> 
     347        bool VoikoSiirtaa(Vector siirto, TetrisPalikka palikka) 
    256348        { 
    257349            Vector[] siirrot = new Vector[4]; 
     
    284376        /// <param name="palikka">Tämän sijainti väritetään</param> 
    285377        /// <param name="vari">Väri, jolla väritetään</param> 
    286         void PaivitaPalikka(ITetrispalikka palikka, Color vari) 
     378        void PaivitaPalikka(TetrisPalikka palikka, Color vari) 
    287379        { 
    288380            Vector[] sijainnit = palikka.Sijainti(); 
     
    301393        void LuoPalikka() 
    302394        { 
    303             //aktiivinenPalikka = new Pitka(leveys / 2); 
    304             //aktiivinenPalikka = new L(leveys / 2); 
    305             aktiivinenPalikka = new J(leveys / 2); 
     395            aktiivinenPalikka = new TetrisPalikka(leveys / 2); 
     396            tiputusajastin.Reset(); 
     397 
     398            Vector[] sijainnit = aktiivinenPalikka.Sijainti(); 
     399            for (int i = 0; i < sijainnit.Length; i++) 
     400            { 
     401                if (!OnkoTyhja(sijainnit[i])) 
     402                { 
     403                    PeliLoppui(); 
     404                    return; 
     405                } 
     406            } 
     407 
    306408            PaivitaPalikka(aktiivinenPalikka, aktiivinenPalikka.Vari()); 
     409        } 
     410 
     411        /// <summary> 
     412        /// Lopettaa pelin. 
     413        /// - Palikkoja ei tipu 
     414        /// - Poistaa vanhat kontrollit 
     415        /// - Asettaa menunapit toimintaan 
     416        /// </summary> 
     417        void PeliLoppui() 
     418        { 
     419            tiputusajastin.Stop(); 
     420            ClearControls(); 
     421            AsetaMenuNappaimet(); 
    307422        } 
    308423 
Note: See TracChangeset for help on using the changeset viewer.