- Timestamp:
- 2015-07-02 14:57:08 (8 years ago)
- Location:
- 2015/27/AakeR/IMBT
- Files:
-
- 15 added
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/27/AakeR/IMBT/IMBT/IMBT/IMBT.cs
r6689 r6762 10 10 { 11 11 public DoubleMeter healthit; 12 12 public bool savuttaa = false; 13 public bool boosti = true; 13 14 public AssaultRifle Ase; 14 15 public Pelaaja(double leveys, double korkeus, Image pelaajanKuva, Image tykkiTorninKuva) : base(leveys, korkeus) 16 { 15 public bool telaJaljetLimit; 16 17 public Pelaaja(double leveys, double korkeus, Image pelaajanKuva, Image tykkiTorninKuva, Image rajahdysKuva, Image liekkiKuva) 18 : base(leveys, korkeus) 19 { 20 17 21 this.Image = pelaajanKuva; 18 22 this.healthit = new DoubleMeter(100, 0, 100); 19 23 this.LinearDamping = 0.95; 20 this.healthit.LowerLimit += delegate() { 21 24 this.telaJaljetLimit = true; 25 this.Tag = "pelaaja"; 26 this.healthit.LowerLimit += delegate() 27 { 28 22 29 Explosion rajahdys = new Explosion(200); 30 rajahdys.ShockwaveReachesObject += delegate(IPhysicsObject pelaajaJohonPaineaaltoOsui, Vector voima) 31 { 32 if (pelaajaJohonPaineaaltoOsui.Tag.Equals("pelaaja")) 33 { 34 (pelaajaJohonPaineaaltoOsui as Pelaaja).healthit.Value -= 1000; 35 SavuLiekki(); 36 } 37 }; 38 rajahdys.Image = rajahdysKuva; 39 rajahdys.Tag = "rajahdys"; 23 40 rajahdys.Position = this.Position; 24 41 ((IMBT)Game.Instance).Add(rajahdys); … … 29 46 }; 30 47 31 ((IMBT)Game.Instance).AddCollisionHandler(this, "ammus", delegate(PhysicsObject a, PhysicsObject b) 32 { 33 this.healthit.Value -= 5000; 48 ((IMBT)Game.Instance).AddCollisionHandler(this, "perusAmmus", delegate(PhysicsObject a, PhysicsObject b) 49 { 50 this.healthit.Value -= 4; 51 SavuLiekki(); 52 }); 53 ((IMBT)Game.Instance).AddCollisionHandler(this, "raketti", delegate(PhysicsObject a, PhysicsObject b) 54 { 55 this.healthit.Value -= 4; 56 SavuLiekki(); 57 }); 58 ((IMBT)Game.Instance).AddCollisionHandler(this, "pallo", delegate(PhysicsObject a, PhysicsObject b) 59 { 60 this.healthit.Value -= 20; 61 SavuLiekki(); 62 }); 63 ((IMBT)Game.Instance).AddCollisionHandler(this, "rajahdys", delegate(PhysicsObject a, PhysicsObject b) 64 { 65 this.healthit.Value -= 1000; 66 SavuLiekki(); 34 67 }); 35 68 36 69 this.Ase = new AssaultRifle(30, 30); 37 70 this.Ase.Image = tykkiTorninKuva; 38 this.Add(this.Ase); 39 71 72 Game.Instance.Add(Ase, 1); 73 74 Timer ajastin = new Timer(); 75 ajastin.Interval = 0.01; 76 ajastin.Timeout += delegate 77 { 78 Ase.Position = this.Position; 79 }; 80 ajastin.Start(); 81 82 83 } 84 85 public void SavuLiekki() 86 { 87 if (this.healthit.Value < this.healthit.MaxValue / 2) 88 { 89 if (this.savuttaa == false) 90 { 91 Smoke savu = new Smoke(); 92 Game.Instance.Add(savu); 93 savu.Position = this.Position; 94 Timer seuraajaAjastin = new Timer(); 95 seuraajaAjastin.Interval = 0.1; 96 seuraajaAjastin.Timeout += delegate 97 { 98 savu.Position = this.Position; 99 }; 100 seuraajaAjastin.Start(); 101 this.savuttaa = true; 102 } 103 } 104 105 if (this.healthit.Value < this.healthit.MaxValue / 4) 106 { 107 108 Flame liekki = new Flame(((IMBT)Game.Instance).liekkiKuva); 109 Game.Instance.Add(liekki); 110 liekki.Position = this.Position; 111 Timer seuraajaAjastin = new Timer(); 112 seuraajaAjastin.Interval = 0.1; 113 seuraajaAjastin.Timeout += delegate 114 { 115 liekki.Position = this.Position; 116 }; 117 seuraajaAjastin.Start(); 118 this.savuttaa = true; 119 120 } 40 121 41 122 } … … 58 139 Image pelaaja1Kone1Tykki = LoadImage("Pelaaja1Kone1Tykki"); 59 140 Image perusAmmus = LoadImage("Kone1PerusAmmus"); 141 Image rakettiKuva = LoadImage("Raketti"); 142 Image palloKuva = LoadImage("KimpoilevaPallo"); 143 Image telaJaljetKuva = LoadImage("RenkaidenJäljet"); 144 Image rajahdysKuva = LoadImage("Rajahdys"); 145 public Image liekkiKuva = LoadImage("Liekki"); 60 146 SoundEffect ammusAani = LoadSoundEffect("AmmusÄäni"); 147 SoundEffect raketinAani = LoadSoundEffect("RakettiAani"); 148 SoundEffect palloAani = LoadSoundEffect("PalloAani"); 61 149 Pelaaja pelaaja1; 62 150 double maxNopeus = 1000.0; 151 152 //TODO Alkuvalikko 153 //TODO Boosti 63 154 64 155 public override void Begin() … … 73 164 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä1"); 74 165 75 166 76 167 ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja1); 77 168 ruudut.SetTileMethod(Color.Cyan, LuoPelaaja2); … … 80 171 ruudut.SetTileMethod(Color.Black, LuoPalikka); 81 172 Level.Background.Color = Color.Silver; 82 173 83 174 ruudut.Execute(80, 80); 84 175 Camera.ZoomToLevel(); … … 87 178 void LuoPelaaja1(Vector paikka, double leveys, double korkeus) 88 179 { 89 pelaaja1 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja1Kone1, pelaaja1Kone1Tykki );180 pelaaja1 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja1Kone1, pelaaja1Kone1Tykki, rajahdysKuva, liekkiKuva); 90 181 pelaaja1.AngularDamping = 0.95; 91 182 pelaaja1.Position = paikka; … … 93 184 ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaPelaajaa, "", pelaaja1); 94 185 ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaTykkia, "", pelaaja1); 95 ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, Ammu, "", pelaaja1); 186 ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Ammu, "", pelaaja1, "perus"); 187 ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, Ammu, "", pelaaja1, "raketti"); 188 ControllerOne.Listen(Button.RightShoulder, ButtonState.Pressed, Ammu, "", pelaaja1, "pallo"); 189 ControllerOne.Listen(Button.LeftShoulder, ButtonState.Pressed, Boosti, "", pelaaja1); 96 190 Add(pelaaja1); 97 LuoElamaLaskuri(pelaaja1);98 191 } 99 192 … … 110 203 void LuoPelaaja2(Vector paikka, double leveys, double korkeus) 111 204 { 112 Pelaaja pelaaja2 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja2Kone1, pelaaja2Kone1Tykki );205 Pelaaja pelaaja2 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja2Kone1, pelaaja2Kone1Tykki, rajahdysKuva, liekkiKuva); 113 206 pelaaja2.AngularDamping = 0.1; 114 207 pelaaja2.Position = paikka; 115 208 ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaPelaajaa, "", pelaaja2); 116 209 ControllerTwo.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaTykkia, "", pelaaja2); 117 ControllerTwo.Listen(Button.RightTrigger, ButtonState.Pressed, Ammu, "", pelaaja2); 210 ControllerTwo.Listen(Button.RightTrigger, ButtonState.Down, Ammu, "", pelaaja2, "perus"); 211 ControllerTwo.Listen(Button.LeftTrigger, ButtonState.Pressed, Ammu, "", pelaaja2, "raketti"); 212 ControllerTwo.Listen(Button.RightShoulder, ButtonState.Pressed, Ammu, "", pelaaja2, "pallo"); 213 ControllerTwo.Listen(Button.LeftShoulder, ButtonState.Pressed, Boosti, "", pelaaja2); 118 214 Add(pelaaja2); 119 LuoElamaLaskuri(pelaaja2);120 215 } 121 216 122 217 void LuoPelaaja3(Vector paikka, double leveys, double korkeus) 123 218 { 124 Pelaaja pelaaja3 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja3Kone1, pelaaja3Kone1Tykki );219 Pelaaja pelaaja3 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja3Kone1, pelaaja3Kone1Tykki, rajahdysKuva, liekkiKuva); 125 220 pelaaja3.AngularDamping = 0.95; 126 221 pelaaja3.Position = paikka; 127 222 ControllerThree.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaPelaajaa, "", pelaaja3); 128 223 ControllerThree.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaTykkia, "", pelaaja3); 129 ControllerThree.Listen(Button.RightTrigger, ButtonState.Pressed, Ammu, "", pelaaja3); 224 ControllerThree.Listen(Button.RightTrigger, ButtonState.Down, Ammu, "", pelaaja3, "perus"); 225 ControllerThree.Listen(Button.LeftTrigger, ButtonState.Pressed, Ammu, "", pelaaja3, "raketti"); 226 ControllerThree.Listen(Button.RightShoulder, ButtonState.Down, Ammu, "", pelaaja3, "pallo"); 227 ControllerThree.Listen(Button.LeftShoulder, ButtonState.Pressed, Boosti, "", pelaaja3); 130 228 Add(pelaaja3); 131 229 } … … 133 231 void LuoPelaaja4(Vector paikka, double leveys, double korkeus) 134 232 { 135 Pelaaja pelaaja4 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja4Kone1, pelaaja4Kone1Tykki);233 Pelaaja pelaaja4 = new Pelaaja(leveys * 0.8, korkeus * 0.8, pelaaja4Kone1, pelaaja4Kone1Tykki, rajahdysKuva, liekkiKuva); 136 234 pelaaja4.AngularDamping = 0.95; 137 235 pelaaja4.Position = paikka; 138 236 ControllerFour.ListenAnalog(AnalogControl.LeftStick, 0.0, KaannaPelaajaa, "", pelaaja4); 139 237 ControllerFour.ListenAnalog(AnalogControl.RightStick, 0.0, KaannaTykkia, "", pelaaja4); 140 ControllerFour.Listen(Button.RightTrigger, ButtonState.Pressed, Ammu, "", pelaaja4); 238 ControllerFour.Listen(Button.RightTrigger, ButtonState.Down, Ammu, "", pelaaja4, "perus"); 239 ControllerFour.Listen(Button.LeftTrigger, ButtonState.Pressed, Ammu, "", pelaaja4, "raketti"); 240 ControllerFour.Listen(Button.RightShoulder, ButtonState.Pressed, Ammu, "", pelaaja4, "pallo"); 241 ControllerFour.Listen(Button.LeftShoulder, ButtonState.Pressed, Boosti, "", pelaaja4); 141 242 Add(pelaaja4); 142 243 } … … 146 247 ProgressBar elamaPalkki = new ProgressBar(150, 20); 147 248 elamaPalkki.BindTo(pelaaja.healthit); 148 249 149 250 Timer ajastin = new Timer(); 150 251 ajastin.Interval = 0.01; … … 155 256 156 257 ajastin.Start(); 157 //Add(elamaPalkki);158 }159 160 161 void LiikutaPelaajaa(Vector vektori, PhysicsObject pelaaja)162 {163 pelaaja.Push(vektori);164 258 } 165 259 … … 168 262 Angle vanhaKulma = pelaaja.Angle; 169 263 pelaaja.Angle = tatinTila.StateVector.Angle; 264 265 Angle kulmanMuutos = pelaaja.Angle - vanhaKulma; 266 267 if (pelaaja.telaJaljetLimit) 268 { 269 pelaaja.telaJaljetLimit = false; 270 271 GameObject telaJaljet = new GameObject(telaJaljetKuva); 272 telaJaljet.Angle = pelaaja.Angle; 273 telaJaljet.Position = pelaaja.Position; 274 Add(telaJaljet, -1); 275 276 Timer.SingleShot(0.05, delegate { pelaaja.telaJaljetLimit = true; }); 277 278 Timer.SingleShot(RandomGen.NextDouble(2.0, 20.0), delegate { telaJaljet.Destroy(); }); 279 } 280 281 pelaaja.Push(tatinTila.StateVector * maxNopeus); 282 283 } 284 285 void KaannaTykkia(AnalogState tatinTila, Pelaaja pelaaja) 286 { 287 pelaaja.Ase.AbsoluteAngle = tatinTila.StateVector.Angle; 288 } 289 290 void Ammu(Pelaaja pelaaja, String ammusTyyppi) 291 { 292 293 PhysicsObject ammus = pelaaja.Ase.Shoot(); 294 if (ammus != null) 295 { 296 switch (ammusTyyppi) 297 { 298 case "perus": 299 ammusAani.Play(); 300 ammus.Image = perusAmmus; 301 ammus.Tag = "perusAmmus"; 302 AddCollisionHandler(ammus, delegate(PhysicsObject a, PhysicsObject b) 303 { 304 a.Destroy(); 305 }); 306 pelaaja.Ase.FireRate = 10; 307 break; 308 case "raketti": 309 raketinAani.Play(); 310 ammus.Image = rakettiKuva; 311 ammus.Tag = "raketti"; 312 ammus.Size *= 2; 313 AddCollisionHandler(ammus, delegate(PhysicsObject a, PhysicsObject b) 314 { 315 a.Destroy(); 316 Explosion rajahdys = new Explosion(140); 317 rajahdys.Position = a.Position; 318 rajahdys.ShockwaveReachesObject += RajahdysOsuu; 319 Add(rajahdys); 320 raketinAani.Stop(); 321 }); 322 pelaaja.Ase.FireRate = 1; 323 break; 324 case "pallo": 325 palloAani.Play(); 326 ammus.Image = palloKuva; 327 ammus.Tag = "pallo"; 328 ammus.Size *= 4; 329 ammus.MaximumLifetime = new TimeSpan(0, 0, 4); 330 pelaaja.Ase.FireRate = 0.5; 331 break; 332 default: 333 break; 334 } 335 336 ammus.Position += pelaaja.Ase.Angle.GetVector() * 70; 337 338 339 } 340 341 } 342 343 void RajahdysOsuu(IPhysicsObject olio, Vector suunta) 344 { 345 if (olio.Tag.Equals("pelaaja")) 346 { 347 ((Pelaaja)olio).healthit.Value -= 12; 348 ((Pelaaja)olio).SavuLiekki(); 349 } 350 } 351 352 void Boosti(Pelaaja pelaaja) 353 { 354 if (pelaaja.boosti) 355 { 356 pelaaja.boosti = false; 357 pelaaja.Hit(pelaaja.Angle.GetVector() * 1000); 358 Timer.SingleShot(5, delegate 359 { 360 pelaaja.boosti = true; 361 }); 362 } 170 363 171 Angle kulmanMuutos = pelaaja.Angle - vanhaKulma;172 173 pelaaja.Ase.AbsoluteAngle -= kulmanMuutos;174 //pelaaja.elamaPalkki.AbsoluteAngle;175 176 pelaaja.Push(tatinTila.StateVector * maxNopeus);177 178 }179 180 void KaannaTykkia(AnalogState tatinTila, Pelaaja pelaaja)181 {182 pelaaja.Ase.AbsoluteAngle = tatinTila.StateVector.Angle;183 }184 185 void Ammu(Pelaaja pelaaja)186 {187 188 PhysicsObject ammus = pelaaja.Ase.Shoot();189 if (ammus!=null)190 {191 ammusAani.Play();192 ammus.Image = perusAmmus;193 ammus.Tag = "ammus";194 AddCollisionHandler(ammus, delegate(PhysicsObject a, PhysicsObject b)195 {196 a.Destroy();197 });198 }199 200 364 } 201 365 } -
2015/27/AakeR/IMBT/IMBT/IMBT/IMBT.csproj.Debug.cachefile
r6657 r6762 10 10 Content\Pelaaja3Kone1Tykki.xnb 11 11 Content\Pelaaja4Kone1Tykki.xnb 12 Content\Kone1PerusAmmus.xnb 12 13 Content\AmmusÃÀni.xnb 13 Content\Kone1PerusAmmus.xnb 14 Content\KimpoilevaPallo.xnb 15 Content\Raketti.xnb 16 Content\RenkaidenJÀljet.xnb 17 Content\Rajahdys.xnb 18 Content\Liekki.xnb 19 Content\RakettiAani.xnb 20 Content\PalloAani.xnb -
2015/27/AakeR/IMBT/IMBT/IMBT/obj/x86/Debug/IMBT.csproj.FileListAbsolute.txt
r6657 r6762 20 20 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\AmmusÃÀni.xnb 21 21 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\Kone1PerusAmmus.xnb 22 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\KimpoilevaPallo.xnb 23 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\Raketti.xnb 24 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\RenkaidenJÀljet.xnb 25 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\Rajahdys.xnb 26 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\Liekki.xnb 27 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\RakettiAani.xnb 28 C:\MyTemp\AakeR\IMBT\IMBT\IMBT\bin\x86\Debug\Content\PalloAani.xnb -
2015/27/AakeR/IMBT/IMBT/IMBT/obj/x86/Debug/cachefile-{B6A1F4C9-F2E2-4290-A5B5-3717058CC989}-targetpath.txt
r6657 r6762 10 10 Content\Pelaaja3Kone1Tykki.xnb 11 11 Content\Pelaaja4Kone1Tykki.xnb 12 Content\Kone1PerusAmmus.xnb 12 13 Content\AmmusÃÀni.xnb 13 Content\Kone1PerusAmmus.xnb 14 Content\KimpoilevaPallo.xnb 15 Content\Raketti.xnb 16 Content\RenkaidenJÀljet.xnb 17 Content\Rajahdys.xnb 18 Content\Liekki.xnb 19 Content\RakettiAani.xnb 20 Content\PalloAani.xnb -
2015/27/AakeR/IMBT/IMBT/IMBTContent/IMBTContent.contentproj
r6657 r6762 124 124 </Compile> 125 125 </ItemGroup> 126 <ItemGroup> 127 <Compile Include="KimpoilevaPallo.png"> 128 <Name>KimpoilevaPallo</Name> 129 <Importer>TextureImporter</Importer> 130 <Processor>TextureProcessor</Processor> 131 </Compile> 132 <Compile Include="Raketti.png"> 133 <Name>Raketti</Name> 134 <Importer>TextureImporter</Importer> 135 <Processor>TextureProcessor</Processor> 136 </Compile> 137 </ItemGroup> 138 <ItemGroup> 139 <Compile Include="RenkaidenJäljet.png"> 140 <Name>RenkaidenJäljet</Name> 141 <Importer>TextureImporter</Importer> 142 <Processor>TextureProcessor</Processor> 143 </Compile> 144 </ItemGroup> 145 <ItemGroup> 146 <Compile Include="Rajahdys.png"> 147 <Name>Rajahdys</Name> 148 <Importer>TextureImporter</Importer> 149 <Processor>TextureProcessor</Processor> 150 </Compile> 151 </ItemGroup> 152 <ItemGroup> 153 <Compile Include="Liekki.png"> 154 <Name>Liekki</Name> 155 <Importer>TextureImporter</Importer> 156 <Processor>TextureProcessor</Processor> 157 </Compile> 158 </ItemGroup> 159 <ItemGroup> 160 <Compile Include="RakettiAani.wav"> 161 <Name>RakettiAani</Name> 162 <Importer>WavImporter</Importer> 163 <Processor>SoundEffectProcessor</Processor> 164 </Compile> 165 </ItemGroup> 166 <ItemGroup> 167 <Compile Include="PalloAani.wav"> 168 <Name>PalloAani</Name> 169 <Importer>WavImporter</Importer> 170 <Processor>SoundEffectProcessor</Processor> 171 </Compile> 172 </ItemGroup> 126 173 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 127 174 <!-- 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.