Changeset 160
- Timestamp:
- 2009-07-24 10:51:04 (13 years ago)
- Location:
- elias_y/Ammuntapeli09
- Files:
-
- 2 added
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
elias_y/Ammuntapeli09/Content/Content.contentproj
r106 r160 41 41 </Compile> 42 42 </ItemGroup> 43 <ItemGroup> 44 <Compile Include="sounds\laser.wav"> 45 <Name>laser</Name> 46 <Importer>WavImporter</Importer> 47 <Processor>SoundEffectProcessor</Processor> 48 </Compile> 49 </ItemGroup> 43 50 </Project> -
elias_y/Ammuntapeli09/Peli.cs
r149 r160 25 25 bool Pelikäynnissä = false; 26 26 27 bool hiiretAsetettu = false; 28 29 ButtonPosition hiirenAsento = ButtonPosition.Pressed; 30 27 31 int pisteidenmaara = 0; 28 32 … … 35 39 HighScoreList Top5; 36 40 41 DateTime viimeksiSoitettuAani = DateTime.MinValue; 42 37 43 protected override void LoadContent() 38 44 { … … 43 49 Controls.Listen(Keys.Enter, ButtonPosition.Down, AloitaPeli); 44 50 51 Controls.Listen(Keys.F11, ButtonPosition.Down, Huijaus); 52 45 53 Top5 = HighScoreList.LoadOrCreate(this, "Top5Ammuntapeli.txt", 5); 46 54 } 47 55 48 49 50 51 private void AjanLaskenta() 52 { 53 aikaLaskuri = new Meter<double>(30, 0, aikaaKentassa); // aikaLaskurin oletuksena on 30 sekuntia, minimiarvona 0 sekuntia ja maksimiarvona 30 sekuntia 54 55 aikaNaytto = new ValueDisplay(this); // luo uuden aikaNayton 56 57 aikaNaytto.ValueColor = Color.Red; 58 59 aikaNaytto.Text = "Aikaa jäljellä: "; // laitetaan näytöllä näkyvä teksti 60 61 aikaNaytto.TextColor = Color.Red; // vaihdetaan tekstin väriä 62 63 aikaNaytto.FormatDouble(0, true); // asetetaan näyttämään aika siten, ettei siinä näy yhtään (0) desimaalia 64 65 aikaNaytto.BindTo(aikaLaskuri); // liitetään aikaNaytto aikaLaskuriin 66 67 aikaLaskuri.LowerLimit += new Meter<double>.OnLimitHandler(AikaLoppui); // asetetaan tapahtuma, kun aikaLaskurin arvona on 0. 68 69 Add(aikaNaytto); // lisätään aikaNaytto peliin 70 71 aikaLaskuri.Reset(); 72 73 aikaNaytto.Visible = true; 74 } 75 76 77 78 protected override void OnUpdate(GameTime time) 79 { 80 if (aikaLaskuri != null) 81 { 82 aikaLaskuri.Value -= time.ElapsedGameTime.TotalSeconds; // päivittää aikalaskuria siten, että arvosta vähennetään kulunut aika 83 } 84 85 base.OnUpdate(time); 86 } 87 88 89 90 private void AikaLoppui(Meter<double> sender) 91 { 92 aikaLaskuri = null; 93 94 MessageDisplay.Position = new Vector2D( -75, 0 ); 95 96 MessageDisplay.Clear(); 97 98 MessageDisplay.Add("Aika loppui...\nSait " + pisteidenmaara + " pistettä.\nPaina Enter\npelataksesi uudelleen."); // näytetään viestinäytöllä teksti 99 100 Pelikäynnissä = false; 101 102 InputQueryWindow PelaajanNimi = new InputQueryWindow(this); 103 104 PelaajanNimi.X = 0; 105 106 PelaajanNimi.Y = 200; 107 108 PelaajanNimi.Title = "Kirjoita nimesi"; 109 110 PelaajanNimi.InputConfirmed += new InputQueryWindow.InputHandler(Nimensyotto); 111 112 ShowWindow(PelaajanNimi); 56 void asetaKaikkiKuuntelijat() 57 { 58 if (hiiretAsetettu) return; 113 59 114 60 foreach (var o in Level.Objects) … … 118 64 PhysicsObject pallo = o as PhysicsObject; 119 65 66 HiirenKuuntelija(pallo); 67 } 68 } 69 70 hiiretAsetettu = true; 71 } 72 73 bool Huijaus(ControlEvent e) 74 { 75 KeyboardState state = Keyboard.GetState(); 76 77 if (state.IsKeyDown(Keys.LeftControl) && state.IsKeyDown(Keys.RightShift)) 78 { 79 hiirenAsento = ButtonPosition.Down; 80 81 MessageDisplay.Add("Cheat code inserted!"); 82 } 83 84 return false; 85 } 86 87 88 private void AjanLaskenta() 89 { 90 aikaLaskuri = new Meter<double>(30, 0, aikaaKentassa); // aikaLaskurin oletuksena on 30 sekuntia, minimiarvona 0 sekuntia ja maksimiarvona 30 sekuntia 91 92 aikaNaytto = new ValueDisplay(this); // luo uuden aikaNayton 93 94 aikaNaytto.ValueColor = Color.Red; 95 96 aikaNaytto.Text = "Aikaa jäljellä: "; // laitetaan näytöllä näkyvä teksti 97 98 aikaNaytto.TextColor = Color.Red; // vaihdetaan tekstin väriä 99 100 aikaNaytto.FormatDouble(0, true); // asetetaan näyttämään aika siten, ettei siinä näy yhtään (0) desimaalia 101 102 aikaNaytto.BindTo(aikaLaskuri); // liitetään aikaNaytto aikaLaskuriin 103 104 aikaLaskuri.LowerLimit += new Meter<double>.OnLimitHandler(AikaLoppui); // asetetaan tapahtuma, kun aikaLaskurin arvona on 0. 105 106 Add(aikaNaytto); // lisätään aikaNaytto peliin 107 108 aikaLaskuri.Reset(); 109 110 aikaNaytto.Visible = true; 111 } 112 113 114 115 protected override void OnUpdate(GameTime time) 116 { 117 if (aikaLaskuri != null) 118 { 119 aikaLaskuri.Value -= time.ElapsedGameTime.TotalSeconds; // päivittää aikalaskuria siten, että arvosta vähennetään kulunut aika 120 } 121 122 base.OnUpdate(time); 123 } 124 125 126 127 private void AikaLoppui(Meter<double> sender) 128 { 129 aikaLaskuri = null; 130 131 MessageDisplay.Position = new Vector2D(-75, 0); 132 133 MessageDisplay.Clear(); 134 135 MessageDisplay.Add("Aika loppui...\nSait " + pisteidenmaara + " pistettä.\nPaina Enter\npelataksesi uudelleen."); // näytetään viestinäytöllä teksti 136 137 Pelikäynnissä = false; 138 139 InputQueryWindow PelaajanNimi = new InputQueryWindow(this); 140 141 PelaajanNimi.X = 0; 142 143 PelaajanNimi.Y = 200; 144 145 PelaajanNimi.Title = "Kirjoita nimesi"; 146 147 PelaajanNimi.InputConfirmed += new InputQueryWindow.InputHandler(Nimensyotto); 148 149 ShowWindow(PelaajanNimi); 150 151 foreach (var o in Level.Objects) 152 { 153 if (o is PhysicsObject) 154 { 155 PhysicsObject pallo = o as PhysicsObject; 156 120 157 pallo.Visible = false; 121 158 … … 130 167 Top5.ScreenList.Y = -100; 131 168 169 hiirenAsento = ButtonPosition.Pressed; 170 132 171 } 133 172 … … 143 182 144 183 145 184 146 185 147 186 void LuoTähtäin() … … 186 225 187 226 MessageDisplay.Y = 0; 188 227 189 228 Level.CreateBorder(1.0, false); 190 229 … … 215 254 AjanLaskenta(); 216 255 217 256 Top5.Hide(); 257 258 asetaKaikkiKuuntelijat(); 218 259 219 260 foreach (var pallo in Level.Objects) … … 247 288 248 289 pallo.IgnoresCollisionResponse = true; 249 250 Controls.Listen(pallo, MouseButtons.Left, ButtonPosition.Pressed, 0, RajaytaPallo, null, pallo); 251 } 252 } 290 } 291 } 292 293 private void HiirenKuuntelija(PhysicsObject pallo) 294 { 295 Controls.Listen(pallo, MouseButtons.Left, hiirenAsento, 0, RajaytaPallo, null, pallo); 296 297 Controls.Listen(MouseButtons.Left, hiirenAsento, 0, SoitaLaserAani); 298 } 299 300 301 302 303 bool SoitaLaserAani(ControlEvent e) 304 { 305 if (viimeksiSoitettuAani + TimeSpan.FromSeconds(0.1) > DateTime.Now) return false; 306 307 PlaySound("Laser"); 308 309 viimeksiSoitettuAani = DateTime.Now; 310 311 return false; 312 } 313 314 253 315 254 316 private void PallotLiikkeelle(PhysicsObject pallo) 255 317 { 256 pallo.Visible = true; 318 pallo.Visible = true; 257 319 258 320 pallo.IgnoresCollisionResponse = false; … … 262 324 Vector2D PallotLiikkeelle = new Vector2D(RandomGen.NextInt(-2500, 2500), RandomGen.NextInt(-2500, 2500)); 263 325 264 pallo.Hit(PallotLiikkeelle); 326 pallo.Hit(PallotLiikkeelle); 265 327 } 266 328 … … 298 360 299 361 pallo.IgnoresCollisionResponse = true; 300 301 //Controls.DisableControls(0, pallo);302 362 303 363 pisteidenmaara = pisteidenmaara + 15;
Note: See TracChangeset
for help on using the changeset viewer.