source: 2011/26/JuhoK/SFN/SFN/SFN/Peli.cs @ 2316

Revision 2316, 11.0 KB checked in by jumakall, 8 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
9namespace SFN
10{
11    public class Peli : PhysicsGame
12    {
13        List<Auto> autot = new List<Auto>();
14        List<Image> kuvat = new List<Image>();
15        int ID = 0, max_taso = 20;
16        double raha = 5000;
17
18        Image MenuBackround = LoadImage("MenuBackround");
19        Image kuva = LoadImage("Blues\\Perus1");
20        Label number, malli, moottori, renkaat, moottorin_hinta, renkaiden_hinta, sell_price, rahat;
21        string ChangeColor;
22
23        public override void Begin()
24        {
25
26            for (int i = 0; i < 4; i += 1)
27            {
28                kuvat.Add(LoadImage("Blues\\Car" + (i + 1)));
29                kuvat.Add(LoadImage("Greens\\Car" + (i + 1)));
30                kuvat.Add(LoadImage("Reds\\Car" + (i + 1)));
31                kuvat.Add(LoadImage("Whites\\Car" + (i + 1)));
32                kuvat.Add(LoadImage("Yellows\\Car" + (i + 1)));
33            }
34
35            autot.Add(new Auto("Model1", 1, 4, 5));
36            autot.Add(new Auto("Model3", 3, 9, 1));
37            autot.Add(new Auto("Model2", 2, 9, 3));
38            Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, null);
39            Mouse.IsCursorVisible = true;
40            CreateMenu();
41        }
42
43        void CreateMenu()
44        {
45            //Set menu backround
46            Level.Background.Image = MenuBackround;
47
48            //Quit game button
49            PushButton quit_game = new PushButton("Quit game");
50            quit_game.Clicked += new Action(quit_game_Clicked);
51            quit_game.Position = new Vector(380.0, -50.0);
52            Add(quit_game);
53
54            //Load game button
55            PushButton load_game = new PushButton("Load game");
56            //load_game.Clicked += new Action(load_game_Clicked);
57            load_game.Clicked += new Action(GoToShop);
58            load_game.Position = new Vector(200.0, -50.0);
59            Add(load_game);
60
61            //New game button
62            PushButton new_game = new PushButton("New game");
63            new_game.Clicked += new Action(new_game_Clicked);
64            new_game.Position = new Vector(20.0, -50.0);
65            Add(new_game);
66        }
67
68        void new_game_Clicked()
69        {
70            MessageDisplay.Add("Can't start new game. Game engine not availible.");
71        }
72
73        void load_game_Clicked()
74        {
75            MessageDisplay.Add("Can't load game. Game save system not availible.");
76        }
77
78        void quit_game_Clicked()
79        {
80            Exit();
81        }
82
83        void GoToShop()
84        {
85            ClearAll();
86            Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, null);
87            Camera.ZoomToLevel();
88            Level.BackgroundColor = Color.LightGray;
89
90            Label ylapalkki = new Label(Screen.Width, Screen.Height / 15);
91            ylapalkki.Color = Color.White;
92            ylapalkki.X = 0;
93            ylapalkki.Y = Screen.Top - (ylapalkki.Height / 2);
94            Add(ylapalkki);
95
96            Label alapalkki = new Label(Screen.Width, Screen.Height / 4);
97            alapalkki.Color = Color.White;
98            alapalkki.Position = new Vector(0, Screen.Bottom + (alapalkki.Height / 2));
99            Add(alapalkki);
100
101            Label oikeareuna = new Label(Screen.Width / 6, Screen.Height);
102            oikeareuna.Color = Color.White;
103            oikeareuna.Position = new Vector(Screen.Right - oikeareuna.Width / 2, 0);
104            Add(oikeareuna);
105
106
107            //Next
108            PushButton nextid = new PushButton("-->");
109            nextid.Position = new Vector(Screen.Right * 0.9, ylapalkki.Y); //Level.Right + 80, Level.Top + 60
110            nextid.Clicked += new Action(nextid_Clicked);
111            Add(nextid);
112
113            //Previous
114            PushButton previousid = new PushButton("<--");
115            previousid.Position = new Vector(Screen.Right * 0.65, ylapalkki.Y); //Level.Right - 80, Level.Top + 60
116            previousid.Clicked += new Action(previousid_Clicked);
117            Add(previousid);
118
119            PushButton update_engine = new PushButton("Update engine");
120            update_engine.Position = new Vector(oikeareuna.X, Screen.Top * 0.75);
121            update_engine.Clicked += new Action(update_engine_Clicked);
122            Add(update_engine);
123
124            PushButton update_tiers = new PushButton("Update tiers");
125            update_tiers.Position = new Vector(oikeareuna.X, Screen.Top * 0.52);
126            update_tiers.Clicked += new Action(update_tiers_Clicked);
127            Add(update_tiers);
128
129            PushButton drive = new PushButton("Leave safehouse");
130            drive.Position = new Vector(oikeareuna.X, Screen.Bottom * 0.4); 
131            Add(drive);
132
133            PushButton sell = new PushButton("Sell car");
134            sell.Position = new Vector(oikeareuna.X, Screen.Bottom * 0.2);
135            sell.Clicked += new Action(sell_Clicked);
136            Add(sell);
137
138            //Number
139            number = new Label((ID+1).ToString()+"/"+autot.Count.ToString());
140            number.Position = new Vector(Screen.Right * 0.78, ylapalkki.Y); //Level.Right, Level.Top + 60
141            Add(number);
142
143            malli = new Label(autot[ID].korinnimi.ToString());
144            malli.Position = new Vector(Screen.Left * 0.9, ylapalkki.Y); //Level.Left, Level.Top + 60
145            Add(malli);
146
147            moottori = new Label("Engine: " + autot[ID].moottori.ToString());
148            moottori.Position = new Vector(Screen.Left * 0.5, ylapalkki.Y); //Level.Left + 250, Level.Top * 1.2
149            Add(moottori);
150
151            rahat = new Label("Money: "+raha.ToString());
152            rahat.Position = new Vector(oikeareuna.X, 0);
153            Add(rahat);
154
155            double hinta =(10000 + (autot[ID].kori * 100) * 0.75) + ((autot[ID].moottori * 100) / 2) + ((autot[ID].renkaat * 100) / 2);
156            sell_price = new Label("Sell price: " + hinta);
157            sell_price.Position = new Vector(oikeareuna.X, Screen.Bottom * 0.28);
158            Add(sell_price);
159           
160
161            renkaat = new Label("Tiers: "+autot[ID].renkaat.ToString());
162            renkaat.Position = new Vector(Screen.Left * 0.05, ylapalkki.Y);
163            //renkaat.Y = ylapalkki.Y;
164            //ylapalkki.Y = 200 - ylapalkki.Height/2;
165            //renkaat.Position = //new Vector(ylapalkki.X, ylapalkki.Y); //Level.Left + 500, Level.Top + 60
166            Add(renkaat);
167
168            moottorin_hinta = new Label("Price: " + (autot[ID].moottori * 100).ToString());
169            moottorin_hinta.Position = new Vector(oikeareuna.X, Screen.Top * 0.65);
170            Add(moottorin_hinta);
171
172            renkaiden_hinta = new Label("Price: " + (autot[ID].renkaat * 100).ToString());
173            renkaiden_hinta.Position = new Vector(oikeareuna.X, Screen.Top * 0.4);
174            Add(renkaiden_hinta);
175
176            //Ostaminen
177
178            PushButton vihrea = new PushButton("");
179            vihrea.Color = Color.Green;
180            vihrea.Size = new Vector(50, 50);
181            vihrea.Position = new Vector(Screen.Right * 0.9, Screen.Bottom * 0.9);
182            Add(vihrea);
183
184            PushButton sininen = new PushButton("");
185            sininen.Color = Color.Blue;
186            sininen.Size = new Vector(50, 50);
187            sininen.Position = new Vector(Screen.Right * 0.8, Screen.Bottom * 0.9);
188            Add(sininen);
189
190            PushButton punainen = new PushButton("");
191            punainen.Color = Color.Red;
192            punainen.Size = new Vector(50, 50);
193            punainen.Position = new Vector(Screen.Right * 0.9, Screen.Bottom * 0.78);
194            Add(punainen);
195
196            PushButton keltainen = new PushButton("");
197            keltainen.Color = Color.Yellow;
198            keltainen.Size = new Vector(50, 50);
199            keltainen.Position = new Vector(Screen.Right * 0.8, Screen.Bottom * 0.78);
200            Add(keltainen);
201
202            PushButton valkoinen = new PushButton("White");
203            valkoinen.Clicked += new Action(ChangeCarColor);
204            valkoinen.Color = Color.White;
205            valkoinen.BorderColor = Color.Black;
206            valkoinen.Size = new Vector(118, 50);
207            valkoinen.Position = new Vector(Screen.Right * 0.85, Screen.Bottom * 0.66);
208            Add(valkoinen);
209           
210        }
211
212        void ChangeCarColor()
213        {
214
215        }
216
217        void sell_Clicked()
218        {
219            if (autot.Count > 1)
220            {
221                double hinta = (10000 + (autot[ID].kori * 100) * 0.75) + ((autot[ID].moottori * 100) / 2) + ((autot[ID].renkaat * 100) / 2);
222                autot.RemoveAt(ID);
223                raha = raha + hinta;
224                ID = ++ID % autot.Count;
225                UpdateHUD();
226            }
227            else
228            {
229                MessageDisplay.Add("Can't sell last car.");
230            }
231        }
232
233        void update_tiers_Clicked()
234        {
235            int hinta = autot[ID].renkaat * 100;
236            if (raha >= hinta)
237            {
238                if (autot[ID].renkaat < max_taso)
239                {
240                    raha = raha - hinta;
241                    autot[ID].renkaat += 1;
242                }
243                else
244                {
245                    MessageDisplay.Add("Can't update engine.");
246                }
247            }
248            else
249            {
250                MessageDisplay.Add("No enought money.");
251            }
252            UpdateHUD();
253        }
254
255        void update_engine_Clicked()
256        {
257            int hinta = autot[ID].moottori * 100;
258            if (raha >= hinta)
259            {
260                if (autot[ID].moottori < max_taso)
261                {
262                    raha = raha - hinta;
263                    autot[ID].moottori += 1;
264                }
265                else
266                {
267                    MessageDisplay.Add("Can't update engine.");
268                }
269            }
270            else
271            {
272                MessageDisplay.Add("No enought money.");
273            }
274            UpdateHUD();
275        }
276
277        void previousid_Clicked()
278        {
279            ID = (--ID + autot.Count) % autot.Count;
280            UpdateHUD();
281        }
282
283        void nextid_Clicked()
284        {
285            ID = ++ID % autot.Count;
286            UpdateHUD();
287        }
288
289        void UpdateHUD()
290        {
291            double hinta = (10000 + (autot[ID].kori * 100) * 0.75) + ((autot[ID].moottori * 100) / 2) + ((autot[ID].renkaat * 100) / 2);
292            sell_price.Text = "Sell price: " + hinta.ToString();
293            malli.Text = autot[ID].korinnimi.ToString();
294            moottori.Text = "Engine: " + autot[ID].moottori.ToString();
295            renkaat.Text = "Tiers: " + autot[ID].renkaat.ToString();
296            number.Text = (ID + 1).ToString() + "/" + autot.Count.ToString();
297            moottorin_hinta.Text = "Price: " + (autot[ID].moottori * 100).ToString();
298            renkaiden_hinta.Text = "Price: " + (autot[ID].renkaat * 100).ToString();
299        }
300    }
301}
Note: See TracBrowser for help on using the repository browser.