Changeset 4413 for 2013/27/JuhanaR/Korispeli/Korispeli/Korispeli
- Timestamp:
- 2013-07-03 15:01:31 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/27/JuhanaR/Korispeli/Korispeli/Korispeli/Korispeli.cs
r4369 r4413 14 14 List<Pelaaja> pelaajat = new List<Pelaaja>(); 15 15 int vuorossaOlevaPelaaja = 0; 16 PhysicsObject kori; 16 17 17 18 PlatformCharacter pelaaja1; … … 22 23 Image korinKuva = LoadImage("tahti"); 23 24 Image koripallonKuva = LoadImage("Koripallo"); 25 Image koripallokorinKuva = LoadImage("Koripallokori"); 24 26 25 27 SoundEffect maaliAani = LoadSoundEffect("maali"); 26 28 29 bool VoikoHeittaa = true; 30 31 DoubleMeter heittovoima; 32 33 void LuoVoimamittari() 34 { 35 heittovoima = new DoubleMeter(70, 0, 100); 36 heittovoima.MaxValue = 10; 37 heittovoima.UpperLimit += delegate { heittovoima.Value = 0; }; 38 39 ProgressBar heittoPalkki = new ProgressBar(150, 20); 40 heittoPalkki.X = Screen.Left + 150; 41 heittoPalkki.Y = 0; 42 heittoPalkki.Angle = Angle.RightAngle; 43 heittoPalkki.BindTo(heittovoima); 44 Add(heittoPalkki); 45 } 27 46 public override void Begin() 28 47 { … … 30 49 for (int i = 0; i < 4; i++) 31 50 { 32 pelaajat.Add(new Pelaaja()); 51 Pelaaja pelaaja = new Pelaaja(); 52 pelaaja.Pisteet.UpperLimit += VaihdaKenttaa; 53 pelaajat.Add(pelaaja); 54 33 55 } 34 35 //pelaajat.Add(new Pelaaja()); 36 //pelaajat.Add(new Pelaaja());56 Mouse.IsCursorVisible = true; 57 58 37 59 38 60 LuoKentta(); 39 61 LuoNaytot(); 40 62 LisaaNappaimet(); 41 63 LuoVoimamittari(); 42 64 Camera.ZoomToLevel(); 43 //Camera.Follow(pelaaja1); 44 //Camera.ZoomFactor = 1.2; 45 //Camera.StayInLevel = true; 46 } 65 66 } 67 68 void VaihdaKenttaa() 69 { 70 ClearAll(); 71 pelaajat.Clear(); 72 vuorossaOlevaPelaaja = 0; 73 Begin(); 74 75 } 76 47 77 48 78 void VaihdaPelaajaaVuorossa() … … 52 82 else vuorossaOlevaPelaaja++; 53 83 MessageDisplay.Add("Pelaajan " + (vuorossaOlevaPelaaja + 1) + " vuoro"); 54 pelaaja1.Position = new Vector( -200, 0);84 pelaaja1.Position = new Vector( -200, 0); 55 85 } 56 86 … … 76 106 TileMap kentta = TileMap.FromLevelAsset("kentta1"); 77 107 kentta.SetTileMethod('V', LisaaVastustaja); 78 79 80 108 kentta.SetTileMethod('#', LisaaTaso); 81 109 kentta.SetTileMethod('K', LisaaKori); 82 110 kentta.SetTileMethod('N', LisaaPelaaja); 111 kentta.SetTileMethod('T', LisaaTuomari); 83 112 kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 84 Level.CreateBorders(); 85 Level.Background.CreateGradient(Color.White, Color.SkyBlue); 86 113 114 PhysicsObject ylaReuna = Level.CreateTopBorder(); 115 ylaReuna.Tag = "reuna"; 116 Level.CreateHorizontalBorders(0, false, Color.Red); 117 118 Level.Background.Image = LoadImage("Koripallokenttä"); 119 Level.Background.FitToLevel(); 120 } 121 122 void LisaaTuomari(Vector paikka, double leveys, double korkeus) 123 { 124 PhysicsObject Tuomari = PhysicsObject.CreateStaticObject(leveys*1.2, 1.5*korkeus); 125 Tuomari.IgnoresCollisionResponse = true; 126 Tuomari.Position = paikka; 127 Tuomari.Y += 10; 128 Tuomari.Image = tuomarinKuva; 129 Add(Tuomari); 87 130 } 88 131 … … 97 140 void LisaaKori(Vector paikka, double leveys, double korkeus) 98 141 { 99 PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);100 tahti.IgnoresCollisionResponse = true;101 tahti.Position = paikka;102 //tahti.Image = tahtiKuva;103 tahti.Tag = "tahti";104 Add( tahti);142 kori = PhysicsObject.CreateStaticObject(leveys*1.2, korkeus*1.2); 143 kori.IgnoresCollisionResponse = true; 144 kori.Position = paikka; 145 kori.Image = koripallokorinKuva; 146 kori.Tag = "kori"; 147 Add(kori); 105 148 } 106 149 107 150 void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 108 151 { 109 pelaaja1 = new PlatformCharacter(leveys, korkeus );152 pelaaja1 = new PlatformCharacter(leveys, korkeus*1.5); 110 153 pelaaja1.Position = paikka; 111 154 pelaaja1.Mass = 4.0; … … 118 161 void LisaaVastustaja(Vector paikka, double leveys, double korkeus) 119 162 { 120 PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus );163 PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus*2); 121 164 Vastustaja.Position = paikka; 122 165 Vastustaja.Mass = 1000.0; … … 125 168 Timer hyppyAjastin = new Timer(); 126 169 hyppyAjastin.Start(); 127 hyppyAjastin.Interval = 4;128 hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump( 1000); };129 } 130 131 voidLisaaPallo()170 hyppyAjastin.Interval = 2; 171 hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump((kori.Y -Level.Bottom) * 4); }; 172 } 173 174 PhysicsObject LisaaPallo() 132 175 { 133 176 PhysicsObject Pallo = new PhysicsObject (20,20); … … 137 180 Pallo.CollisionIgnoreGroup = 1; 138 181 Add(Pallo); 139 } 182 return Pallo; 183 } 184 185 140 186 141 187 void LisaaNappaimet() … … 144 190 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 145 191 146 Keyboard.Listen(Key. Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);147 Keyboard.Listen(Key. Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);148 Keyboard.Listen(Key. Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);192 Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 193 Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 194 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 149 195 150 196 Mouse.Listen(MouseButton.Left, ButtonState.Released, HeitaPallo, ""); … … 161 207 void HeitaPallo() 162 208 { 163 LisaaPallo(); 164 } 209 if (!VoikoHeittaa) 210 return; 211 VoikoHeittaa = false; 212 PhysicsObject pallo = LisaaPallo(); 213 214 Vector suunta = (Mouse.PositionOnWorld - pallo.Position).Normalize(); 215 pallo.Hit(suunta * 1500); 216 217 AddCollisionHandler(pallo, PalloOsuu); 218 } 219 220 void PalloOsuu(PhysicsObject pallo, PhysicsObject kohde) 221 { 222 if ("reuna".Equals(kohde.Tag)) return; 223 pallo.Destroy(); 224 if (kohde.Tag.Equals("kori")) 225 pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 226 pallo.Destroyed += delegate { VaihdaPelaajaaVuorossa(); }; 227 228 Timer.SingleShot(1.0, delegate { VoikoHeittaa = true; }); 229 230 } 231 165 232 166 233 void Liikuta(PlatformCharacter hahmo, double nopeus) … … 168 235 if (hahmo.Position.X >= 200 && nopeus > 0) 169 236 { 170 hahmo.Velocity = Vector.Zero;237 hahmo.Velocity = new Vector(0, hahmo.Velocity.Y); 171 238 return; 172 239 }
Note: See TracChangeset
for help on using the changeset viewer.