- Timestamp:
- 2016-06-23 13:13:08 (7 years ago)
- Location:
- 2016/25/ToukoP/FysiikkaPeli1
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/25/ToukoP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs
r7475 r7500 9 9 public class FysiikkaPeli1 : PhysicsGame 10 10 { 11 EasyHighScore TopLista = new EasyHighScore(); 12 IntMeter pelaajanpisteet; 11 AssaultRifle raketinAse; 12 Image savunkuva = LoadImage("savu"); 13 IntMeter pelaajanpisteet = new IntMeter(0); 14 15 ScoreList TopLista; 13 16 PhysicsObject raketti; 14 17 Vector pelaajanAlkuPaikka; 18 string[] kentat = new string[] { "Kentta1", "Kentta2", "Kentta3", "Kentta4", "Kentta5", "Kentta6" }; 19 int kenttaMenossa = 0; 20 double raketinNopeus = 75.0; 15 21 public override void Begin() 16 { 17 22 23 { 24 TopLista = new ScoreList(10, true, 10000); 25 TopLista = DataStorage.TryLoad<ScoreList>(TopLista, "pisteet2.xml"); 18 26 AlkuValikko(); 19 27 28 29 20 30 } 21 31 … … 31 41 raketti.RotateImage = true; 32 42 Image kuva = LoadImage("raketti"); 33 43 raketti.CollisionIgnoreGroup = 2; 34 44 raketti.Image = kuva; 35 45 Timer ajastin = new Timer(); 36 ajastin.Interval = 0. 05;46 ajastin.Interval = 0.10; 37 47 ajastin.Timeout += asetanopeus; 38 48 ajastin.Start(); 39 49 AddCollisionHandler(raketti, "vihollinen", TormaaViholliseen); 40 41 42 } 43 50 AddCollisionHandler(raketti, "maali", tormaamaaliin); 51 AddCollisionHandler(raketti, "boosti", keraaBoosti); 52 AddCollisionHandler(raketti, "hidaste", keraaHidaste); 53 AddCollisionHandler(raketti, "asteroidi", TormaaViholliseen); 54 Ase(); 55 raketti.Add(raketinAse); 56 57 } 58 void tormaamaaliin(PhysicsObject raketti, PhysicsObject maali) 59 { 60 if (kentat.Length > kenttaMenossa +1) 61 { SeuraavaKentta(); } 62 63 else 64 { 65 ClearAll(); 66 TarkistaPaasitkoListalle(); 67 } 68 } 44 69 void LuoKentta() 45 70 { 46 71 Level.Background.Color = Color.White; 47 TileMap kentta = TileMap.FromLevelAsset( "Kentta1");72 TileMap kentta = TileMap.FromLevelAsset(kentat[kenttaMenossa]); 48 73 kentta.SetTileMethod('p', luoraketti); 49 74 kentta.SetTileMethod('#', LisaaTaso); 75 kentta.SetTileMethod('m', LisaaMaali); 76 kentta.SetTileMethod('b', Boosti); 77 kentta.SetTileMethod('h', Hidaste); 78 kentta.SetTileMethod('s', LuoSavu); 79 kentta.SetTileMethod('v', LuoVihollinen); 80 kentta.SetTileMethod('a', LuoAsteroidi); 50 81 kentta.Execute(); 51 // kentta.SetTileMethod("m", VaihdaLevel); 82 83 52 84 } 53 85 void LisaaTaso(Vector paikka, double leveys, double korkeus) … … 58 90 Add(taso); 59 91 taso.Tag = "vihollinen"; 92 93 } 94 void LisaaMaali(Vector paikka, double leveys, double korkeus) 95 { 96 PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 97 maali.Position = paikka; 98 maali.Color = Color.Blue; 99 Add(maali); 100 maali.Tag = "maali"; 101 maali.Color = Color.Pink; 102 maali.CollisionIgnoreGroup = 5; 103 104 60 105 } 61 106 void LuoOhjaimet() … … 65 110 Keyboard.Listen(Key.Right, ButtonState.Down, kaanna, "", -1.7); 66 111 Keyboard.Listen(Key.Left, ButtonState.Down, kaanna, "", 1.7); 67 112 Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, null, raketinAse); 68 113 69 114 } … … 79 124 void asetanopeus() 80 125 { 81 raketti.Velocity = Vector.FromLengthAndAngle(75.0, raketti.Angle); 82 126 raketti.Velocity = Vector.FromLengthAndAngle(raketinNopeus, raketti.Angle); 83 127 } 84 128 … … 87 131 //pelaaja.Destroy(); 88 132 Pisteet(); 89 aloitaalusta(); 133 ClearAll(); 134 raketinNopeus = 75.0; 135 AloitaPeli(); 136 //aloitaalusta(); 137 DoNextUpdate(delegate { raketti.StopAngular(); }); 90 138 } 91 139 void aloitaalusta() 92 140 { 141 raketti.StopAngular(); 142 raketinNopeus = 75.0; 93 143 raketti.Position = pelaajanAlkuPaikka; 94 144 raketti.Velocity = Vector.Zero; 95 145 raketti.Angle = Angle.FromDegrees(90); 146 147 148 96 149 } 97 150 void Lisaalaskuri() 98 151 { 99 pelaajanpisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 100 } 101 IntMeter LuoPisteLaskuri(double x, double y) 102 { 103 IntMeter laskuri = new IntMeter(0); 104 laskuri.MaxValue = 10; 152 IntMeter laskuri; 153 if (pelaajanpisteet == null) 154 { 155 laskuri = new IntMeter(0); 156 } 157 else 158 { 159 laskuri = pelaajanpisteet; 160 } 161 pelaajanpisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0, laskuri); 162 } 163 IntMeter LuoPisteLaskuri(double x, double y, IntMeter laskuri) 164 { 165 105 166 Label naytto = new Label(); 106 167 naytto.BindTo(laskuri); … … 123 184 void AlkuValikko() 124 185 { 186 125 187 MultiSelectWindow AlkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 126 188 "Aloita peli", "Parhaat pisteet", "Lopeta"); … … 133 195 Mouse.IsCursorVisible = true; 134 196 } 135 void Pelaajakuoli() 136 { 137 raketti.Destroy(); 138 TopLista.EnterAndShow(pelaajanpisteet.value); 139 TopLista.HighScoreWindow.Closed += Aloitapeli; 140 } 141 142 143 144 145 146 147 148 149 void Parhaatpisteet() 150 { 151 152 } 197 198 199 public void Aloitapeli(Window sender) 200 { 201 //... 202 } 203 204 205 206 void TarkistaPaasitkoListalle() 207 { 208 HighScoreWindow TopIkkuna = new HighScoreWindow("Parhaat pisteet", "Onnittelut Paasit Listalle", 209 TopLista, pelaajanpisteet.Value); 210 211 TopIkkuna.Closed += TallennaPisteet; 212 Add(TopIkkuna); 213 } 214 215 216 217 void Parhaatpisteet() 218 { 219 HighScoreWindow TopIkkuna = new HighScoreWindow( 220 "Parhaat pisteet", 221 222 TopLista); 223 TopIkkuna.Closed += delegate { AlkuValikko(); }; 224 Add(TopIkkuna); 225 } 226 227 153 228 void AloitaPeli() 154 229 { 230 MediaPlayer.Play("TaustaMusa"); 231 //MediaPlayer.PlayFromFile("TaustaMusa.mp3"); 232 MediaPlayer.IsRepeating = true; 155 233 LuoKentta(); 156 234 Lisaalaskuri(); … … 159 237 } 160 238 239 240 void TallennaPisteet(Window sender) 241 { 242 DataStorage.Save<ScoreList>(TopLista, "pisteet.xml"); 243 pelaajanpisteet.Value = 0; 244 AlkuValikko(); 245 246 } 247 248 void SeuraavaKentta() 249 { 250 ClearAll(); 251 kenttaMenossa++; 252 if (kenttaMenossa >= kentat.Length) { kenttaMenossa = 0; AlkuValikko(); } 253 else 254 { 255 AloitaPeli(); 256 } 257 258 } 259 void Boosti(Vector paikka, double leveys, double korkeus) 260 { 261 262 PhysicsObject boosti = PhysicsObject.CreateStaticObject(leveys, korkeus); 263 boosti.IgnoresCollisionResponse = true; 264 Add(boosti); 265 boosti.Position = paikka; 266 boosti.Tag = "boosti"; 267 boosti.Color = Color.Red; 268 269 } 270 void keraaBoosti(PhysicsObject pelaaja, PhysicsObject boosti) 271 { 272 raketinNopeus = 270.0; 273 Timer.SingleShot(1.0, delegate { raketinNopeus = 75.0; }); 274 } 275 void Hidaste(Vector paikka, double leveys, double korkeus) 276 { 277 278 PhysicsObject hidaste = PhysicsObject.CreateStaticObject(leveys, korkeus); 279 hidaste.IgnoresCollisionResponse = true; 280 Add(hidaste); 281 hidaste.Position = paikka; 282 hidaste.Tag = "hidaste"; 283 hidaste.Color = Color.Green; 284 285 } 286 void keraaHidaste(PhysicsObject pelaaja, PhysicsObject hidaste) 287 { 288 raketinNopeus = 25.0; 289 Timer.SingleShot(2.0, delegate { raketinNopeus = 75; }); 290 } 291 void LuoSavu(Vector paikka, double leveys, double korkeus) 292 { 293 Smoke savu = new Smoke(); 294 savu.Position = paikka; 295 Add(savu); 296 savu.AlphaAmount = 0.08; 297 //savu.Image = LoadImage("raketti"); 298 299 300 } 301 void LuoVihollinen(Vector paikka, double leveys, double korkeus) 302 { 303 PhysicsObject Viholllinen = PhysicsObject.CreateStaticObject(leveys, korkeus); 304 Viholllinen.Position = paikka; 305 Viholllinen.Color = Color.Brown; 306 Add(Viholllinen); 307 Viholllinen.CollisionIgnoreGroup = 5; 308 Timer ajastin = new Timer(); 309 ajastin.Interval = 2.1; 310 ajastin.Timeout += delegate { ammukohti(Viholllinen, raketti); }; 311 ajastin.Start(); 312 } 313 void ammukohti(PhysicsObject vihollinen, PhysicsObject pelaaja) 314 { 315 316 Vector suunta = pelaaja.Position - vihollinen.Position; 317 PhysicsObject ammus = new PhysicsObject(15, 15); 318 ammus.Position = vihollinen.Position; 319 ammus.CollisionIgnoreGroup = vihollinen.CollisionIgnoreGroup; 320 Add(ammus); 321 ammus.Velocity = suunta.Normalize() * 500; 322 ammus.Tag = "vihollinen"; 323 AddCollisionHandler(ammus, CollisionHandler.DestroyObject); 324 ammus.Color = Color.Orange; 325 326 } 327 void Ase() 328 { 329 raketinAse = new AssaultRifle(0, 0); 330 raketinAse.Ammo.Value = 1000; 331 raketinAse.ProjectileCollision = AmmusOsui; 332 } 333 void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 334 { 335 336 } 337 void AmmuAseella(AssaultRifle ase) 338 { 339 PhysicsObject ammus = ase.Shoot(); 340 if (ammus != null) 341 { 342 343 ammus.CollisionIgnoreGroup = 5; 344 AddCollisionHandler(ammus, ammustormaa); 345 } 346 } 347 void ammustormaa(PhysicsObject ammus, PhysicsObject kohde) 348 { 349 ammus.Destroy(); 350 if ((String)kohde.Tag == "tuhoutuva") 351 { 352 kohde.Destroy(); 353 } 354 } 355 void LuoAsteroidi(Vector paikka, double leveys, double korkeus) 356 { 357 PhysicsObject asteroidi = new PhysicsObject(70.0, 75.0); 358 asteroidi.Tag = "tuhoutuva"; 359 asteroidi.Color = Color.Black; 360 Add(asteroidi); 361 asteroidi.Position = paikka; 362 363 364 365 } 161 366 } 367 368 -
2016/25/ToukoP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.csproj.Debug.cachefile
r7475 r7500 1 1 Content\Kentta1.xnb 2 2 Content\raketti.xnb 3 Content\Kentta2.xnb 4 Content\Kentta3.xnb 5 Content\savu.xnb 6 Content\Kentta4.xnb 7 Content\TaustaMusa.xnb 8 Content\Kentta5.xnb 9 Content\Kentta6.xnb 10 Content\TaustaMusa.wma -
2016/25/ToukoP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/obj/x86/Debug/ContentPipeline-{E216E612-73E2-4ACE-A08F-34A8EC11090A}.xml
r7475 r7500 9 9 <Options>None</Options> 10 10 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta1.xnb</Output> 11 <Time>2016-06-2 1T09:36:33.9249544+02:00</Time>11 <Time>2016-06-22T14:29:07.0119364+02:00</Time> 12 12 </Item> 13 13 <Item> … … 18 18 <Options>None</Options> 19 19 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\raketti.xnb</Output> 20 <Time>2016-06-21T10:09:54.8303535+02:00</Time> 20 <Time>2016-06-23T09:25:07.954563+02:00</Time> 21 </Item> 22 <Item> 23 <Source>Kentta2.txt</Source> 24 <Name>Kentta2</Name> 25 <Importer>TextFileImporter</Importer> 26 <Processor>TextFileContentProcessor</Processor> 27 <Options>None</Options> 28 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta2.xnb</Output> 29 <Time>2016-06-23T11:32:42.6525274+02:00</Time> 30 </Item> 31 <Item> 32 <Source>Kentta3.txt</Source> 33 <Name>Kentta3</Name> 34 <Importer>TextFileImporter</Importer> 35 <Processor>TextFileContentProcessor</Processor> 36 <Options>None</Options> 37 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta3.xnb</Output> 38 <Time>2016-06-22T12:25:00.0720765+02:00</Time> 39 </Item> 40 <Item> 41 <Source>savu.png</Source> 42 <Name>savu</Name> 43 <Importer>TextureImporter</Importer> 44 <Processor>TextureProcessor</Processor> 45 <Options>None</Options> 46 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\savu.xnb</Output> 47 <Time>2016-06-22T09:55:59.8353707+02:00</Time> 48 </Item> 49 <Item> 50 <Source>Kentta4.txt</Source> 51 <Name>Kentta4</Name> 52 <Importer>TextFileImporter</Importer> 53 <Processor>TextFileContentProcessor</Processor> 54 <Options>None</Options> 55 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta4.xnb</Output> 56 <Time>2016-06-23T09:41:14.148893+02:00</Time> 57 </Item> 58 <Item> 59 <Source>TaustaMusa.mp3</Source> 60 <Name>TaustaMusa</Name> 61 <Importer>Mp3Importer</Importer> 62 <Processor>SongProcessor</Processor> 63 <Options>None</Options> 64 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\TaustaMusa.xnb</Output> 65 <Extra>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\TaustaMusa.wma</Extra> 66 <Time>2016-06-22T13:34:00.363212+02:00</Time> 67 </Item> 68 <Item> 69 <Source>Kentta5.txt</Source> 70 <Name>Kentta5</Name> 71 <Importer>TextFileImporter</Importer> 72 <Processor>TextFileContentProcessor</Processor> 73 <Options>None</Options> 74 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta5.xnb</Output> 75 <Time>2016-06-23T10:20:18.0983115+02:00</Time> 76 </Item> 77 <Item> 78 <Source>Kentta6.txt</Source> 79 <Name>Kentta6</Name> 80 <Importer>TextFileImporter</Importer> 81 <Processor>TextFileContentProcessor</Processor> 82 <Options>None</Options> 83 <Output>C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta6.xnb</Output> 84 <Time>2016-06-23T11:29:16.8915452+02:00</Time> 21 85 </Item> 22 86 <BuildSuccessful>true</BuildSuccessful> -
2016/25/ToukoP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/obj/x86/Debug/FysiikkaPeli1.csproj.FileListAbsolute.txt
r7475 r7500 9 9 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta1.xnb 10 10 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\raketti.xnb 11 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta2.xnb 12 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta3.xnb 13 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\savu.xnb 14 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta4.xnb 15 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\TaustaMusa.xnb 16 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\TaustaMusa.wma 17 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta5.xnb 18 C:\Users\ohjelmointi\Documents\ToukoP\FysiikkaPeli1\FysiikkaPeli1\FysiikkaPeli1\bin\x86\Debug\Content\Kentta6.xnb -
2016/25/ToukoP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/obj/x86/Debug/cachefile-{E216E612-73E2-4ACE-A08F-34A8EC11090A}-targetpath.txt
r7475 r7500 1 1 Content\Kentta1.xnb 2 2 Content\raketti.xnb 3 Content\Kentta2.xnb 4 Content\Kentta3.xnb 5 Content\savu.xnb 6 Content\Kentta4.xnb 7 Content\TaustaMusa.xnb 8 Content\TaustaMusa.wma 9 Content\Kentta5.xnb 10 Content\Kentta6.xnb
Note: See TracChangeset
for help on using the changeset viewer.