- Timestamp:
- 2013-07-26 12:43:46 (8 years ago)
- Location:
- 2013/30/NoelV/shooter/shooter
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/30/NoelV/shooter/shooter/shooter/shooter.cs
r4670 r4746 12 12 IntMeter pisteLaskuri; 13 13 IntMeter vihollisLaskuri; 14 IntMeter isoPommiLaskuri; 15 14 16 15 17 Image aluksenKuva = LoadImage("alus"); 18 Image kilvellinenKuva = LoadImage("kilpiAlus"); 16 19 Image vihollisenKuva = LoadImage("vihollinen"); 17 20 Image enkanKuva = LoadImage("enkka"); 18 21 SoundEffect ampuminen = LoadSoundEffect("laser"); 19 22 Image kilvenKuva = LoadImage("kilpi"); 23 Image pomminKuva = LoadImage("pommi"); 20 24 PhysicsObject alus; 21 25 … … 28 32 public override void Begin() 29 33 { 34 IsFullScreen = true; 35 30 36 //topLista.HighScoreWindow.Image = aluksenKuva; 31 37 topLista.HighScoreWindow.OKButton.Image = vihollisenKuva; … … 39 45 void valikko(Window sender) 40 46 { 47 ClearAll(); 41 48 MultiSelectWindow alkuValikko = new MultiSelectWindow("Valikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 42 49 alkuValikko.Image = aluksenKuva; … … 53 60 } 54 61 62 55 63 void ParhaatPisteet() 56 64 { 65 IsPaused = true; 57 66 topLista.Show(); 58 67 topLista.HighScoreWindow.Closed += valikko; … … 74 83 75 84 Timer vihunLuontiAjastin = new Timer(); 76 vihunLuontiAjastin.Interval = 0. 6;85 vihunLuontiAjastin.Interval = 0.4; 77 86 vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 78 87 vihunLuontiAjastin.Start(); 79 88 80 89 Timer enkkaAjastin = new Timer(); 81 enkkaAjastin.Interval = 1 5.0;90 enkkaAjastin.Interval = 16.0; 82 91 enkkaAjastin.Timeout += delegate { LuoEnkka(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 83 92 enkkaAjastin.Start(); 84 93 85 94 Timer kilpiAjastin = new Timer(); 86 kilpiAjastin.Interval = 2 2.0;95 kilpiAjastin.Interval = 21.0; 87 96 kilpiAjastin.Timeout += delegate { LuoKilpi(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 88 97 kilpiAjastin.Start(); 89 98 99 Timer pommiAjastin = new Timer(); 100 pommiAjastin.Interval = 26.0; 101 pommiAjastin.Timeout += delegate { LuoPommi(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 102 pommiAjastin.Start(); 103 90 104 LuoElamaLaskuri(); 91 105 LuoPisteLaskuri(); 92 106 LuoPommiLaskuri(); 93 107 94 108 Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ampuu", alus); 109 Mouse.Listen(MouseButton.Right, ButtonState.Pressed, AmmuIsoPommi, "Ampuu", alus); 95 110 Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyPoistumista, "Lopeta peli"); 96 111 … … 99 114 } 100 115 116 void AmmuIsoPommi(PhysicsObject alus) 117 { 118 if (isoPommiLaskuri.Value == 0) return; 119 isoPommiLaskuri.Value--; 120 Explosion e = new Explosion(1200); 121 e.Position = alus.Position; 122 e.Speed = 1800; 123 e.ShockwaveColor = Color.Transparent; 124 e.ShockwaveReachesObject += AaltoOsuu; 125 Add(e); 126 127 } 128 129 130 void AaltoOsuu(IPhysicsObject kohde, Vector v) 131 { 132 if (kohde.Tag.Equals("vihu")) 133 { 134 PhysicsObject vihu = kohde as PhysicsObject; 135 if (vihu == null) return; 136 TuhoaVihu(vihu); 137 } 138 else 139 { 140 kohde.Hit(-v); 141 142 } 143 } 144 145 146 101 147 void KysyPoistumista() 102 148 { 103 149 IsPaused = true; 104 MultiSelectWindow valikko = new MultiSelectWindow("Haluatko lopettaa?", 105 "Kyllä", "Ei", "EN tiedä!"); 106 valikko.AddItemHandler(0, Exit); 107 valikko.AddItemHandler(2, delegate { if (RandomGen.NextBool()) Exit(); }); 108 valikko.Closed += delegate { IsPaused = false; }; 150 MultiSelectWindow valikko = new MultiSelectWindow("Valikko", "Jatka peliä", "Huippu pisteet", "Lopeta peli"); 151 valikko.AddItemHandler(2, Exit); 152 valikko.AddItemHandler(1, ParhaatPisteet); 153 valikko.AddItemHandler(0, delegate { IsPaused = false; }); 154 //valikko.AddItemHandler(2, delegate { if (RandomGen.NextBool()) Exit(); }); 155 //valikko.Closed += delegate { IsPaused = false; }; 109 156 valikko.Color = Color.Red; 110 157 Add(valikko); … … 126 173 alus.Restitution = 1.5; 127 174 alus.CanRotate = false; 128 175 alus.IgnoresExplosions = true; 129 176 AddCollisionHandler(alus, "vihu", OsuuViholliseen); 130 177 … … 132 179 133 180 AddCollisionHandler(alus, "kilpi", OsuuKilpeen); 181 182 AddCollisionHandler(alus, "pommi", OsuuPommiin); 134 183 135 184 } … … 139 188 kilpi.Destroy(); 140 189 onkoKilpea = true; 190 alus.Image = kilvellinenKuva; 141 191 142 192 double aikaaJaljella = 10.0; 143 193 144 194 Label teksti = new Label("kilpi " + aikaaJaljella); 145 195 teksti.Y = Screen.Top - 100; … … 151 201 ajastin.Interval = 1.0; 152 202 //myöhemmin: näytä aia jäljellä väliajoin: 153 ajastin.Timeout += delegate 203 ajastin.Timeout += delegate 154 204 { 155 205 aikaaJaljella -= 1.0; 156 206 teksti.Text = "kilpi " + aikaaJaljella; 157 207 158 208 //MessageDisplay.Add("Aikaa: " + aikaaJaljella); 159 209 160 210 }; 161 ajastin.Start( 5);162 ajastin.Stopped += delegate 211 ajastin.Start(10); 212 ajastin.Stopped += delegate 163 213 { 164 214 onkoKilpea = false; 165 215 teksti.Destroy(); 166 167 216 alus.Image = aluksenKuva; 217 168 218 }; 169 219 170 220 } 171 221 … … 226 276 ammus.CollisionIgnoreGroup = ampuja.CollisionIgnoreGroup; 227 277 Add(ammus); 278 ammus.IgnoresExplosions = true; 228 279 229 280 ammus.Hit(Vector.FromLengthAndAngle(1000, ampuja.Angle + Angle.FromDegrees(90))); … … 239 290 if (kohde.Tag.Equals("vihu")) 240 291 { 241 Explosion rajahdys = new Explosion(150); 242 rajahdys.Position = kohde.Position; 243 rajahdys.ShockwaveColor = Color.Transparent; 244 Add(rajahdys); 245 kohde.Destroy(); 246 pisteLaskuri.Value++; 247 } 292 TuhoaVihu(kohde); 293 } 294 } 295 296 private void TuhoaVihu(PhysicsObject kohde) 297 { 298 Explosion rajahdys = new Explosion(150); 299 rajahdys.Position = kohde.Position; 300 rajahdys.ShockwaveColor = Color.Transparent; 301 302 Add(rajahdys); 303 kohde.Destroy(); 304 pisteLaskuri.Value++; 248 305 } 249 306 … … 287 344 } 288 345 346 void LuoPommiLaskuri() 347 { 348 isoPommiLaskuri = new IntMeter(0, 0, int.MaxValue); 349 Label vihollisNaytto = new Label(); 350 vihollisNaytto.X = Screen.Right -100; 351 vihollisNaytto.Y = Screen.Top - 200; 352 vihollisNaytto.TextColor = Color.Red; 353 vihollisNaytto.Color = Color.Transparent; 354 vihollisNaytto.IntFormatString = "pommeja: {00}"; 355 vihollisNaytto.BindTo(isoPommiLaskuri); 356 Add(vihollisNaytto); 357 358 } 359 289 360 290 361 void LuoElamaLaskuri() … … 308 379 rajahdys.Position = alus.Position; 309 380 Add(rajahdys); 310 Pause();381 IsPaused = true; 311 382 312 383 alus.Destroy(); … … 367 438 kilpi.CanRotate = false; 368 439 } 440 441 void LuoPommi(Vector paikka) 442 { 443 PhysicsObject pommi = new PhysicsObject(50, 50); 444 pommi.Position = paikka; 445 pommi.Image = pomminKuva; 446 pommi.IgnoresCollisionResponse = true; 447 pommi.IgnoresExplosions = true; 448 Add(pommi); 449 Vector impulssi = new Vector(0.0, -500.0); 450 pommi.Hit(impulssi); 451 pommi.Tag = "pommi"; 452 pommi.CanRotate = false; 453 } 454 void OsuuPommiin(PhysicsObject pelaaja, PhysicsObject pommi) 455 { 456 isoPommiLaskuri.Value += 1; 457 pommi.Destroy(); 458 459 } 369 460 } 370 461 -
2013/30/NoelV/shooter/shooter/shooterContent/shooterContent.contentproj
r4670 r4746 87 87 </Compile> 88 88 </ItemGroup> 89 <ItemGroup> 90 <Compile Include="kilpiAlus.png"> 91 <Name>kilpiAlus</Name> 92 <Importer>TextureImporter</Importer> 93 <Processor>TextureProcessor</Processor> 94 </Compile> 95 </ItemGroup> 96 <ItemGroup> 97 <Compile Include="pommi.png"> 98 <Name>pommi</Name> 99 <Importer>TextureImporter</Importer> 100 <Processor>TextureProcessor</Processor> 101 </Compile> 102 </ItemGroup> 89 103 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 90 104 <!-- 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.