- Timestamp:
- 2012-07-24 15:03:59 (11 years ago)
- Location:
- 2012/30/MiskaK/MW2(My Warfare 2)/MW2(My Warfare 2)
- Files:
-
- 12 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/30/MiskaK/MW2(My Warfare 2)/MW2(My Warfare 2)/MW2(My Warfare 2)/MW2_My_Warfare_2_.cs
r3697 r3733 10 10 { 11 11 12 PhysicsObject pelaaja1; 13 PhysicsObject pelaaja2; 14 12 Pelaaja pelaaja1; 13 Pelaaja pelaaja2; 14 15 PhysicsObject tähtäin; 16 AssaultRifle rynkky; 17 AssaultRifle rynkky2; 18 AssaultRifle pistooli; 19 AssaultRifle minigun; 20 AssaultRifle snipa; 21 PhysicsObject rynkynhylsy; 22 23 DoubleMeter pelaajan1terveys; 24 DoubleMeter pelaajan2terveys; 25 26 PhysicsObject laatikko; 27 28 29 //Kenttä 15 30 Image kivenKuva = LoadImage("kivi"); 16 31 Image piikkilankaKuva = LoadImage("piikkilanka"); 17 32 Image pystypiikkilankaKuva = LoadImage("piikkilankapysty"); 18 Image puunKuva = LoadImage("puu");33 Image vaakapuunKuva = LoadImage("puuvaaka"); 19 34 Image naamioverkonKuva = LoadImage("naamioverkko"); 20 35 Image pelaaja1Kuva = LoadImage("pelaaja1"); 36 Image rynkynhylsynKuva = LoadImage("rynkynhylsy"); 37 Image pelaaja2Kuva = LoadImage("pelaaja2"); 38 Image pystypuunKuva = LoadImage("puupysty"); 39 Image laatikonKuva = LoadImage("kamaa"); 40 Image bussinkuva = LoadImage("bussi"); 41 42 //Partikkelit 43 Image kivisirpale1 = LoadImage("kivisirpale1"); 44 Image kivisirpale2 = LoadImage("kivisirpale2"); 45 Image kipinä1 = LoadImage("kipinä1"); 46 Image veriroiske1 = LoadImage("veriroiske1"); 47 Image puusirpale1 = LoadImage("puusirpale1"); 21 48 22 49 public override void Begin() 23 50 { 24 25 51 LuoKenttä(); 26 52 LuoPelaaja1(); 27 53 LuoPelaaja2(); 28 54 AsetaOhjaimet(); 29 30 } 31 55 56 57 58 } 59 60 61 #region kenttä 32 62 void LuoKenttä() 33 63 { 34 Level.BackgroundColor = Color.Brown; 35 36 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("testikenttä1"); 37 64 Level.BackgroundColor = Color.LightBlue; 65 66 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä1"); 67 68 ruudut.SetTileMethod(Color.Rose, LuoBussi); 38 69 ruudut.SetTileMethod(Color.Black, LuoPiikkilanka); 39 70 ruudut.SetTileMethod(Color.Gray, LuoKivi); 40 ruudut.SetTileMethod(Color.Orange, Luo Puu);71 ruudut.SetTileMethod(Color.Orange, LuoVaakaPuu); 41 72 ruudut.SetTileMethod(Color.Red, LuoPystypiikkilanka); 42 ruudut.SetTileMethod(Color. Orange, LuoPuu);73 ruudut.SetTileMethod(Color.Blue, LuoPystyPuu); 43 74 ruudut.SetTileMethod(Color.Green, LuoNaamioverkko); 44 75 ruudut.SetTileMethod(Color.Purple, LuoLaatikko); 76 45 77 ruudut.Execute(50, 50); 46 47 78 Camera.ZoomToLevel(); 48 79 49 80 81 82 83 } 84 85 void LuoBussi(Vector paikka, double leveys, double korkeus) 86 { 87 PhysicsObject bussi = PhysicsObject.CreateStaticObject(161, 134); 88 bussi.Position = paikka; 89 bussi.Image = bussinkuva; 90 bussi.Shape = Shape.FromImage(bussinkuva); 91 Add(bussi); 50 92 } 51 93 … … 57 99 piikkilanka.CollisionIgnoreGroup = 1; 58 100 Add(piikkilanka); 59 101 60 102 } 61 103 … … 76 118 naamioverkko.CollisionIgnoreGroup = 1; 77 119 naamioverkko.IgnoresCollisionResponse = true; 78 79 Add(naamioverkko, 3); 80 } 81 120 121 Add(naamioverkko, 2); 122 } 82 123 83 124 void LuoKivi(Vector paikka, double leveys, double korkeus) … … 90 131 } 91 132 92 void LuoPuu(Vector paikka, double leveys, double korkeus) 93 { 94 PhysicsObject puu = PhysicsObject.CreateStaticObject(leveys, korkeus); 95 puu.Position = paikka; 96 puu.Image = puunKuva; 97 puu.CollisionIgnoreGroup = 1; 98 Add(puu); 99 100 } 101 133 void LuoVaakaPuu(Vector paikka, double leveys, double korkeus) 134 { 135 PhysicsObject vaakapuu = PhysicsObject.CreateStaticObject(leveys/2, korkeus); 136 vaakapuu.Position = paikka; 137 vaakapuu.Image = vaakapuunKuva; 138 vaakapuu.CollisionIgnoreGroup = 1; 139 Add(vaakapuu); 140 141 } 142 143 void LuoPystyPuu(Vector paikka, double leveys, double korkeus) 144 { 145 PhysicsObject pystypuu = PhysicsObject.CreateStaticObject(leveys/2, korkeus); 146 pystypuu.Position = paikka; 147 pystypuu.Image = pystypuunKuva; 148 pystypuu.CollisionIgnoreGroup = 1; 149 Add(pystypuu); 150 } 151 152 void LuoLaatikko(Vector paikka, double leveys, double korkeus) 153 { 154 laatikko = PhysicsObject.CreateStaticObject(leveys, korkeus); 155 laatikko.Position = paikka; 156 laatikko.Image = laatikonKuva; 157 AddCollisionHandler(laatikko, AnnaKamaa); 158 Add(laatikko); 159 } 160 161 162 163 #endregion 164 165 #region pelaaja1 102 166 void LuoPelaaja1() 103 167 { 104 pelaaja1 = new P hysicsObject(39, 57);168 pelaaja1 = new Pelaaja(28.5, 19.5); 105 169 pelaaja1.Image = pelaaja1Kuva; 170 pelaaja1.Shape = Shape.Circle; 171 pelaaja1.CanRotate = false; 172 pelaaja1.LinearDamping = 0.80; 173 pelaaja1.Tag = "pelaaja"; 174 pelaaja1.Nro = 1; 106 175 Add(pelaaja1); 107 } 108 176 177 178 AddCollisionHandler(pelaaja1, Pelaaja1Törmää); 179 LuoTähtäin(); 180 LuoTerveysmittari1(); 181 } 182 183 void Pelaaja1Törmää(PhysicsObject pelaaja1, PhysicsObject kohde) 184 { 185 if (kohde.Tag == "rynkynammus2") 186 { 187 pelaajan1terveys.Value = pelaajan1terveys.Value - 1; 188 } 189 190 } 191 192 void LuoTerveysmittari1() 193 { 194 ProgressBar elamaPalkki1 = new ProgressBar(150, 20); 195 elamaPalkki1.X = Screen.Left + 100; 196 elamaPalkki1.Y = Screen.Top - 30; 197 elamaPalkki1.BindTo(pelaaja1.Elamat); 198 Add(elamaPalkki1); 199 elamaPalkki1.BarColor = Color.Green; 200 elamaPalkki1.BorderColor = Color.White; 201 202 } 203 204 void LuoTähtäin() 205 { 206 tähtäin = new PhysicsObject(10.0, 10.0); 207 tähtäin.Shape = Shape.Circle; 208 tähtäin.Color = Color.Red; 209 tähtäin.IgnoresCollisionResponse = true; 210 tähtäin.IgnoresExplosions = true; 211 tähtäin.IgnoresPhysicsLogics = true; 212 Add(tähtäin, 3); 213 214 Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 215 pelaaja1.Position.ToString(); 216 tähtäin.Position.ToString(); 217 218 } 219 220 void Pelaaja1Ampuu() 221 { 222 pelaaja1.Ammu(); 223 } 224 225 void RynkynHylsy() 226 { 227 rynkynhylsy = new PhysicsObject(1, 5.5); 228 rynkynhylsy.Image = rynkynhylsynKuva; 229 rynkynhylsy.Position = pelaaja1.Position; 230 rynkynhylsy.Hit(new Vector(350.0, 0.0)); 231 Add(rynkynhylsy); 232 233 rynkynhylsy.IgnoresCollisionResponse = true; 234 rynkynhylsy.AngularVelocity = 10.0; 235 rynkynhylsy.AngularDamping = 0.95; 236 rynkynhylsy.LinearDamping = RandomGen.NextDouble(0.90, 0.99); 237 rynkynhylsy.MaximumLifetime = TimeSpan.FromSeconds(3.0); 238 239 } 240 241 void KuunteleLiiketta(AnalogState hiirenTila) 242 { 243 tähtäin.X = Mouse.PositionOnWorld.X; 244 tähtäin.Y = Mouse.PositionOnWorld.Y; 245 246 Vector hiirenLiike = hiirenTila.MouseMovement; 247 } 248 249 void LiikutaPelaajaa(PhysicsObject pelaaja, Vector suunta) 250 { 251 pelaaja.Move(suunta * 300); 252 } 253 254 void koordinaatit() 255 { 256 Label tekstikentta = new Label(); 257 Add(tekstikentta); 258 259 } 260 #endregion 261 262 #region pelaaja2 109 263 void LuoPelaaja2() 110 264 { 111 pelaaja2 = new PhysicsObject(50, 50); 112 } 113 265 pelaaja2 = new Pelaaja(28.5, 19.5); 266 pelaaja2.Image = pelaaja2Kuva; 267 pelaaja2.Shape = Shape.Circle; 268 pelaaja2.CanRotate = false; 269 pelaaja2.LinearDamping = 0.80; 270 pelaaja2.Nro = 2; 271 Add(pelaaja2); 272 AddCollisionHandler(pelaaja2, Pelaaja2Törmää); 273 pelaaja2.Tag = "pelaaja"; 274 LuoTerveysmittari2(); 275 } 276 277 void Pelaaja2Törmää(PhysicsObject pelaaja2, PhysicsObject kohde) 278 { 279 if (kohde.Tag == "rynkynammus1") 280 { 281 (pelaaja2 as Pelaaja).Elamat.Value--; 282 } 283 } 284 285 void LuoTerveysmittari2() 286 { 287 288 289 ProgressBar elamaPalkki2 = new ProgressBar(150, 20); 290 elamaPalkki2.X = Screen.Right - 100; 291 elamaPalkki2.Y = Screen.Top - 30; 292 elamaPalkki2.BindTo(pelaaja2.Elamat); 293 Add(elamaPalkki2); 294 elamaPalkki2.BarColor = Color.Green; 295 elamaPalkki2.BorderColor = Color.White; 296 } 297 298 void Pelaaja2Ampuu() 299 { 300 pelaaja2.Ammu(); 301 } 302 303 void LiikutaPelaajaa2(AnalogState tatinTila) 304 { 305 Vector tatinAsento = tatinTila.StateVector; 306 pelaaja2.Move(tatinAsento * 200); 307 } 308 309 void PyöritäPelaajaa2(AnalogState tatinTila) 310 { 311 Vector tatinAsento = tatinTila.StateVector; 312 pelaaja2.Angle = tatinAsento.Angle; 313 } 314 315 void RynkynHylsy2() 316 { 317 rynkynhylsy = new PhysicsObject(1, 5.5); 318 rynkynhylsy.Image = rynkynhylsynKuva; 319 rynkynhylsy.Position = pelaaja2.Position; 320 rynkynhylsy.Hit(new Vector(350.0, 0.0)); 321 Add(rynkynhylsy); 322 323 rynkynhylsy.IgnoresCollisionResponse = true; 324 rynkynhylsy.AngularVelocity = 10.0; 325 rynkynhylsy.AngularDamping = 0.95; 326 rynkynhylsy.LinearDamping = RandomGen.NextDouble(0.90, 0.99); 327 rynkynhylsy.MaximumLifetime = TimeSpan.FromSeconds(3.0); 328 329 } 330 331 #endregion 332 333 #region aseet 334 335 336 AssaultRifle LuoRynkky() 337 { 338 rynkky = new AssaultRifle(30, 10); 339 rynkky.IsVisible = false; 340 rynkky.Ammo.Value = 90; 341 //rynkky.ProjectileCollision = RynkynAmmusOsuu; 342 return rynkky; 343 344 } 345 346 AssaultRifle LuoPistooli() 347 { 348 pistooli = new AssaultRifle(30, 10); 349 pistooli.Ammo.Value = 50; 350 pistooli.FireRate = 2; 351 352 return pistooli; 353 354 } 355 356 AssaultRifle LuoMinigun() 357 { 358 minigun = new AssaultRifle(30, 10); 359 minigun.Ammo.Value = 1200; 360 minigun.FireRate = 30; 361 minigun.IsVisible = false; 362 minigun.IsVisible = false; 363 return minigun; 364 } 365 366 AssaultRifle LuoSnipa() 367 { 368 snipa = new AssaultRifle(30, 10); 369 snipa.Ammo.Value = 10; 370 snipa.FireRate = 1; 371 snipa.Power.DefaultValue = 1000; 372 snipa.IsVisible = false; 373 return snipa; 374 } 375 376 void AnnaKamaa(PhysicsObject laatikko, PhysicsObject kohde) 377 { 378 if (kohde.Tag == "pelaaja") 379 { 380 Pelaaja pelaaja = (kohde as Pelaaja); 381 int ase = RandomGen.NextInt(1, 5); 382 383 if (ase == 1) 384 { 385 pelaaja.LisaaAse(LuoPistooli()); 386 MessageDisplay.Add ("Pelaaja" + pelaaja.Nro + " sai pistoolin!"); 387 } 388 389 else if (ase == 2) 390 { 391 pelaaja.LisaaAse(LuoRynkky()); 392 MessageDisplay.Add("Pelaaja" + pelaaja.Nro + " sai rynkyn!"); 393 } 394 395 else if (ase == 3) 396 { 397 pelaaja.LisaaAse(LuoSnipa()); 398 MessageDisplay.Add("Pelaaja" + pelaaja.Nro + " sai tarkkuuskiväärin!"); 399 } 400 401 else if (ase == 4) 402 { 403 pelaaja.LisaaAse(LuoMinigun()); 404 MessageDisplay.Add("Pelaaja" + pelaaja.Nro + " sai minigunin!"); 405 } 406 407 408 } 409 410 if (kohde.Tag == "pelaaja 2") 411 { 412 413 414 } 415 416 } 417 418 #endregion 419 420 #region ohjaimet 114 421 void AsetaOhjaimet() 115 422 { … … 118 425 Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, "", pelaaja1, new Vector(0.0, 1.0)); 119 426 Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, "", pelaaja1, new Vector(0.0, -1.0)); 120 } 121 122 void LiikutaPelaajaa( PhysicsObject pelaaja, Vector suunta) 123 { 124 pelaaja.Velocity = suunta*300; 427 Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, "", pelaaja1, new Vector(-1.0, 0.0)); 428 Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, "", pelaaja1, new Vector(1.0, 0.0)); 429 Mouse.ListenWheel(VaihdaAsetta, "", pelaaja1); 430 Mouse.Listen(MouseButton.Left, ButtonState.Down, Pelaaja1Ampuu, null); 431 432 //Keyboeard.Listen(Key.2, buttons, VaihdaAsetta, null, pelaaja1, rynkky); 433 434 ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa2, null); 435 ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, PyöritäPelaajaa2, null); 436 ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Pelaaja2Ampuu, null); 437 438 Keyboard.Listen(Key.K, ButtonState.Pressed, koordinaatit, null); 439 440 Camera.Follow(pelaaja1, pelaaja2); 441 } 442 443 #endregion 444 445 void VaihdaAsetta(Pelaaja pelaaja) 446 { 447 pelaaja.VaihdaAse(Mouse.WheelChange); 448 } 449 450 protected override void Update(Time time) 451 { 452 base.Update(time); 453 Vector suunta = (tähtäin.Position - pelaaja1.Position).Normalize(); 454 pelaaja1.Angle = suunta.Angle; 455 456 457 458 125 459 } 126 460 } 461 462 public class Pelaaja : PhysicsObject 463 { 464 private List<Weapon> aseet; 465 private Weapon valittuAse = null; 466 467 public int Nro; 468 469 public DoubleMeter Elamat 470 { 471 get { return elamat; } 472 set { elamat = value; } 473 } 474 private DoubleMeter elamat; 475 476 477 public Pelaaja(double width, double height) 478 : base(width, height) 479 { 480 elamat = new DoubleMeter(10); 481 elamat.MaxValue = 10; 482 elamat.LowerLimit += Kuolema; 483 aseet = new List<Weapon>(); 484 } 485 486 private void Kuolema() 487 { 488 Explosion rajahdys = new Explosion(50); 489 rajahdys.Position = this.Position; 490 Add(rajahdys); 491 this.Destroy(); 492 } 493 494 public void LisaaAse(Weapon w) 495 { 496 if (!aseet.Contains(w)) 497 { 498 aseet.Add(w); 499 this.Add(w); 500 if (aseet.Count == 1) 501 valittuAse = aseet[0]; 502 } 503 } 504 505 public void PoistaAse(Weapon w) 506 { 507 if(!aseet.Contains(w)) 508 aseet.Remove(w); 509 } 510 511 public void VaihdaAse(int suunta) 512 { 513 if (aseet != null && aseet.Count > 1) 514 { 515 foreach (Weapon ase in aseet) 516 { 517 ase.IsVisible = false; 518 } 519 if (suunta > 0) 520 if (aseet.IndexOf(valittuAse)+1 >= aseet.Count) 521 valittuAse = aseet[0]; 522 else 523 valittuAse = aseet[aseet.IndexOf(valittuAse) + 1]; 524 if (suunta < 0) 525 if (aseet.IndexOf(valittuAse) - 1 < 0) 526 valittuAse = aseet[aseet.Count - 1]; 527 else 528 valittuAse = aseet[aseet.IndexOf(valittuAse) - 1]; 529 valittuAse.IsVisible = true; 530 } 531 } 532 533 public PhysicsObject Ammu() 534 { 535 if (valittuAse != null) 536 { 537 PhysicsObject ammus = valittuAse.Shoot(); 538 if (ammus != null) 539 { 540 return ammus; 541 } 542 } 543 return null; 544 } 545 546 } -
2012/30/MiskaK/MW2(My Warfare 2)/MW2(My Warfare 2)/MW2(My Warfare 2)Content/MW2(My Warfare 2)Content.contentproj
r3697 r3733 42 42 <Private>False</Private> 43 43 </Reference> 44 <Reference Include="TextFileContentExtension" />45 44 </ItemGroup> 46 45 <ItemGroup> … … 93 92 </Compile> 94 93 </ItemGroup> 94 <ItemGroup> 95 <Compile Include="rynkynhylsy.png"> 96 <Name>rynkynhylsy</Name> 97 <Importer>TextureImporter</Importer> 98 <Processor>TextureProcessor</Processor> 99 </Compile> 100 </ItemGroup> 101 <ItemGroup> 102 <Compile Include="pelaaja2.png"> 103 <Name>pelaaja2</Name> 104 <Importer>TextureImporter</Importer> 105 <Processor>TextureProcessor</Processor> 106 </Compile> 107 </ItemGroup> 108 <ItemGroup> 109 <Compile Include="kenttä1.png"> 110 <Name>kenttä1</Name> 111 <Importer>TextureImporter</Importer> 112 <Processor>TextureProcessor</Processor> 113 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 114 </Compile> 115 </ItemGroup> 116 <ItemGroup> 117 <Compile Include="puupysty.png"> 118 <Name>puupysty</Name> 119 <Importer>TextureImporter</Importer> 120 <Processor>TextureProcessor</Processor> 121 </Compile> 122 </ItemGroup> 123 <ItemGroup> 124 <Compile Include="puuvaaka.png"> 125 <Name>puuvaaka</Name> 126 <Importer>TextureImporter</Importer> 127 <Processor>TextureProcessor</Processor> 128 </Compile> 129 </ItemGroup> 130 <ItemGroup> 131 <Compile Include="kamaa.png"> 132 <Name>kamaa</Name> 133 <Importer>TextureImporter</Importer> 134 <Processor>TextureProcessor</Processor> 135 </Compile> 136 </ItemGroup> 137 <ItemGroup> 138 <Compile Include="bussi.png"> 139 <Name>bussi</Name> 140 <Importer>TextureImporter</Importer> 141 <Processor>TextureProcessor</Processor> 142 </Compile> 143 </ItemGroup> 144 <ItemGroup> 145 <Compile Include="kipinä1.png"> 146 <Name>kipinä1</Name> 147 <Importer>TextureImporter</Importer> 148 <Processor>TextureProcessor</Processor> 149 </Compile> 150 <Compile Include="kivisirpale1.png"> 151 <Name>kivisirpale1</Name> 152 <Importer>TextureImporter</Importer> 153 <Processor>TextureProcessor</Processor> 154 </Compile> 155 <Compile Include="kivisirpale2.png"> 156 <Name>kivisirpale2</Name> 157 <Importer>TextureImporter</Importer> 158 <Processor>TextureProcessor</Processor> 159 </Compile> 160 <Compile Include="puusirpale1.png"> 161 <Name>puusirpale1</Name> 162 <Importer>TextureImporter</Importer> 163 <Processor>TextureProcessor</Processor> 164 </Compile> 165 <Compile Include="veriroiske1.png"> 166 <Name>veriroiske1</Name> 167 <Importer>TextureImporter</Importer> 168 <Processor>TextureProcessor</Processor> 169 </Compile> 170 </ItemGroup> 95 171 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 96 172 <!-- 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.