- Timestamp:
- 2014-06-26 14:43:51 (8 years ago)
- Location:
- 2014/26/Pyry-PetteriP/Motopeli
- Files:
-
- 4 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/26/Pyry-PetteriP/Motopeli/Motopeli/Motopeli/Motopeli.cs
r5109 r5120 10 10 { 11 11 Image autoKuva = LoadImage("auto2"); 12 Auto mobile moottoripyora;12 Auto auto1; 13 13 RoadMap tie; 14 Automobile auto2; 15 16 17 ScoreList topLista = new ScoreList(10, true, 1000); 18 19 20 21 Timer aikaLaskuri; 22 23 bool osuttuOikeaanViivaan = false; 24 bool osuttuAlaViivaan = false; 25 bool osuttuVasempaanViivaan = false; 14 26 15 27 Vector[] reittiPisteet = new Vector[] 16 28 { 17 29 new Vector( 0, 300 ), 18 new Vector(400,300 ), //suoran päätös oikealla ulhaalla30 new Vector(400,300 ), // suoran päätös oikealla ylhaalla 19 31 new Vector(500, 250), 20 32 new Vector (600,100), … … 42 54 }; 43 55 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 56 List<Automobile> autot; 59 57 60 58 public override void Begin() 61 59 { 62 AloitaAlusta(); 60 autot = new List<Automobile>(); 61 topLista = DataStorage.TryLoad<ScoreList>(topLista, "pisteet.xml"); 62 Alkuvalikko(); 63 } 64 65 void Alku(Window sender) 66 { 67 Alkuvalikko(); 68 } 69 70 void Alkuvalikko() 71 { 72 ClearAll(); 73 autot.Clear(); 74 MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Multplayer", "Parhaat pisteet", "Lopeta"); 75 Add(alkuValikko); 76 77 alkuValikko.AddItemHandler(0, AloitaAlusta, 1); 78 alkuValikko.AddItemHandler(1, AloitaAlusta, 2); 79 alkuValikko.AddItemHandler(2, ParhaatAjat); 80 alkuValikko.AddItemHandler(3, Exit); 81 82 } 83 84 85 void AloitaAlusta(int pelaajienMaara) 86 { 87 ClearAll(); 88 89 63 90 SmoothTextures = false; 64 91 65 66 67 //LuoKaide(); 68 92 Luokentta(); 93 LisaaMaaliViiva(); 94 95 LisaaRataPisteet(200, 20, 600, 0, "oikea"); 96 LisaaRataPisteet(20, 200, 50, -300, "ala"); 97 LisaaRataPisteet(200, 20, -530, 160, "vasen"); 98 99 100 auto1 = TeeAuto(new Vector(0, 300)); 101 autot.Add(auto1); 102 103 if (pelaajienMaara == 2) 104 { 105 auto2 = TeeAuto(new Vector(0, 330)); 106 autot.Add(auto2); 107 } 108 109 AsetaOhjaimet(pelaajienMaara); 110 111 112 Camera.ZoomToLevel(); 113 114 LisaaAjastimet(); 115 LuoAikaLaskuri(); 116 } 117 118 119 void ParhaatAjat() 120 { 121 HighScoreWindow topIkkuna = new HighScoreWindow( 122 "Parhaat ajat", 123 topLista); 124 topIkkuna.Closed += TallennaAjat; 125 Add(topIkkuna); 69 126 } 70 127 … … 77 134 78 135 Level.Background.Color = Color.Green; 79 80 136 Level.Size = Screen.Size; 81 82 137 Level.CreateBorders(0.5, false); 83 84 } 85 86 87 void Moottoripyora() 88 { 89 moottoripyora = new Automobile(35.0, 20.0); 90 Add(moottoripyora); 91 moottoripyora.Position = new Vector(0, 300); 92 moottoripyora.Image = autoKuva; 93 moottoripyora.AngularDamping = 0.95; 138 } 139 140 141 Auto TeeAuto(Vector paikka) 142 { 143 Auto auto = new Auto(35.0, 20.0); 144 Add(auto); 145 auto.Position = paikka; 146 auto.Image = autoKuva; 147 auto.AngularDamping = 0.95; 94 148 //moottoripyora.MomentOfInertia = 400; 95 moottoripyora.TopSpeed = 10; 96 moottoripyora.Acceleration = 200; 97 moottoripyora.BrakeDeceleration = 500; 98 } 99 100 101 void AsetaOhjaimet() 102 { 103 Keyboard.Listen(Key.D, ButtonState.Down, KaannaPelaajaa, null, -2000.0); 104 Keyboard.Listen(Key.A, ButtonState.Down, KaannaPelaajaa, null, 2000.0); 105 Keyboard.Listen(Key.W, ButtonState.Down, KaasutaPelaajaa, null); 106 Keyboard.Listen(Key.S, ButtonState.Down, TaaksepainPelaajaa, null); 149 auto.TopSpeed = 10; 150 auto.Acceleration = 200; 151 152 AddCollisionHandler<Auto, PhysicsObject>(auto, "maali", TuliMaaliin); 153 AddCollisionHandler<Auto, PhysicsObject>(auto, "oikea", delegate { auto.osuttuOikeaanViivaan = true; }); 154 AddCollisionHandler<Auto, PhysicsObject>(auto, "ala", delegate { auto.osuttuAlaViivaan = true; }); 155 AddCollisionHandler<Auto, PhysicsObject>(auto, "vasen", delegate { auto.osuttuVasempaanViivaan = true; }); 156 return auto; 157 } 158 159 160 void AsetaOhjaimet(int pelaajienMaara) 161 { 162 Keyboard.Listen(Key.D, ButtonState.Down, KaannaPelaajaa, null, auto1, -2000.0); 163 Keyboard.Listen(Key.A, ButtonState.Down, KaannaPelaajaa, null, auto1, 2000.0); 164 Keyboard.Listen(Key.W, ButtonState.Down, KaasutaPelaajaa, null, auto1); 165 Keyboard.Listen(Key.S, ButtonState.Down, TaaksepainPelaajaa, null, auto1); 107 166 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 108 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 109 Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaAlusta, "Aloittaa Pelin Alusta"); 110 111 } 112 113 114 void LiikutaPelaajaa(Vector vektori) 115 { 116 moottoripyora.Push(vektori); 117 } 118 void KaannaPelaajaa(double kulma) 167 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Alkuvalikko, "Menee Alkuvalikkoon"); 168 Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaAlusta, "Aloittaa Pelin Alusta", pelaajienMaara); 169 170 if (pelaajienMaara == 1) return; 171 172 Keyboard.Listen(Key.Right, ButtonState.Down, KaannaPelaajaa, null, auto2, -2000.0); 173 Keyboard.Listen(Key.Left, ButtonState.Down, KaannaPelaajaa, null, auto2, 2000.0); 174 Keyboard.Listen(Key.Up, ButtonState.Down, KaasutaPelaajaa, null, auto2); 175 Keyboard.Listen(Key.Down, ButtonState.Down, TaaksepainPelaajaa, null, auto2); 176 } 177 178 179 void LiikutaPelaajaa(Automobile auto, Vector vektori) 180 { 181 auto.Push(vektori); 182 } 183 184 void KaannaPelaajaa(Automobile auto, double kulma) 119 185 { 120 186 //moottoripyora.Angle += kulma; 121 moottoripyora.ApplyTorque(kulma); 122 } 123 124 void KaasutaPelaajaa() 125 { 126 moottoripyora.Accelerate(); 127 } 128 void TaaksepainPelaajaa() 129 { 130 moottoripyora.Brake(); 131 } 187 auto.ApplyTorque(kulma); 188 } 189 190 void KaasutaPelaajaa(Automobile auto) 191 { 192 auto.Accelerate(); 193 } 194 195 void TaaksepainPelaajaa(Automobile auto) 196 { 197 auto.Brake(); 198 } 199 132 200 void LuoMerkki(Vector paikka) 133 201 { … … 136 204 palikka.Position = paikka; 137 205 palikka.Color = Color.Black; 138 139 206 } 140 207 … … 154 221 // return patka; 155 222 //} 156 void AloitaAlusta() 157 { 158 ClearAll(); 159 Luokentta(); 160 lisaaMaaliViiva(); 161 AsetaOhjaimet(); 162 // LuoKaide(); 163 Moottoripyora(); 164 Camera.ZoomToLevel(); 165 LisaaAjastimet(); 166 LuoAikaLaskuri(); 167 } 168 169 void lisaaMaaliViiva() 223 224 225 void LisaaMaaliViiva() 170 226 { 171 227 PhysicsObject maali = PhysicsObject.CreateStaticObject(20, 200); … … 173 229 maali.Position = new Vector(0, 300); 174 230 maali.IgnoresCollisionResponse = true; 231 maali.Tag = "maali"; 175 232 Add(maali); 176 233 } 177 234 235 236 void LisaaRataPisteet(int leveys, int korkeus, int paikkaX, int paikkaY, string tag) 237 { 238 PhysicsObject viiva = new PhysicsObject(leveys, korkeus); 239 viiva.IsVisible = false; 240 viiva.Position = new Vector(paikkaX, paikkaY); 241 viiva.IgnoresCollisionResponse = true; 242 viiva.Tag = tag; 243 Add(viiva); 244 } 178 245 179 246 void LisaaAjastimet() … … 181 248 Timer ajastin = new Timer(); 182 249 ajastin.Interval = 0.1; 183 ajastin.Timeout += Aseta autonnopedet;250 ajastin.Timeout += AsetaAutojenNopedet; 184 251 ajastin.Start(); 185 252 } 186 253 187 254 188 void Aseta autonnopedet()189 { 190 if (tie.IsInside(moottoripyora.Position))255 void AsetaAutojenNopedet() 256 { 257 foreach (Auto auto in autot) 191 258 { 192 moottoripyora.MaxVelocity = 1000; 259 if (tie.IsInside(auto.Position)) 260 { 261 auto.MaxVelocity = 1000; 262 } 263 264 else 265 { 266 auto.MaxVelocity = 100; 267 } 193 268 } 194 else195 {196 moottoripyora.MaxVelocity = 100;197 }198 199 269 } 200 270 … … 202 272 void LuoAikaLaskuri() 203 273 { 204 TimeraikaLaskuri = new Timer();274 aikaLaskuri = new Timer(); 205 275 aikaLaskuri.Start(); 206 276 207 277 Label aikaNaytto = new Label(); 208 aikaNaytto.TextColor = Color. White;278 aikaNaytto.TextColor = Color.Black; 209 279 aikaNaytto.DecimalPlaces = 1; 210 280 aikaNaytto.BindTo(aikaLaskuri.SecondCounter); … … 212 282 Add(aikaNaytto); 213 283 } 284 285 286 void TuliMaaliin(Auto auto, PhysicsObject maali) 287 { 288 if (auto.osuttuAlaViivaan && auto.osuttuOikeaanViivaan && auto.osuttuVasempaanViivaan) 289 { 290 aikaLaskuri.Stop(); 291 MessageDisplay.Add("MAALI!"); 292 RemoveCollisionHandlers(null, null, "maali", null); 293 HighScoreWindow topIkkuna = new HighScoreWindow( 294 "Parhaat pisteet", 295 "Onneksi olkoon, pääsit listalle ajalla {0:0.00}s! Syötä nimesi:", 296 topLista, aikaLaskuri.CurrentTime); 297 topIkkuna.Closed += TallennaAjat; 298 Add(topIkkuna); 299 } 300 } 301 302 303 void TallennaAjat(Window sender) 304 { 305 DataStorage.Save<ScoreList>(topLista, "pisteet.xml"); 306 Alkuvalikko(); 307 } 214 308 } 215 216 217 -
2014/26/Pyry-PetteriP/Motopeli/Motopeli/Motopeli/Motopeli.csproj
r5063 r5120 111 111 </ItemGroup> 112 112 <ItemGroup> 113 <Compile Include="Auto.cs" /> 113 114 <Compile Include="Ohjelma.cs" /> 114 115 <Compile Include="Motopeli.cs" />
Note: See TracChangeset
for help on using the changeset viewer.