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

Revision 2284, 9.1 KB checked in by jumakall, 8 years ago (diff)

Safehousen auton tuunaus ja myymisominaisuudet (myös auton vaihtaminen) valmiit.

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