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

Revision 2262, 7.2 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        int ID = 0;
15
16        Image MenuBackround = LoadImage("MenuBackround");
17        Label number, malli, moottori, renkaat, moottorin_hinta, renkaiden_hinta;
18
19        public override void Begin()
20        {
21            autot.Add(new Auto("Model1", 1, 4, 5));
22            autot.Add(new Auto("Model3", 3, 9, 1));
23            autot.Add(new Auto("Model2", 2, 9, 3));
24            Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, null);
25            Mouse.IsCursorVisible = true;
26            CreateMenu();
27        }
28
29        void CreateMenu()
30        {
31            //Set menu backround
32            Level.Background.Image = MenuBackround;
33
34            //Quit game button
35            PushButton quit_game = new PushButton("Quit game");
36            quit_game.Clicked += new Action(quit_game_Clicked);
37            quit_game.Position = new Vector(380.0, -50.0);
38            Add(quit_game);
39
40            //Load game button
41            PushButton load_game = new PushButton("Load game");
42            //load_game.Clicked += new Action(load_game_Clicked);
43            load_game.Clicked += new Action(GoToShop);
44            load_game.Position = new Vector(200.0, -50.0);
45            Add(load_game);
46
47            //New game button
48            PushButton new_game = new PushButton("New game");
49            new_game.Clicked += new Action(new_game_Clicked);
50            new_game.Position = new Vector(20.0, -50.0);
51            Add(new_game);
52        }
53
54        void new_game_Clicked()
55        {
56            MessageDisplay.Add("Can't start new game. Game engine not availible.");
57        }
58
59        void load_game_Clicked()
60        {
61            MessageDisplay.Add("Can't load game. Game save system not availible.");
62        }
63
64        void quit_game_Clicked()
65        {
66            Exit();
67        }
68
69        void GoToShop()
70        {
71            ClearAll();
72
73            Label ylapalkki = new Label(Screen.Width, Screen.Height / 15);
74            ylapalkki.Color = Color.White;
75            ylapalkki.X = 0;
76            ylapalkki.Y = Screen.Top - (ylapalkki.Height / 2);
77            Add(ylapalkki);
78
79            Label alapalkki = new Label(Screen.Width, Screen.Height / 4);
80            alapalkki.Color = Color.White;
81            alapalkki.Position = new Vector(0, Screen.Bottom + (alapalkki.Height / 2));
82            Add(alapalkki);
83
84            Label oikeareuna = new Label(Screen.Width / 6, Screen.Height);
85            oikeareuna.Color = Color.White;
86            oikeareuna.Position = new Vector(Screen.Right - oikeareuna.Width / 2, 0);
87            Add(oikeareuna);
88
89            Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, null);
90            Camera.ZoomToLevel();
91            Level.BackgroundColor = Color.LightGray;
92
93            /*GameObject alapalkki = new GameObject(Level.Width, Level.Height / 4);
94            alapalkki.X = 0;
95            alapalkki.Y = Level.Bottom + alapalkki.Height / 2;
96            Add(alapalkki);*/
97            /*
98            GameObject ylapalkki = new GameObject(Level.Width, Level.Height / 10);
99            ylapalkki.X = 0;
100            ylapalkki.Y = Level.Top - ylapalkki.Height / 2;
101            Add(ylapalkki);
102            */
103            /*GameObject oikeareuna = new GameObject(Level.Width / 6, Level.Height);
104            oikeareuna.Position = new Vector(Level.Right - oikeareuna.Width / 2, 0);
105            Add(oikeareuna);*/
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(Level.Right + 65, Level.Top - 20);
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(Level.Right + 65, Level.Top - 140);
126            update_tiers.Clicked += new Action(update_tiers_Clicked);
127            Add(update_tiers);
128
129            //Number
130            number = new Label((ID+1).ToString()+"/"+autot.Count.ToString());
131            number.Position = new Vector(Screen.Right * 0.78, ylapalkki.Y); //Level.Right, Level.Top + 60
132            Add(number);
133
134            malli = new Label(autot[ID].korinnimi.ToString());
135            malli.Position = new Vector(Level.Left, ylapalkki.Y); //Level.Left, Level.Top + 60
136            Add(malli);
137
138            moottori = new Label("Moottori: " + autot[ID].moottori.ToString());
139            moottori.Position = new Vector(Level.Left + 250, ylapalkki.Y); //Level.Left + 250, Level.Top * 1.2
140            Add(moottori);
141
142
143            renkaat = new Label("Renkaat: "+autot[ID].renkaat.ToString());
144            renkaat.Position = new Vector(0, ylapalkki.Y);
145            //renkaat.Y = ylapalkki.Y;
146            //ylapalkki.Y = 200 - ylapalkki.Height/2;
147            //renkaat.Position = //new Vector(ylapalkki.X, ylapalkki.Y); //Level.Left + 500, Level.Top + 60
148            Add(renkaat);
149
150            moottorin_hinta = new Label("Hinta: " + (autot[ID].moottori * 100).ToString());
151            moottorin_hinta.Position = new Vector(Level.Right + 65, Level.Top - 60);
152            Add(moottorin_hinta);
153
154            renkaiden_hinta = new Label("Hinta: " + (autot[ID].renkaat * 100).ToString());
155            renkaiden_hinta.Position = new Vector(Level.Right + 65, Level.Top - 180);
156            Add(renkaiden_hinta);
157           
158        }
159
160        void update_tiers_Clicked()
161        {
162            MessageDisplay.Add("Tiers updated.");
163            autot[ID].renkaat += 1;
164            UpdateHUD();
165        }
166
167        void update_engine_Clicked()
168        {
169            MessageDisplay.Add("Engine updated.");
170            autot[ID].moottori += 1;
171            UpdateHUD();
172        }
173
174        void previousid_Clicked()
175        {
176            ID = (--ID + autot.Count) % autot.Count;
177            UpdateHUD();
178        }
179
180        void nextid_Clicked()
181        {
182            ID = ++ID % autot.Count;
183            UpdateHUD();
184        }
185
186        void UpdateHUD()
187        {
188            malli.Text = autot[ID].korinnimi.ToString();
189            moottori.Text = "Moottori: " + autot[ID].moottori.ToString();
190            renkaat.Text = "Renkaat: " + autot[ID].renkaat.ToString();
191            number.Text = (ID + 1).ToString() + "/" + autot.Count.ToString();
192            moottorin_hinta.Text = "Hinta: " + (autot[ID].moottori * 100).ToString();
193            renkaiden_hinta.Text = "Hinta: " + (autot[ID].renkaat * 100).ToString();
194        }
195    }
196}
Note: See TracBrowser for help on using the repository browser.