- Timestamp:
- 2014-07-04 10:17:34 (9 years ago)
- Location:
- 2014/27/JuhanaK/Avaruuspeli
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.cs
r5380 r5403 60 60 } 61 61 62 class Tykki : GameObject 63 { 64 public int taso = 1; 65 public AssaultRifle ase; 66 public Tykki(double leveys, double korkeus) 67 : base(leveys, korkeus) 68 { 69 70 71 } 72 73 } 74 62 75 public class Avaruuspeli : PhysicsGame 63 76 { … … 90 103 Image monsteri = LoadImage("Monsteri"); 91 104 Image flamerkuva= LoadImage("Flamer"); 105 Image Estekuva = LoadImage("Este"); 106 Image Automaattikuva = LoadImage("Automaattitykki"); 92 107 93 108 Image Robo = LoadImage("Robot"); … … 100 115 Inventory inventory; 101 116 117 List<PushButton> painonapit = new List<PushButton>(); 118 Label menuHelperNaytto; 119 private GameObject seurattava; 120 bool ollaanRakentamassa = false; 121 122 PushButton menuNappi; 123 102 124 public override void Begin() 103 125 { 126 IsMouseVisible = true; 104 127 MediaPlayer.Play("musiikki"); 105 128 MediaPlayer.IsRepeating = true; … … 114 137 alkuValikko.AddItemHandler(2, Exit); 115 138 } 139 140 void HiirenLiikutus(AnalogState tila) 141 { 142 if (ollaanRakentamassa) 143 { 144 seurattava.Position = Mouse.PositionOnWorld; 145 } 146 } 147 148 void HiirenKlikkaus() 149 { 150 if (ollaanRakentamassa) 151 { 152 AssaultRifle ase = new AssaultRifle(30, 30); 153 ase.IsVisible = false; 154 ase.FireRate = 2; 155 ase.ProjectileCollision = AmmusOsui; 156 //seurattava.Add(ase); 157 seurattava.IsVisible = false; 158 PhysicsObject tykki = PhysicsObject.CreateStaticObject(100, 100); 159 tykki.Image = seurattava.Image; 160 tykki.Position = seurattava.Position; 161 Add(tykki); 162 tykki.Add(ase); 163 (seurattava as Tykki).ase = ase; 164 Timer ajastin = new Timer(); 165 ajastin.Interval = 0.01; 166 ajastin.Timeout += delegate 167 { 168 List<GameObject> vihut = GetObjectsWithTag("vihollinen"); 169 //var vihut = vihulista; 170 if (vihut == null || vihut.Count == 0) return; 171 172 double etäisyys = Vector.Distance(ase.AbsolutePosition, vihut[0].Position); 173 if (etäisyys > 300) return; 174 175 //vihut.Sort((a, b) => Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1); 176 vihut.Sort((a, b) => JarjestaVihut(ase, a, b)); 177 ase.Angle = (vihut[0].Position - ase.AbsolutePosition).Angle; 178 PhysicsObject ammus = ase.Shoot(); 179 180 if (ammus != null) 181 { 182 ammus.Size *= 0.5; 183 //ammus.Image = cannonballKuva; 184 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 185 //Tykki.Play(); 186 } 187 }; 188 ajastin.Start(); 189 190 ollaanRakentamassa = false; 191 seurattava = null; 192 } 193 /* 194 else 195 { 196 List<Tykki> tornit = GetObjectsWithTag("torni").Cast<Tykki>().ToList(); 197 foreach (Tykki torni in tornit) 198 { 199 int hinta = 40 + 20 * torni.taso; 200 if (Mouse.IsCursorOn(torni) && torni.taso < Tornikuvat.Length) 201 { 202 if (rahalaskuri.Value >= hinta) 203 { 204 205 206 torni.taso += 1; 207 torni.ase.FireRate = 1 + torni.taso; 208 rahalaskuri.Value -= hinta; 209 torni.Image = Tornikuvat[torni.taso - 1]; 210 } 211 else 212 { 213 MessageDisplay.Add("Ei tarpeeksi rahaa. Päivitys maksaa " + hinta); 214 215 } 216 } 217 218 } 219 } 220 */ 221 } 222 223 void AnnaRakennus(double leveys, double korkeus, int hinta, Image kuva) 224 { 225 if (ollaanRakentamassa) return; 226 if (hinta > pisteLaskuri.Value) { MessageDisplay.Add("Ei tarpeeksi pisteitä!"); return; } 227 pisteLaskuri.Value -= hinta; 228 229 Tykki talo = new Tykki(leveys, korkeus); 230 talo.Color = Color.Black; 231 talo.Image = kuva; 232 talo.Position = Mouse.PositionOnScreen; 233 talo.Tag = "torni"; 234 ollaanRakentamassa = true; 235 seurattava = talo; 236 Add(talo, 3); 237 238 } 239 // void LuoRakennus(double leveys, double korkeus, int hinta, Image kuva) 240 { 241 // if (ollaanRakentamassa) return; 242 // if (hinta > pisteLaskuri.Value) { MessageDisplay.Add("Ei tarpeeksi pisteitä!"); return; } 243 // pisteLaskuri.Value -= hinta; 244 245 // Tykki talo = new Tykki(leveys, korkeus); 246 // talo.Color = Color.Black; 247 // talo.Image = kuva; 248 // talo.Position = Mouse.PositionOnScreen; 249 // talo.Tag = "Tykki"; 250 // ollaanRakentamassa = true; 251 // seurattava = talo; 252 // Add(talo, 3); 253 254 } 255 int JarjestaVihut(AssaultRifle ase, GameObject a, GameObject b) 256 { 257 if (a == null || b == null) return 0; 258 return Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1; 259 } 260 261 void LuoTorniNappula(Vector paikka, double leveys, double korkeus, Image rakennusKuva, int hinta, int rakennusKoko) 262 { 263 menuNappi = new PushButton(leveys * 2, korkeus * 2, flamerkuva); 264 menuNappi.Position = new Vector(0, (Screen.Bottom + 30)); 265 menuNappi.Clicked += new Action(() => AnnaRakennus(rakennusKoko, rakennusKoko * 2, hinta, rakennusKuva)); 266 Add(menuNappi); 267 Mouse.ListenMovement(1.0, delegate 268 } 269 if (Mouse.IsCursorOn(menuNappi)) 270 { 271 menuHelperNaytto.IsVisible = true; 272 menuHelperNaytto.Text = "Torni, " + hinta + " kultaa"; 273 menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 274 } 275 276 }, null 277 ); 278 } 279 116 280 void pelaajienvalinta() 117 281 { … … 142 306 LuoAaltoPalkki(); 143 307 AaltoLoppui(); 308 309 LuoMenu(); 310 LuoTorniNappula(Vector.Zero, 50, 50, flamerkuva, 10, 50); 311 LuoTykkiNappula(Vector.Zero, 50, 50, Automaattikuva, 10, 50); 144 312 145 146 147 148 149 150 151 313 Camera.Follow(pelaaja1); 152 314 Camera.ZoomFactor = 1.2; 153 315 Camera.StayInLevel = true; 316 317 Mouse.ListenMovement(1.0, HiirenLiikutus, null); 318 319 Mouse.Listen(MouseButton.Left, ButtonState.Pressed, HiirenKlikkaus, null); 320 Mouse.ListenMovement(1.0, delegate 321 { 322 if (!Mouse.IsCursorOn(menuNappi)) 323 menuHelperNaytto.IsVisible = false; 324 325 // List<Torni> tornit = GetObjectsWithTag("torni").Cast<Torni>().ToList(); 326 // foreach (Torni torni in tornit) 327 // { 328 // if (Mouse.IsCursorOn(torni)) 329 // { 330 // menuHelperNaytto.IsVisible = true; 331 // menuHelperNaytto.Text = "Torni, " + torni.taso; 332 // menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 333 // } 334 // } 335 }, null); 336 } 337 338 void LuoMenu() 339 { 340 menuHelperNaytto = new Label(""); 341 menuHelperNaytto.XMargin = 7.0; 342 menuHelperNaytto.YMargin = 7.0; 343 menuHelperNaytto.Color = new Color(0, 0, 0, 100); 344 menuHelperNaytto.TextColor = Color.White; 345 menuHelperNaytto.IsVisible = false; 346 Add(menuHelperNaytto); 154 347 } 155 348 … … 201 394 pelaaja1.AnimWalk.FPS = 5; 202 395 203 inventory = new Inventory(); 204 Add(inventory); 396 //inventory = new Inventory(); 397 //inventory.Y = Screen.Bottom+50; 398 //Add(inventory); 399 400 //inventory.AddItem(null, ); 401 //inventory.AddItem(null, flamerkuva); 205 402 206 403 pelaaja1.Weapon = new AssaultRifle(30, 10); … … 267 464 Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 268 465 466 if (pelaaja2 != null) 467 { 468 Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus); 469 Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus); 470 471 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus); 472 Keyboard.Listen(Key.LeftShift, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2); 473 } 474 269 475 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 270 476 … … 291 497 void Tormaaviholliseen(PhysicsObject hahmo, PhysicsObject vihollinen) 292 498 { 293 elamaLaskuri.Value--; 499 if (hahmo == pelaaja1) 500 { 501 elamaLaskuri.Value--; 502 } 503 else 504 { 505 elamaLaskuri2.Value--; 506 } 507 294 508 osumisaani.Play(); 295 509 } … … 401 615 elamaLaskuri2 = new DoubleMeter(20); 402 616 elamaLaskuri2.MaxValue = 20; 403 elamaLaskuri2.LowerLimit += ElamaLoppui ;617 elamaLaskuri2.LowerLimit += ElamaLoppui2; 404 618 405 619 ProgressBar elamaPalkki = new ProgressBar(150, 20); … … 417 631 } 418 632 633 void ElamaLoppui2() 634 { 635 MessageDisplay.Add("Elämät loppuivat."); 636 pelaaja2.Destroy(); 637 } 419 638 420 639 IntMeter pisteLaskuri; … … 422 641 void LuoPistelaskuri() 423 642 { 424 pisteLaskuri = new IntMeter( 0);643 pisteLaskuri = new IntMeter(100); 425 644 426 645 Label pisteNaytto = new Label(); -
2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/ContentPipeline-{5282F811-AB87-41EF-A580-9908C47A987D}.xml
r5380 r5403 181 181 <Options>None</Options> 182 182 <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Flamer.xnb</Output> 183 <Time>2014-07-0 3T14:25:45.2429124+03:00</Time>183 <Time>2014-07-04T10:01:31.0571207+03:00</Time> 184 184 </Item> 185 185 <Item>
Note: See TracChangeset
for help on using the changeset viewer.