- Timestamp:
- 2015-06-04 15:59:05 (7 years ago)
- Location:
- 2015/23/OskuL
- Files:
-
- 5 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/23/OskuL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2/space race.cs
r5867 r5870 9 9 public class FysiikkaPeli2 : PhysicsGame 10 10 { 11 Image tynnyriKuva = LoadImage("hazarx2"); 11 12 Image rajahdysKuva = LoadImage(""); 12 13 SoundEffect rajahdysAani = LoadSoundEffect(""); 13 14 PhysicsObject pelaaja1, pelaaja2; 15 PhysicsObject asteroidi; 16 PhysicsObject maali; 17 18 IntMeter pisteLaskuri1, pisteLaskuri2; 14 19 DoubleMeter elamaLaskuri; 15 20 DoubleMeter elamaLaskuri2; 16 21 public override void Begin() 17 22 { 18 23 LuoPistelaskuri1(); 24 LuoPistelaskuri2(); 19 25 LuoKentta(); 20 26 LuoOhjaimet(); … … 24 30 Camera.FollowYMargin = 100; 25 31 //Camera.StayInLevel = true; 26 elamaLaskuri = LuoElamaLaskuri(Screen.Left + 150, Screen.Top - 20);27 elamaLaskuri2 = LuoElamaLaskuri(Screen. Left + 150, Screen.Top - 100);28 32 elamaLaskuri = LuoElamaLaskuri(Screen.Left + 500, Screen.Top - 70, pelaaja1); 33 elamaLaskuri2 = LuoElamaLaskuri(Screen.Right - 500, Screen.Top - 70, pelaaja2); 34 29 35 30 36 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); … … 33 39 { 34 40 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("SPACERACE"); 35 36 41 ruudut.SetTileMethod(Color.Cyan, LuoPelaaja1); 42 ruudut.SetTileMethod(Color.White, LuoPistetynnyri); 37 43 ruudut.SetTileMethod(Color.Gold, LuoPelaaja2); 38 44 ruudut.SetTileMethod(Color.Black, LuoAsteroidi); 45 ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoMaali); 39 46 ruudut.SetTileMethod(Color.Red, LuoReuna); 40 Level.Background.CreateStars();47 //Level.Background.CreateStars(); 41 48 42 49 43 50 ruudut.Execute(20, 20); 51 52 Level.Background.Color = Color.Black; 53 Level.Size = new Vector(3000.0, 1800.0); 54 55 Level.Background.Image = LoadImage("earth"); 56 Level.Background.ScaleToLevel(); 44 57 45 58 //GameObject tausta = new GameObject(LoadImage("Earth")); … … 59 72 } 60 73 61 DoubleMeter LuoElamaLaskuri(Double x, Double y )74 DoubleMeter LuoElamaLaskuri(Double x, Double y, PhysicsObject pelaaja) 62 75 { 63 76 DoubleMeter elamaLaskuri = new DoubleMeter(10); 64 77 elamaLaskuri.MaxValue = 10; 65 elamaLaskuri.LowerLimit += ElamaLoppui; 78 79 if (pelaaja.Tag.Equals("eka")) 80 { 81 elamaLaskuri.LowerLimit += ElamaLoppui1; 82 } 83 84 if (pelaaja.Tag.Equals("toka")) 85 { 86 elamaLaskuri.LowerLimit += ElamaLoppui2; 87 } 66 88 67 89 ProgressBar elamaPalkki = new ProgressBar(150, 20); … … 77 99 } 78 100 79 void ElamaLoppui() 101 102 void LuoPistelaskuri1() 103 { 104 pisteLaskuri1 = new IntMeter(0); 105 106 Label pisteNaytto = new Label(); 107 pisteNaytto.X = Screen.Left + 500; 108 pisteNaytto.Y = Screen.Top - 100; 109 pisteNaytto.TextColor = Color.Black; 110 pisteNaytto.Color = Color.White; 111 pisteNaytto.Title = "Pisteet"; 112 pisteNaytto.BindTo(pisteLaskuri1); 113 IntMeter keratytEsineet = new IntMeter(0); 114 pisteLaskuri1.MaxValue = 5; 115 pisteLaskuri1.UpperLimit += delegate { KaikkiKeratty(pelaaja1); }; 116 Add(pisteNaytto); 117 } 118 119 void LuoPistelaskuri2() 120 { 121 pisteLaskuri2 = new IntMeter(0); 122 123 Label pisteNaytto = new Label(); 124 pisteNaytto.X = Screen.Right - 500; 125 pisteNaytto.Y = Screen.Top - 100; 126 pisteNaytto.TextColor = Color.Black; 127 pisteNaytto.Color = Color.White; 128 pisteNaytto.Title = "Pisteet"; 129 pisteNaytto.BindTo(pisteLaskuri2); 130 IntMeter keratytEsineet = new IntMeter(0); 131 pisteLaskuri2.MaxValue = 5; 132 pisteLaskuri2.UpperLimit += delegate { KaikkiKeratty(pelaaja2); }; 133 Add(pisteNaytto); 134 } 135 136 void KaikkiKeratty(PhysicsObject pelaaja) 137 { 138 // "moi pelaaja " + pelaaja.Tag + "!!!" 139 140 // moi pelaaja eka!!! 141 142 MessageDisplay.Add("Maali auki " + pelaaja.Tag + "lle pelaajalle"); 143 AktivoiMaali(pelaaja); 144 } 145 146 void ElamaLoppui1() 80 147 { 81 148 MessageDisplay.Add("Hävisit, paremmin ensikerralla"); … … 86 153 Keyboard.Disable(Key.Down); 87 154 } 155 156 void ElamaLoppui2() 157 { 158 MessageDisplay.Add("Hävisit, paremmin ensikerralla"); 159 pelaaja2.Destroy(); 160 Keyboard.Disable(Key.W); 161 Keyboard.Disable(Key.A); 162 Keyboard.Disable(Key.S); 163 Keyboard.Disable(Key.D); 164 } 88 165 private void LuoOhjaimet() 89 166 { … … 142 219 private void LuoAsteroidi(Vector paikka, double leveys, double korkeus) 143 220 { 144 PhysicsObject asteroidi = new PhysicsObject(LoadImage("ASTEROIDI")); 221 asteroidi = new PhysicsObject(30, 30); 222 Image c = LoadImage("asteroid"); 223 asteroidi.Image = c; 145 224 asteroidi.Position = paikka; 146 asteroidi.Tag = " ASTEROIDI";225 asteroidi.Tag = "asteroid"; 147 226 Add(asteroidi); 148 227 } 149 228 private void LuoPelaaja1(Vector paikka, double leveys, double korkeus) 150 229 { 151 pelaaja1 = new PhysicsObject(LoadImage("alus")); 230 pelaaja1 = new PhysicsObject(30, 30); 231 Image c = LoadImage("ship"); 232 pelaaja1.Image = c; 152 233 pelaaja1.Position = paikka; 153 234 pelaaja1.Tag = "eka"; … … 155 236 Add(pelaaja1); 156 237 pelaaja1.LinearDamping = 0.98; 157 AddCollisionHandler(pelaaja1, "ASTEROIDI", PelaajaOsuu); 238 AddCollisionHandler(pelaaja1, "asteroid", PelaajaOsuu); 239 AddCollisionHandler(pelaaja1, "piste", PelaajaOsuuPisteeseen); 158 240 } 159 241 private void LuoPelaaja2(Vector paikka, double leveys, double korkeus) 160 242 { 161 pelaaja2 = new PhysicsObject(LoadImage("alus")); 243 pelaaja2 = new PhysicsObject(30, 30); 244 Image c = LoadImage("ship"); 245 pelaaja2.Image = c; 246 162 247 pelaaja2.Position = paikka; 163 248 pelaaja2.Tag = "toka"; … … 165 250 Add(pelaaja2); 166 251 pelaaja2.LinearDamping = 0.98; 167 AddCollisionHandler(pelaaja2, "ASTEROIDI", PelaajaOsuu); 252 AddCollisionHandler(pelaaja2, "asteroid", PelaajaOsuu); 253 AddCollisionHandler(pelaaja2, "piste", PelaajaOsuuPisteeseen); 168 254 } 169 255 private void LuoReuna(Vector paikka, double leveys, double korkeus) … … 174 260 reuna.Color = Color.Transparent; 175 261 } 262 private void LuoMaali(Vector paikka, double leveys, double korkeus) 263 { 264 maali = PhysicsObject.CreateStaticObject(20, 20); 265 maali.Position = paikka; 266 267 Add(maali); 268 maali.Color = Color.HotPink; 269 } 270 private void AktivoiMaali(PhysicsObject pelaaja) 271 { 272 AddCollisionHandler(maali, pelaaja.Tag, PeliLoppuu); 273 maali.Color = Color.Turquoise; 274 } 275 276 private void PeliLoppuu(PhysicsObject maali, PhysicsObject voittaja) 277 { 278 IsPaused = true; 279 Label voittoTeksti = new Label(voittaja.Tag + " voitti pelin."); 280 voittoTeksti.Color = Color.White; 281 voittoTeksti.Position = new Vector(0.0, 0.0); 282 283 Add(voittoTeksti); 284 } 176 285 private void AloitaPeli() 177 286 { 178 287 288 } 289 290 void LuoPistetynnyri(Vector paikka, double leveys, double korkeus) 291 { 292 PhysicsObject tynnyri = new PhysicsObject(leveys, korkeus); 293 tynnyri.Position = paikka; 294 tynnyri.Image = tynnyriKuva; 295 tynnyri.Tag = "piste"; 296 Add(tynnyri); 297 298 299 } 300 301 void PelaajaOsuuPisteeseen(PhysicsObject pelaaja, PhysicsObject kohde) 302 { 303 kohde.Destroy(); 304 if (pelaaja.Tag.Equals("eka")) 305 { 306 pisteLaskuri1.Value += 1; 307 } 308 else if (pelaaja.Tag.Equals("toka")) 309 { 310 pisteLaskuri2.Value += 1; 311 } 179 312 } 180 313 … … 203 336 rajahdys.Position = kohde.Position; 204 337 rajahdys.Speed = 500.0; 205 rajahdys.Force = 10 0;338 rajahdys.Force = 10; 206 339 //rajahdys.Image = rajahdysKuva; 207 340 //rajahdys.Sound = rajahdysAani; -
2015/23/OskuL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2Content/FysiikkaPeli2Content.contentproj
r5867 r5870 78 78 </Compile> 79 79 </ItemGroup> 80 <ItemGroup> 81 <Compile Include="asteroid.png"> 82 <Name>asteroid</Name> 83 <Importer>TextureImporter</Importer> 84 <Processor>TextureProcessor</Processor> 85 </Compile> 86 <Compile Include="hazarx2.png"> 87 <Name>hazarx2</Name> 88 <Importer>TextureImporter</Importer> 89 <Processor>TextureProcessor</Processor> 90 </Compile> 91 <Compile Include="ship.png"> 92 <Name>ship</Name> 93 <Importer>TextureImporter</Importer> 94 <Processor>TextureProcessor</Processor> 95 </Compile> 96 </ItemGroup> 80 97 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 81 98 <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Note: See TracChangeset
for help on using the changeset viewer.