Changeset 1606 for 2010


Ignore:
Timestamp:
2010-08-04 15:00:19 (9 years ago)
Author:
tekrjant
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/31/saolhaka/GuitarZero/Peli.cs

    r1587 r1606  
    88{ 
    99    const double kielenLeveys = 50.0; 
    10     double nuottienTippumisnopeus = 8.0; 
     10    double nuottienTippumisnopeus = 12.0; 
    1111 
    1212    List<Label> valikonKohdat; 
     
    1616    Image[] fretitPainettuna; 
    1717    Image[] fretitPainamattomina; 
     18    Image[] nuotitHopo; 
    1819    GameObject viivaus; 
     20    GameObject edellinenNuotti; 
    1921 
    2022    TimeSpan aloitusAika; 
    2123    Timer nuottienPudotusAjastin; 
    22     List<GameObject> nuotit; 
    23      
     24 
    2425    Queue<GameObject> kieli0 = new Queue<GameObject>(); 
    2526    Queue<GameObject> kieli1 = new Queue<GameObject>(); 
     
    2829    Queue<GameObject> kieli4 = new Queue<GameObject>(); 
    2930 
     31    double errorsade = 180; 
     32 
    3033    bool seuraavaOnHopo = false; 
    3134 
     
    3437    protected override void Begin() 
    3538    { 
     39        nuotitHopo = new Image[5]; 
     40        nuotitHopo[0] = LoadImage("greenhopo"); 
     41        nuotitHopo[1] = LoadImage("redhopo"); 
     42        nuotitHopo[2] = LoadImage("yellowhopo"); 
     43        nuotitHopo[3] = LoadImage("bluehopo"); 
     44        nuotitHopo[4] = LoadImage("orangehopo"); 
    3645        Valikko(); 
    3746    } 
     
    95104    void ValikossaLiikkuminen() 
    96105    { 
    97             if (valikonValittu == valikonKohdat[0]) 
    98             { 
    99                 // Todo: Voiko tekstin kokoa jotenkin muuttaa? 
    100                 valikonKohdat[1].TextColor = Color.Orange; 
    101                 valikonKohdat[0].TextColor = Color.White; 
    102                 valikonValittu = valikonKohdat[1]; 
    103                 viivaus.Destroy(); 
    104                 RaySegment alleviivaus = new RaySegment(new Vector(-35, -50), new Vector(70, 0), 1); 
    105                 viivaus = new GameObject(1, 1, alleviivaus); 
    106                 viivaus.Color = Color.Orange; 
    107                 Add(viivaus); 
    108                 return; 
    109             } 
    110             if (valikonValittu == valikonKohdat[1]) 
    111             { 
    112                 valikonKohdat[0].TextColor = Color.Orange; 
    113                 valikonKohdat[1].TextColor = Color.White; 
    114                 valikonValittu = valikonKohdat[0]; 
    115                 viivaus.Destroy(); 
    116                 RaySegment alleviivaus = new RaySegment(new Vector(-75, 30), new Vector(150, 0), 1); 
    117                 viivaus = new GameObject(1, 1, alleviivaus); 
    118                 viivaus.Color = Color.Orange; 
    119                 Add(viivaus); 
    120             } 
     106        if (valikonValittu == valikonKohdat[0]) 
     107        { 
     108            // Todo: Voiko tekstin kokoa jotenkin muuttaa? 
     109            valikonKohdat[1].TextColor = Color.Orange; 
     110            valikonKohdat[0].TextColor = Color.White; 
     111            valikonValittu = valikonKohdat[1]; 
     112            viivaus.Destroy(); 
     113            RaySegment alleviivaus = new RaySegment(new Vector(-35, -50), new Vector(70, 0), 1); 
     114            viivaus = new GameObject(1, 1, alleviivaus); 
     115            viivaus.Color = Color.Orange; 
     116            Add(viivaus); 
     117            return; 
     118        } 
     119        if (valikonValittu == valikonKohdat[1]) 
     120        { 
     121            valikonKohdat[0].TextColor = Color.Orange; 
     122            valikonKohdat[1].TextColor = Color.White; 
     123            valikonValittu = valikonKohdat[0]; 
     124            viivaus.Destroy(); 
     125            RaySegment alleviivaus = new RaySegment(new Vector(-75, 30), new Vector(150, 0), 1); 
     126            viivaus = new GameObject(1, 1, alleviivaus); 
     127            viivaus.Color = Color.Orange; 
     128            Add(viivaus); 
     129        } 
    121130    } 
    122131 
     
    140149        Add(pisteNaytto); 
    141150        PiirraKieletJaFretit(); 
    142         nuotit = new List<GameObject>(); 
    143151        LuoNuottienPudotusAjastin(); 
    144152    } 
     
    167175        Timer.SingleShot(aika, NuottienPudotusNopeudenAsettaminen); 
    168176    } 
    169      
     177 
    170178    void LuoSatunnainenNuotti(Timer ajastin) 
    171179    { 
     
    176184 
    177185        bool edellinenSamallaKielella = false; 
    178         if (nuotit.Count > 1) 
    179         { 
    180             edellinenSamallaKielella = (nuotti.X == nuotit[nuotit.Count - 1].X); 
     186        if (edellinenNuotti != null) 
     187        { 
     188            edellinenSamallaKielella = (nuotti.X == edellinenNuotti.X); 
    181189        } 
    182190 
    183191        if (seuraavaOnHopo && !edellinenSamallaKielella) 
    184192        { 
    185             switch (kieli) 
    186             { 
    187                 case 0: 
    188                     nuotti.Image = LoadImage("greenhopo"); 
    189                     break; 
    190                 case 1: 
    191                     nuotti.Image = LoadImage("redhopo"); 
    192                     break; 
    193                 case 2: 
    194                     nuotti.Image = LoadImage("yellowhopo"); 
    195                     break; 
    196                 case 3: 
    197                     nuotti.Image = LoadImage("bluehopo"); 
    198                     break; 
    199                 case 4: 
    200                     nuotti.Image = LoadImage("orangehopo"); 
    201                     break; 
    202             } 
    203  
     193            nuotti.Image = nuotitHopo[kieli]; 
    204194            seuraavaOnHopo = false; 
    205195        } 
     
    226216 
    227217        } 
    228  
    229         nuotit.Add(nuotti); 
     218        switch (kieli) 
     219        { 
     220            case 0: 
     221                kieli0.Enqueue(nuotti); 
     222                break; 
     223            case 1: 
     224                kieli1.Enqueue(nuotti); 
     225                break; 
     226            case 2: 
     227                kieli2.Enqueue(nuotti); 
     228                break; 
     229            case 3: 
     230                kieli3.Enqueue(nuotti); 
     231                break; 
     232            case 4: 
     233                kieli4.Enqueue(nuotti); 
     234                break; 
     235        } 
     236 
     237        edellinenNuotti = nuotti; 
    230238        Add(nuotti); 
    231239    } 
     
    298306        Keyboard.Listen(Key.F1, ButtonState.Down, Paina, null, 0, true); 
    299307        Keyboard.Listen(Key.F1, ButtonState.Released, Vapauta, null, 0, false); 
     308        Keyboard.Listen(Key.F1, ButtonState.Pressed, Hopo, null, 0); 
    300309        Keyboard.Listen(Key.F2, ButtonState.Down, Paina, null, 1, true); 
    301310        Keyboard.Listen(Key.F2, ButtonState.Released, Vapauta, null, 1, false); 
     311        Keyboard.Listen(Key.F2, ButtonState.Pressed, Hopo, null, 1); 
    302312        Keyboard.Listen(Key.F3, ButtonState.Down, Paina, null, 2, true); 
    303313        Keyboard.Listen(Key.F3, ButtonState.Released, Vapauta, null, 2, false); 
     314        Keyboard.Listen(Key.F3, ButtonState.Pressed, Hopo, null, 2); 
    304315        Keyboard.Listen(Key.F4, ButtonState.Down, Paina, null, 3, true); 
    305316        Keyboard.Listen(Key.F4, ButtonState.Released, Vapauta, null, 3, false); 
     317        Keyboard.Listen(Key.F4, ButtonState.Pressed, Hopo, null, 3); 
    306318        Keyboard.Listen(Key.F5, ButtonState.Down, Paina, null, 4, true); 
    307319        Keyboard.Listen(Key.F5, ButtonState.Released, Vapauta, null, 4, false); 
     320        Keyboard.Listen(Key.F5, ButtonState.Pressed, Hopo, null, 4); 
    308321 
    309322        Keyboard.Listen(Key.Enter, ButtonState.Pressed, SoitaNuotti, null); 
     
    316329    } 
    317330 
     331    void Hopo(int indeksi) 
     332    { 
     333        double alalaita = Screen.Bottom + 75 - (errorsade / 2); 
     334        double ylalaita = Screen.Bottom + 75 + (errorsade / 2); 
     335 
     336        if (indeksi == 0 && kieli0.Count != 0) 
     337        { 
     338            GameObject nuotti = kieli0.Peek(); 
     339            if (nuotti.Image == nuotitHopo[0] && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     340            { 
     341                nuotti.Destroy(); 
     342                kieli0.Dequeue(); 
     343                pisteLaskuri.Value += 50; 
     344            } 
     345        } 
     346        if (indeksi == 1 && kieli1.Count != 0) 
     347        { 
     348            GameObject nuotti = kieli1.Peek(); 
     349            if (nuotti.Image == nuotitHopo[1] && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     350            { 
     351                nuotti.Destroy(); 
     352                kieli1.Dequeue(); 
     353                pisteLaskuri.Value += 50; 
     354            } 
     355        } 
     356        if (indeksi == 2 && kieli2.Count != 0) 
     357        { 
     358            GameObject nuotti = kieli2.Peek(); 
     359            if (nuotti.Image == nuotitHopo[2] && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     360            { 
     361                nuotti.Destroy(); 
     362                kieli2.Dequeue(); 
     363                pisteLaskuri.Value += 50; 
     364            } 
     365        } 
     366        if (indeksi == 3 && kieli3.Count != 0) 
     367        { 
     368            GameObject nuotti = kieli3.Peek(); 
     369            if (nuotti.Image == nuotitHopo[3] && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     370            { 
     371                nuotti.Destroy(); 
     372                kieli3.Dequeue(); 
     373                pisteLaskuri.Value += 50; 
     374            } 
     375        } 
     376        if (indeksi == 4 && kieli4.Count != 0) 
     377        { 
     378            GameObject nuotti = kieli4.Peek(); 
     379            if (nuotti.Image == nuotitHopo[4] && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     380            { 
     381                nuotti.Destroy(); 
     382                kieli4.Dequeue(); 
     383                pisteLaskuri.Value += 50; 
     384            } 
     385        } 
     386    } 
     387 
    318388    void SoitaNuotti() 
    319389    { 
    320         //nuotit[indeksi].Destroy(); 
     390        double alalaita = Screen.Bottom + 75 - (errorsade / 2); 
     391        double ylalaita = Screen.Bottom + 75 + (errorsade / 2); 
     392 
     393        if (onkoPainettu[0]) 
     394        { 
     395 
     396            if (kieli0.Count != 0) 
     397            { 
     398                GameObject nuotti = kieli0.Peek(); 
     399                if (nuotti != null && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     400                { 
     401                    nuotti.Destroy(); 
     402                    kieli0.Dequeue(); 
     403                    pisteLaskuri.Value += 50; 
     404                } 
     405            } 
     406        } 
     407 
     408 
     409        if (onkoPainettu[1]) 
     410        { 
     411            if (kieli1.Count != 0) 
     412            { 
     413                GameObject nuotti = kieli1.Peek(); 
     414                if (nuotti != null && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     415                { 
     416                    nuotti.Destroy(); 
     417                    kieli1.Dequeue(); 
     418                    pisteLaskuri.Value += 50; 
     419                } 
     420            } 
     421 
     422        } 
     423        if (onkoPainettu[2]) 
     424        { 
     425            if (kieli2.Count != 0) 
     426            { 
     427                GameObject nuotti = kieli2.Peek(); 
     428                if (nuotti != null && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     429                { 
     430                    nuotti.Destroy(); 
     431                    kieli2.Dequeue(); 
     432                    pisteLaskuri.Value += 50; 
     433                } 
     434            } 
     435 
     436        } 
     437        if (onkoPainettu[3]) 
     438        { 
     439            if (kieli3.Count != 0) 
     440            { 
     441                GameObject nuotti = kieli3.Peek(); 
     442                if (nuotti != null && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     443                { 
     444                    nuotti.Destroy(); 
     445                    kieli3.Dequeue(); 
     446                    pisteLaskuri.Value += 50; 
     447                } 
     448            } 
     449 
     450        } 
     451        if (onkoPainettu[4]) 
     452        { 
     453            if (kieli4.Count != 0) 
     454            { 
     455                GameObject nuotti = kieli4.Peek(); 
     456                if (nuotti != null && nuotti.Y < ylalaita && nuotti.Y > alalaita) 
     457                { 
     458                    nuotti.Destroy(); 
     459                    kieli4.Dequeue(); 
     460                    pisteLaskuri.Value += 50; 
     461 
     462                } 
     463            } 
     464 
     465        } 
    321466    } 
    322467 
     
    355500    protected override void Update(Time time) 
    356501    { 
    357         if (nuotit != null && nuotit.Count > 0) 
    358         { 
    359             foreach (GameObject nuotti in nuotit) 
    360             { 
    361                 nuotti.Y -= 1 * nuottienTippumisnopeus; 
    362             } 
    363         } 
     502        foreach (GameObject nuotti in kieli0) 
     503        { 
     504            nuotti.Y -= 1 * nuottienTippumisnopeus; 
     505        } 
     506        foreach (GameObject nuotti in kieli1) 
     507        { 
     508            nuotti.Y -= 1 * nuottienTippumisnopeus; 
     509        } 
     510        foreach (GameObject nuotti in kieli2) 
     511        { 
     512            nuotti.Y -= 1 * nuottienTippumisnopeus; 
     513        } 
     514        foreach (GameObject nuotti in kieli3) 
     515        { 
     516            nuotti.Y -= 1 * nuottienTippumisnopeus; 
     517        } 
     518        foreach (GameObject nuotti in kieli4) 
     519        { 
     520            nuotti.Y -= 1 * nuottienTippumisnopeus; 
     521        } 
     522 
     523        if (kieli0.Count != 0) 
     524        { 
     525            GameObject nuotti = kieli0.Peek(); 
     526            if (nuotti.Y < Screen.Bottom - 50) 
     527            { 
     528                kieli0.Dequeue(); 
     529            } 
     530 
     531        } 
     532        if (kieli1.Count != 0) 
     533        { 
     534            GameObject nuotti = kieli1.Peek(); 
     535            if (nuotti.Y < Screen.Bottom - 50) 
     536            { 
     537                kieli1.Dequeue(); 
     538            } 
     539 
     540        } 
     541        if (kieli2.Count != 0) 
     542        { 
     543            GameObject nuotti = kieli2.Peek(); 
     544            if (nuotti.Y < Screen.Bottom - 50) 
     545            { 
     546                kieli2.Dequeue(); 
     547            } 
     548 
     549        } 
     550        if (kieli3.Count != 0) 
     551        { 
     552            GameObject nuotti = kieli3.Peek(); 
     553            if (nuotti.Y < Screen.Bottom - 50) 
     554            { 
     555                kieli3.Dequeue(); 
     556            } 
     557 
     558        } 
     559        if (kieli4.Count != 0) 
     560        { 
     561            GameObject nuotti = kieli4.Peek(); 
     562            if (nuotti.Y < Screen.Bottom - 50) 
     563            { 
     564                kieli4.Dequeue(); 
     565            } 
     566 
     567        } 
     568 
     569 
    364570        base.Update(time); 
    365571    } 
Note: See TracChangeset for help on using the changeset viewer.