source: 2013/30/ViljamiV/PerusPeli4/PerusPeli4/PerusPeli4/PerusPeli4.cs @ 5595

Revision 5595, 5.0 KB checked in by vilmikvi, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class PerusPeli4 : Game
10{
11    Image shrek = LoadImage("shrek");
12    Image talo = LoadImage("talo");
13    Image talo2 = LoadImage("talo+lamppu");
14    Image talo3 = LoadImage("talo+shrek");
15    Image aloitus = LoadImage("sreks guest");
16
17    SoundEffect ovi = LoadSoundEffect("oviaani");
18    EasyHighScore topLista = new EasyHighScore();
19
20    SoundEffect havisit = LoadSoundEffect("havisitaani");
21
22    List<int> listaVaaristaOvista = new List<int>();
23
24    int kenttaNro = 50;
25
26    IntMeter pisteLaskuri;
27
28    public override void Begin()
29    {
30        for (int i = 0; i < kenttaNro; i++)
31        {
32            listaVaaristaOvista.Add(RandomGen.NextInt(1, 4));
33           
34        }
35
36        ////////////////////////////////////////////////////////////////////////////////////////////////////////SetWindowSize(1024, 768);
37        // Kirjoita ohjelmakoodisi tähän
38        LuoAlkuvalikko();
39       
40    }
41
42
43 
44  void LuoAlkuvalikko()
45    {
46        IsMouseVisible = true;
47        MediaPlayer.Play("mouthi");
48
49        MediaPlayer.Volume = 0.5;
50        MediaPlayer.IsRepeating = true;
51        Level.Background.Image = aloitus;
52        Level.Background.ScaleToLevel();
53        Level.Background.Color = Color.Black;
54        Timer.SingleShot(2, delegate
55        {
56            MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta");
57            Add(alkuValikko);
58            alkuValikko.AddItemHandler(0, AloitaPeli);
59            alkuValikko.AddItemHandler(1, ParhaatPisteet);
60            alkuValikko.AddItemHandler(2, Exit);
61        });
62    }
63
64
65    public void AloitaPeli(Window sender)
66    {
67        LuoAlkuvalikko();
68    }
69
70
71    void AloitaPeli()
72    {
73        ClearAll();
74
75       
76
77        MediaPlayer.Play("musikki");
78        LuoPistelaskuri();
79
80        Level.Size = Screen.Size;
81       
82        Level.Background.Image = RandomGen.SelectOne(talo, talo2, talo3);
83        Level.Background.ScaleToLevel();
84        Level.Background.Color = Color.Black;
85
86        GameObject ovi = LuoOvi(6.0);
87        GameObject ovi2 = LuoOvi(35.0);
88        GameObject ovi3 = LuoOvi(-8.0);
89
90        Mouse.ListenOn(ovi, MouseButton.Left, ButtonState.Pressed, delegate(GameObject o) { OviValittu(1); }, null, ovi);
91        Mouse.ListenOn(ovi2, MouseButton.Left, ButtonState.Pressed, delegate(GameObject o) { OviValittu(2); }, null, ovi);
92        Mouse.ListenOn(ovi3, MouseButton.Left, ButtonState.Pressed, delegate(GameObject o) { OviValittu(3); }, null, ovi);
93
94
95        Keyboard.Listen(Key.Escape, ButtonState.Pressed, shrexit, "Lopeta peli");
96    }
97
98
99    GameObject LuoOvi(double jakaja)
100    {
101        GameObject ovi = new GameObject(Window.ClientBounds.Width / 9.0, Window.ClientBounds.Height / 5.0);
102        ovi.X = -Window.ClientBounds.Width / jakaja;
103        ovi.Y = -50;
104        ovi.IsVisible = false;
105        Add(ovi);
106        return ovi;
107    }
108
109
110    void ParhaatPisteet()
111    {
112        topLista.Show();
113    }
114
115
116    void LuoPistelaskuri()
117    {
118        pisteLaskuri = new IntMeter(0);
119
120        Label pisteNaytto = new Label();
121        pisteNaytto.X = Screen.Left + 100;
122        pisteNaytto.Y = Screen.Top - 100;
123        pisteNaytto.TextColor = Color.Black;
124        pisteNaytto.Color = Color.White;
125        pisteNaytto.Title = "Huone";
126
127        pisteNaytto.BindTo(pisteLaskuri);
128        Add(pisteNaytto);
129    }
130
131
132    void OviValittu(int numero)
133    {
134        if (listaVaaristaOvista[pisteLaskuri.Value].Equals(numero))
135        {
136            havisit.Play();
137
138            GameObject shreks = new GameObject(Screen.Width, Screen.Height);
139            shreks.Image = shrek;
140            Add(shreks, 3);
141
142            Timer.SingleShot(3, delegate
143            {
144                topLista.EnterAndShow(pisteLaskuri.Value);
145                topLista.HighScoreWindow.Closed += PeliLoppui;
146            });
147        }
148        else
149        {
150            ovi.Play(0.8, 0.0, 0.0);
151            pisteLaskuri.Value++;
152
153            //MultiSelectWindow valikko = new MultiSelectWindow("Pääsit seuraavaan huoneeseen.", "Jatka");
154            //Add(valikko);
155            Level.Background.Image = RandomGen.SelectOne(talo, talo2, talo3);
156            Level.Background.ScaleToLevel();
157        }
158    }
159
160
161    void PeliLoppui(Window sender)
162    {
163        shrexit();
164    }
165
166
167    void shrexit()
168    {
169        ClearAll();
170
171        MultiSelectWindow exitwd = new MultiSelectWindow("Do you want to shrexit?", "Shrek", "Drek");
172        exitwd.ItemSelected += shrelect;
173        Add(exitwd);
174    }
175
176
177    void shrelect(int selection)
178    {
179        switch (selection)
180        {
181            case 0:
182
183                Exit();
184                break;
185
186            case 1:
187                AloitaPeli();
188                break;
189        }
190    }
191
192}
Note: See TracBrowser for help on using the repository browser.