- Timestamp:
- 2012-06-07 15:19:04 (11 years ago)
- Location:
- 2012/23/JimB/NameInPending/NameinPending/NameinPending
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/23/JimB/NameInPending/NameinPending/NameinPending/NameinPending/NameinPending.cs
r2832 r2836 6 6 using Jypeli.Effects; 7 7 using Jypeli.Widgets; 8 9 class PeliUkko : PhysicsObject 8 /// <summary> 9 /// Pelaajan luokka -> Pelihahmon asetuksia voi lisätä tänne. 10 /// </summary> 11 class PeliUkko : PhysicsObject 10 12 { 11 public IntMeter Elamat; 12 public Explosion ViimeisinRajahdys = null; 13 public bool aseValmiina = true; 14 public bool naattiValmiina = true; 15 16 public PeliUkko(double leveys, double korkeus) 17 : base(leveys, korkeus) 18 { 19 Elamat = new IntMeter(50, 0, 100); 13 public IntMeter Elamat; //Antaa PeliUkko luokalle mittarin nimellä elmät. 14 public Explosion ViimeisinRajahdys = null; //Estää monen räjähdyksen tulemisen samaan aikaan bugin takia. 15 public bool aseValmiina = true; //->Ei supersarjatulta. 16 public bool naattiValmiina = true; //->Ei naattispämmiä 17 18 public PeliUkko(double leveys, double korkeus) //double = desimaaliluku 19 : base(leveys, korkeus) //ottaa PeliUkon koon desimaaleina 20 { 21 Elamat = new IntMeter(50, 0, 100); //Default HP, Min HP, Max HP 20 22 } 21 23 } 22 23 24 25 24 public class NameinPending : PhysicsGame 26 25 { 27 26 28 PeliUkko pelaaja1, pelaaja2, pelaaja3, pelaaja4; 29 double ampumisnopeus = 450; 30 ExplosionSystem NaattiPoks; 31 IntMeter Pelaajat = new IntMeter (4);32 //PhysicsObject naatti;33 34 void ResetPelaajat() 27 PeliUkko pelaaja1, pelaaja2, pelaaja3, pelaaja4; //määrittää pelaajat attribuuteiksi jotta niitä voi käyttää kaikissa aliohjelmissa 28 double ampumisnopeus = 450; //<- 29 ExplosionSystem NaattiPoks; //räjähdyksen partikkelit 30 IntMeter Pelaajat = new IntMeter(4); //Hengissä olevien pelaajien lukumäärä. 31 ExplosionSystem veri; //veripartikkelit 32 bool onkoPeliFullS = false; //fullscreen, 0 false, 1 true. 33 void ResetPelaajat() //resetoi pelaajien määrän neljään uuden pelin aloituksessa. 35 34 { 36 35 Pelaajat = new IntMeter(4); 37 36 } 37 38 /// <summary> 39 /// ylikirjoittaa oletus PhysicsGame:n Begin metodin 40 /// </summary> 38 41 public override void Begin() 39 42 { 40 IsFullScreen= (true);41 NaattiPoks = new ExplosionSystem(LoadImage("naattishard"), 1500);42 Add(NaattiPoks);43 // TODO: Kirjoita ohjelmakoodisi tähän44 LuoKentta();45 46 MessageDisplay.Add("F1 - Näytä Ohjaimet"); 47 Keyboard.Listen(Key.F1, ButtonState.Pressed, Ohjeet, "Näytä ohjaimet"); 48 43 NaattiPoks = new ExplosionSystem(LoadImage("naattishard"), 1500); //määritetään räjähdyksen partikkelikuva ja niiden maximi määrä 44 Add(NaattiPoks); //lisätään räjähdys peliin (ei näkyviin, mutta niin että se on olemassa) 45 SetWindowSize(1024, 768, false); //false=ei Full, true = full 46 LuoKentta(); //kutsutaan kentänluonti 47 Veri(); //kutsutaan veripartikkelit 48 49 MessageDisplay.Add("F1 - Näytä Ohjaimet"); //lisätään viestilaatikkoon ohje. 50 Keyboard.Listen(Key.F1, ButtonState.Pressed, Ohjeet, "Näytä ohjaimet"); //Kutsutaan Ohjeet 51 Keyboard.Listen(Key.F11, ButtonState.Pressed, Fullscreen,null); 49 52 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 53 } 54 void Fullscreen() 55 { 56 if (onkoPeliFullS) // jos on koko ruutu 57 { 58 SetWindowSize(1024, 768, false); onkoPeliFullS = false; 59 return; 60 } 61 SetWindowSize(1024, 768, true); onkoPeliFullS = true; 50 62 } 51 63 void Ohjeet() … … 55 67 MessageDisplay.Add("Pelaaja 3 - TFGH - R ampuminen - Y Kranaatti"); 56 68 MessageDisplay.Add("Pelaaja 4 - IJKL - U ampuminen - O Kranaatti"); 69 MessageDisplay.Add("F11 -> Fullscreen/Windowed *BUGS ON 16:10*"); 57 70 } 58 71 void LuoKentta() 59 72 { 60 TileMap ruudut = TileMap.FromLevelAsset("level"); 61 //TileMap pelaaja = TileMap.FromLevelAsset("level"); 62 ruudut.SetTileMethod('=', LuoPalikka); 63 ruudut.SetTileMethod('s', LuoPalikka); 64 ruudut.SetTileMethod('1', LuoPelaaja1); 65 ruudut.SetTileMethod('2', LuoPelaaja2); 66 ruudut.SetTileMethod('3', LuoPelaaja3); 67 ruudut.SetTileMethod('4', LuoPelaaja4); 68 ruudut.Execute(25, 25); 69 70 Level.Background.Image = LoadImage("bg"); 73 TileMap ruudut = TileMap.FromLevelAsset("level"); //ladataan kenttä level.txt tiedostosta. 74 ruudut.SetTileMethod('=', LuoPalikka); //säädetään mitä mikäkin merkki tekstissä on pelissä 75 ruudut.SetTileMethod('s', LuoPalikka); // | 76 ruudut.SetTileMethod('1', LuoPelaaja1);// | 77 ruudut.SetTileMethod('2', LuoPelaaja2);// | 78 ruudut.SetTileMethod('3', LuoPelaaja3);// | 79 ruudut.SetTileMethod('4', LuoPelaaja4);// V 80 ruudut.Execute(25, 25); //Kutsutaan ruudut 25x25 kokoisina. 81 82 Level.Background.Image = LoadImage("bg"); //Määritetään taustakuva. 71 83 Camera.ZoomToLevel(); 84 } 85 void LuoPalikka(Vector paikka, double leveys, double korkeus) 86 { 87 PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); //staattinen objekti->ei liiku. 88 palikka.Position = paikka; 89 palikka.Image = LoadImage("seinaTekstuuri"); 90 palikka.Tag = "Seinä"; 91 palikka.Restitution = 0; //kimmoisuus 0 92 palikka.Shape = Shape.Rectangle; 93 palikka.Color = Color.White; 94 Add(palikka); 72 95 } 73 96 void LuoPelaaja1(Vector paikka, double leveys, double korkeus) … … 76 99 pelaaja1 = LuoPelaaja(paikka); 77 100 pelaaja1.Image = LoadImage("Pelaaja1"); 78 pelaaja1.CollisionIgnoreGroup = 1; 79 80 LuoHPNaytto(Screen.Left + 50, Screen.Top - 50, pelaaja1.Elamat, Color.Blue); 81 101 pelaaja1.CollisionIgnoreGroup = 1; //omat luodit eivät osu -> tämän pelaajan luodit ovat collisonignoregroup 1:ssä myös + kranaatit. 102 103 LuoHPNaytto(Screen.Left + 10, Screen.Top - 10, pelaaja1.Elamat, Color.Blue); 104 105 //Kontrollit: 82 106 Keyboard.Listen(Key.A, ButtonState.Down, Liike, null, pelaaja1, new Vector(-200, 0)); 83 107 Keyboard.Listen(Key.A, ButtonState.Released, Liike, null, pelaaja1, new Vector(0, 0)); … … 97 121 pelaaja2.Image = LoadImage("Pelaaja2"); 98 122 pelaaja2.CollisionIgnoreGroup = 2; 99 LuoHPNaytto(Screen.Right - 50, Screen.Top - 50, pelaaja2.Elamat, Color.Yellow);123 LuoHPNaytto(Screen.Right - 10, Screen.Top - 10, pelaaja2.Elamat, Color.Yellow); 100 124 101 125 … … 117 141 pelaaja3.Image = LoadImage("Pelaaja3"); 118 142 pelaaja3.CollisionIgnoreGroup = 3; 119 LuoHPNaytto(Screen.Right - 50, Screen.Bottom + 50, pelaaja3.Elamat, Color.Red);143 LuoHPNaytto(Screen.Right - 10, Screen.Bottom + 10, pelaaja3.Elamat, Color.Red); 120 144 121 145 … … 137 161 pelaaja4.Image = LoadImage("Pelaaja4"); 138 162 pelaaja4.CollisionIgnoreGroup = 4; 139 LuoHPNaytto(Screen.Left + 50, Screen.Bottom + 50, pelaaja4.Elamat, Color.Purple);163 LuoHPNaytto(Screen.Left + 10, Screen.Bottom + 10, pelaaja4.Elamat, Color.Purple); 140 164 141 165 … … 157 181 PeliUkko pelaaja = new PeliUkko(18, 18); 158 182 pelaaja.Restitution = 0; 159 pelaaja.AngularDamping = Double.Epsilon; 160 pelaaja.Position = paikka; 161 pelaaja.Shape = Shape.Circle; 183 pelaaja.AngularDamping = Double.Epsilon; //pelaaja ei pyöri törmätessään kulmiin, 0 ei toimi, joten Double.Epsilon on pienin mahdollinen luku. 184 pelaaja.Position = paikka; //Vector paikka -> katsoo ketä pelaajaa luodaan ja pistää sen sen pelaajan sijaintiin level.txt:ssä. 185 pelaaja.Shape = Shape.Circle; //pelaaja on pallo tekstuurin alla :P 162 186 Add(pelaaja); 163 AddCollisionHandler<PeliUkko, PhysicsObject>(pelaaja, "bullet", Osuma); 164 165 return pelaaja; 187 AddCollisionHandler<PeliUkko, PhysicsObject>(pelaaja, "bullet", Osuma); //jos pelaajaan osuu luoti, kutsutaan osuma, joka vähentää pelaajan HP. 188 189 return pelaaja; //palautetaan luotu pelaaja LuoPelaajaX:lle 166 190 167 191 } 168 192 void KukaKuoli(PeliUkko ukko) 169 193 { 170 int PelaajanNumero = 1337; 171 Pelaajat.Value -= 1; 194 int PelaajanNumero = 1337; //noh, niin :D 195 Pelaajat.Value -= 1; //vähennetään yksi pelaajien lukumäärästä kun joku kuolee. Tämä siksi että peli tietää katsoa kuka on viimeinen hengissä ja ilmoittaa voitosta. 172 196 if (ukko == pelaaja1) 173 197 { 174 MessageDisplay.Add("Pelaaja 1 kuoli!"); 198 MessageDisplay.Add("Pelaaja 1 kuoli!"); //Jos ukko (tässä tapauksessa kuolija -> määritetty kuolintapahtumassa) on pelaaja 1, Se ilmoitetaan. 175 199 } 176 200 else if (ukko == pelaaja2) … … 186 210 MessageDisplay.Add("Pelaaja 4 kuoli!"); 187 211 } 188 else MessageDisplay.Add("WTF?"); 189 212 else MessageDisplay.Add("WTF?"); //älkää kysykö ;) 213 214 //jos pelaajia on 1 tai vähemmän... 190 215 if (Pelaajat.Value <= 1) 191 192 { 193 if (!pelaaja1.IsDestroyed) PelaajanNumero = 1; 194 else if (!pelaaja2.IsDestroyed) PelaajanNumero = 2; 216 { 217 if (!pelaaja1.IsDestroyed) PelaajanNumero = 1; //tarkistetaa onko pelaaja "EI" tuhottu-> 218 else if (!pelaaja2.IsDestroyed) PelaajanNumero = 2; //else tarkistetaan onko se pelaaja 2. 195 219 else if (!pelaaja3.IsDestroyed) PelaajanNumero = 3; 196 220 else if (!pelaaja4.IsDestroyed) PelaajanNumero = 4; 197 Label Voitto = new Label("Pelaaja" + PelaajanNumero + "Voittaa ");198 Add(Voitto); 199 Timer.SingleShot(2.5, delegate { UusiPeli(); }); 200 201 } 202 221 Label Voitto = new Label("Pelaaja" + PelaajanNumero + "Voittaa!"); //teksti keskelle ruutua. "Pelaaja" + Sen pelaajan numero joka ei ollut tuhottu + "Voittaa!" 222 Add(Voitto); //lisätään se viellä näytölle. 223 Timer.SingleShot(2.5, delegate { UusiPeli(); }); //ajastin ennenkuin promptataan uuden pelin alkua. delegate -> saadaan ns. aliohjelma ilman aliohjelmaa, yhdelle riville. 224 225 } 226 } 203 227 void UusiPeli() 204 228 { 205 229 MultiSelectWindow UusiPeli = new MultiSelectWindow("Pelataanko uusi peli?", "Kyllä", "Ei"); 206 UusiPeli.ItemSelected += PainettiinValikonNappia; 230 UusiPeli.ItemSelected += PainettiinValikonNappia; //mitä painettiin? Lisätään muuttujaan monesko nappi. 1 nappi = 0. 2 nappi on 1. 207 231 Add(UusiPeli); 208 232 } … … 211 235 switch (valinta) 212 236 { 213 case 0: 214 ClearAll(); 215 ResetPelaajat(); 216 Begin(); 237 case 0: //Jos muuttuja oli 0, eli ensimmäinen nappi, aloitetaan uusi peli 238 ClearAll(); //puhdistetaan "melkein kaikki 239 ResetPelaajat(); //nollataan pelaajat takaisin neljään, koska muuten heitä olisi enään 1 240 Begin(); //aloitetaan peli 217 241 break; 218 case 1: 242 case 1: //poistutaan jos toinen nappi. 219 243 Exit(); 220 244 break; 221 245 } 222 } 246 } 223 247 void LuoHPNaytto(double x, double y, IntMeter sidottavaMittari, Color taustavari) 224 248 { … … 231 255 void Osuma(PeliUkko tormaaja, PhysicsObject ammus) 232 256 { 233 tormaaja.Elamat.Value -= 1;257 tormaaja.Elamat.Value -= 3; //kun tormaaja (pelaaja) osuu luotiin, vähennetään 3hp. 234 258 if (tormaaja.Elamat.Value <= 0) 235 259 { 236 tormaaja.Destroy(); 237 KukaKuoli(tormaaja); 238 } 239 ammus.Destroy(); 260 tormaaja.Destroy(); //jos hp 0 tai pienempi, tuhotaan pelaaja 261 KukaKuoli(tormaaja); //ja tarkistetaan kuka kuoli +ilmoitetaan siitä 262 } 263 veri.AddEffect(tormaaja.Position, 15); //osumasta lentää myös verta, pelaajan kohdalta. 264 ammus.Destroy(); //tuhotaan panos. (ei hylsyjä ;___;) 265 } 266 void Veri() 267 { 268 veri = new ExplosionSystem(LoadImage("blood"), 500); //luodaan veri "räjähdys" ja ladataan kuva, säädetään maksimi määrä partikkeleita(verta) 269 veri.MaxScale = 1.5; 270 veri.MaxLifetime = 0.4; //ei veri lennä liian kauas. 271 veri.MaxVelocity = 0.8; //eikä liian nopeaa ettei se ehdi liian kauas. 272 Add(veri); //lisätään se. 273 240 274 } 241 275 void Ammu(PeliUkko pelaaja) 242 276 { 243 if (pelaaja.aseValmiina) 277 if (pelaaja.aseValmiina) //jos aseella ei ole cd menossa 244 278 { 245 279 PhysicsObject bullet = new PhysicsObject(LoadImage("bullet")); 246 280 Add(bullet); 247 281 bullet.Tag = "bullet"; 248 bullet.Restitution = 0; 249 // AddCollisionHandler(bullet, CollisionHandler.ExplodeObject(100, false)); 250 AddCollisionHandler(bullet, "Seinä", CollisionHandler.DestroyObject); 282 bullet.Restitution = 0; //eipä kimpoile luoti, bugien varalta tämä tässä, ei mitään järkevää syytä ottaa poiskaan. 283 AddCollisionHandler(bullet, "Seinä", CollisionHandler.DestroyObject); //luoti katoaa maagisesti seinään osuessaan. 251 284 bullet.Position = pelaaja.Position; 252 bullet.Angle = pelaaja.Angle; 253 bullet.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup; 254 Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); 255 bullet.Hit(suunta); 256 pelaaja.aseValmiina = false; 257 Timer.SingleShot(0.5, delegate { pelaaja.aseValmiina = true; }); 285 bullet.Angle = pelaaja.Angle; //luoti lähtee pelaajan katsomaaan suuntaan. 286 bullet.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup; //pistetään luoti samaan collision ignoreen kuin sen ampunut pelaaja, ettei ammuta itseään. 287 Vector suunta = Vector.FromLengthAndAngle(ampumisnopeus, pelaaja.Angle + Angle.RightAngle); //käännellään luotia viellä että sen tekstuurikin on oikenpäin. 288 bullet.Hit(suunta); //tökkäistään luoti liikkeelle. 289 SoundEffect pistolshot = LoadSoundEffect("pistol1"); //mahtava ääni!! 290 pistolshot.Play(); //aivan uskomaton ;D 291 pelaaja.aseValmiina = false; //pistetään cd käyntiin 292 Timer.SingleShot(0.4, delegate { pelaaja.aseValmiina = true; }); //poistetaan cd 258 293 } 259 294 } 260 295 void Heita(PeliUkko pelaaja) 261 296 { 262 if (pelaaja.naattiValmiina) 297 if (pelaaja.naattiValmiina) //jos ei ole naatti cd active. 263 298 { 264 299 PhysicsObject naatti = new PhysicsObject(LoadImage("naatti")); 265 300 Add(naatti); 266 301 naatti.Tag = "naatti"; 267 naatti.Restitution = 0. 6;302 naatti.Restitution = 0.8; //naatti saa kimpoilla vähän 268 303 naatti.Position = pelaaja.Position; 269 304 naatti.Angle = pelaaja.Angle; … … 272 307 naatti.Hit(suunta); 273 308 pelaaja.naattiValmiina = false; 274 Timer.SingleShot( 2.5, delegate { KranaattiRajahti(naatti.X, naatti.Y, 375); naatti.Destroy(); });275 Timer.SingleShot( 6.5, delegate { pelaaja.naattiValmiina = true; });309 Timer.SingleShot(1.5, delegate { KranaattiRajahti(naatti.X, naatti.Y, 375); naatti.Destroy(); }); //räjähdys<-aika heitosta 310 Timer.SingleShot(8, delegate { pelaaja.naattiValmiina = true; }); 276 311 } 277 312 … … 279 314 void KranaattiRajahti(double x, double y, int numberOfParticles) 280 315 { 281 NaattiPoks.X = x; 282 NaattiPoks.Y = y; 283 NaattiPoks.MinScale = 1; 316 NaattiPoks.X = x; //pistetään räjähdysefetki naatin sijaintiin 317 NaattiPoks.Y = y; 318 NaattiPoks.MinScale = 1; //partikkeleiden min/max koot 284 319 NaattiPoks.MaxScale = 10; 285 320 NaattiPoks.AddEffect(x, y, numberOfParticles); 286 Explosion e = new Explosion(65); 321 Explosion e = new Explosion(65); //pakko käyttää myös tätä koska ExplosionSystemistä ei saa paineaaltoa. 287 322 Add(e); 288 323 e.Position = new Vector(x, y); 289 e.ShockwaveReachesObject += delegate(IPhysicsObject kohde, Vector suunta) { ShockHit(kohde, suunta, e); }; 324 325 //IPhysicsObject = Kohde johon paineaalto osuu. vektori suuntaa ei tarvita missään, mutta se on silti pakollinen. sitten kutsutaan shockhit näillä arvoilla. 326 e.ShockwaveReachesObject += delegate(IPhysicsObject kohde, Vector suunta) { ShockHit(kohde, suunta, e); }; 290 327 } 291 328 void ShockHit(IPhysicsObject kohde, Vector suunta, Explosion rajahdys) 292 329 { 293 if (!(kohde is PeliUkko)) return; 294 PeliUkko ukko = kohde as PeliUkko; 295 if (ukko.ViimeisinRajahdys == rajahdys) return; 296 297 double etaisyys = Vector.Distance(ukko.Position, rajahdys.Position); 298 ukko.Elamat.Value -= (int)Math.Floor(1500 / etaisyys); 330 if (!(kohde is PeliUkko)) return; //jos paineaalto osuu johonkin muuhun kuin pelaajaan, poistutaan. 331 PeliUkko ukko = kohde as PeliUkko; //jos kohde oli pelaajaluokkaa, jatketaan. 332 if (ukko.ViimeisinRajahdys == rajahdys) return; //tarkistetaan että tämä paineealto ei ole osunut ukkoon juuri äsken. Peli bugasi niin että paineaalto osu monta kertaa. 333 334 double etaisyys = Vector.Distance(ukko.Position, rajahdys.Position); //katsotaan kuinka kaukana pelaaja on räjähdyksen keskipisteestä. Pistetään tämä desimaalilukuna muutujaan 335 ukko.Elamat.Value -= (int)Math.Floor(1500 / etaisyys); //pyöristetään etäisyys kokonaislukuihin, int ei ota desimaaleja. Base dmg räjähdyksestä 1500. se jaetaan etäisyydellä. 299 336 if (ukko.Elamat.Value <= 0) 300 337 { … … 302 339 KukaKuoli(ukko); 303 340 } 304 ukko.ViimeisinRajahdys = rajahdys; 341 ukko.ViimeisinRajahdys = rajahdys; //pistetään viimeisin räjähdys olemaan juuri tämä räjähdys (paineaalto) 305 342 } 306 343 void Liike(PeliUkko pelaaja, Vector nopeus) 307 344 { 308 pelaaja.Velocity = nopeus; 309 if (nopeus.Magnitude != 0) 310 { 311 pelaaja.Angle = nopeus.Angle - Angle.RightAngle; 312 } 313 } 314 void LuoPalikka(Vector paikka, double leveys, double korkeus) 315 { 316 PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); 317 palikka.Position = paikka; 318 palikka.Image = LoadImage ("seinaTekstuuri"); 319 palikka.Tag = "Seinä"; 320 palikka.Restitution = 0; 321 palikka.Shape = Shape.Rectangle; 322 palikka.Color = Color.White; 323 Add(palikka); 345 pelaaja.Velocity = nopeus; //nopeus=tässä käytetään osoittamaan pelaajan liikkumissuuntaa, joten pelaajan tekstuuri kääntyy liikesuuntaan. 346 if (nopeus.Magnitude != 0) //jos pelaaja ei liiku 347 { 348 pelaaja.Angle = nopeus.Angle - Angle.RightAngle; //ei käännetä pelaajaa takaisin oletussuuntaan. 349 } 324 350 } 325 351 } -
2012/23/JimB/NameInPending/NameinPending/NameinPending/NameinPendingContent/NameinPendingContent.contentproj
r2832 r2836 114 114 </Compile> 115 115 </ItemGroup> 116 <ItemGroup> 117 <Compile Include="pistol1.wav"> 118 <Name>pistol1</Name> 119 <Importer>WavImporter</Importer> 120 <Processor>SoundEffectProcessor</Processor> 121 </Compile> 122 </ItemGroup> 123 <ItemGroup> 124 <Compile Include="blood.png"> 125 <Name>blood</Name> 126 <Importer>TextureImporter</Importer> 127 <Processor>TextureProcessor</Processor> 128 </Compile> 129 </ItemGroup> 130 <ItemGroup> 131 <Compile Include="Tausta.png"> 132 <Name>Tausta</Name> 133 <Importer>TextureImporter</Importer> 134 <Processor>TextureProcessor</Processor> 135 </Compile> 136 </ItemGroup> 116 137 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 117 138 <!-- 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.