source: 2010/27/anlakane/Peli.cs @ 1205

Revision 1205, 2.9 KB checked in by anlakane, 10 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Widgets;
5using Jypeli.Assets;
6
7public class Peli : Game
8{
9    List<GameObject> painikkeet;
10    const double painikkeenLeveys = 100;
11    const double painikkeenKorkeus = painikkeenLeveys;
12    Timer painikkeidenSytytin;
13
14    protected override void Begin()
15    {
16        painikkeet = new List<GameObject>();
17
18        LisaaNappaimet();
19        LisaaPainikkeet();
20        AloitaPeli();
21
22    }
23
24    void LisaaPainikkeet()
25    {
26        for (int i = 0; i < 8; i++)
27        {
28            Add(LuoPainike());
29        }
30
31    }
32
33    GameObject LuoPainike()
34    {
35        GameObject painike = new GameObject(painikkeenLeveys, painikkeenKorkeus);
36        painike.Color = RandomGen.NextColor();
37        byte r = painike.Color.RedComponent;
38        byte g = painike.Color.GreenComponent;
39        byte b = painike.Color.BlueComponent;
40        r = (byte)((double)r / 2);
41        g = (byte)((double)g / 2);
42        b = (byte)((double)b / 2);
43        painike.Color = new Color(r, g, b);
44
45        painikkeet.Add(painike);
46        painike.X = -(4 * (painikkeenLeveys + 20)) + ((painikkeet.Count) * (painikkeenLeveys + 20)) - 60;
47        return painike;
48    }
49
50    void LisaaNappaimet()
51    {
52
53    }
54
55    void AloitaPeli()
56    {
57        painikkeidenSytytin = new Timer();
58        painikkeidenSytytin.Interval = 1;
59        painikkeidenSytytin.Trigger += SytytaPainike;
60        Add(painikkeidenSytytin);
61        painikkeidenSytytin.Start();
62    }
63
64    void SytytaPainike(Timer t)
65    {
66        int sytytettavanIndeksi = RandomGen.NextInt(0, painikkeet.Count-1);
67        Color alkuperainenVari = painikkeet[sytytettavanIndeksi].Color;
68        List<double> varit = new List<double>();       
69        double r = alkuperainenVari.RedComponent;
70        double g = alkuperainenVari.GreenComponent;
71        double b = alkuperainenVari.BlueComponent;
72        r *= 4; varit.Add(r);
73        g *= 4; varit.Add(g);
74        b *= 4; varit.Add(b);
75        for (int i = 0; i < varit.Count; i++)
76        {
77            if (varit[i] >= 255)
78            {
79                varit[i] = 255;
80            }
81        }
82
83        r = (byte)varit[0]; g = (byte)varit[1]; b = (byte)varit[2];
84
85        MessageDisplay.Add(
86            alkuperainenVari.RedComponent.ToString() + " " + 
87            alkuperainenVari.GreenComponent.ToString() + " " + 
88            alkuperainenVari.BlueComponent.ToString() + " -> " + 
89            r.ToString() + " " + 
90            g.ToString() + " " + 
91            b.ToString());
92        painikkeet[sytytettavanIndeksi].Color = new Color((byte)r, (byte)g, (byte)b);
93
94        Timer.SingleShot(t.Interval / 1.2, delegate() { Sammuta(alkuperainenVari, sytytettavanIndeksi); });
95    }
96
97    void Sammuta(Color vari, int i)
98    {
99        painikkeet[i].Color = vari;
100    }
101
102}
Note: See TracBrowser for help on using the repository browser.