Changeset 3331
- Timestamp:
- 2012-06-28 15:04:39 (9 years ago)
- Location:
- 2012/26/TopiasT
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/26/TopiasT/Ukkeli/Ukkeli/Ukkeli/Ukkeli.cs
r3287 r3331 7 7 using Jypeli.Widgets; 8 8 9 10 public class PeliHahmo : PlatformCharacter 11 { 12 public IntMeter elamaLaskuri = new IntMeter(10, 0, 10); 13 14 private Weapon secondWeapon; 15 public Weapon SecondWeapon { get { return secondWeapon; } set { secondWeapon = value; this.Add(value); } } 16 17 public PeliHahmo(double leveys, double korkeus) 18 : base(leveys, korkeus) 19 { 20 elamaLaskuri.LowerLimit += delegate 21 { 22 SecondWeapon.Destroy(); 23 this.Destroy(); 24 }; 25 } 26 } 27 28 29 30 31 public class Vihu : PhysicsObject 32 { 33 public IntMeter elamaLaskuri = new IntMeter(200, 0, 200); 34 35 public Vihu(double leveys, double korkeus) 36 : base(leveys, korkeus) 37 { 38 elamaLaskuri.LowerLimit += delegate 39 { 40 this.Destroy(); 41 }; 42 } 43 44 } 45 9 46 public class Ukkeli : PhysicsGame 10 47 { … … 13 50 const int RUUDUN_KOKO = 40; 14 51 15 P latformCharacterpelaaja1;52 PeliHahmo pelaaja1; 16 53 Image PahanKuva = LoadImage("paha ukkeli"); 17 54 Image pelaajanKuva = LoadImage("Ukkeli"); 18 55 Image tahtiKuva = LoadImage("Kolikko"); 56 Image tasokuva = LoadImage("taso"); 57 58 19 59 20 60 SoundEffect maaliAani = LoadSoundEffect("maali"); … … 22 62 public override void Begin() 23 63 { 24 25 Grenade kranaatti = new Grenade(4.0);26 27 64 65 66 67 68 MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 69 "Aloita peli", "Lopeta"); 70 Add(alkuValikko); 71 alkuValikko.ItemSelected += PainettiinValikonNappia; 72 73 74 28 75 29 76 Gravity = new Vector(0, -1000); … … 46 93 kentta.SetTileMethod(Color.Black, LisaaTaso); 47 94 kentta.SetTileMethod(Color.Yellow, LisaaTahti); 48 kentta.SetTileMethod(Color.Blue, LisaaPelaaja); 95 kentta.SetTileMethod(Color.Blue, LisaaPelaaja); 49 96 kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 50 97 Level.CreateBorders(); 51 98 Level.Background.CreateGradient(Color.White, Color.SkyBlue); 99 100 LuoMittari(); 101 102 } 103 104 void LuoMittari() 105 { 106 ProgressBar voimaPalkki = new ProgressBar(150, 10); 107 voimaPalkki.BindTo(pelaaja1.elamaLaskuri); 108 Add(voimaPalkki); 109 110 voimaPalkki.X = Screen.Left + 150; 111 voimaPalkki.Y = Screen.Top - 20; 112 voimaPalkki.BarColor = Color.Red; 113 voimaPalkki.BorderColor = Color.Aqua; 52 114 } 53 115 … … 57 119 taso.Position = paikka; 58 120 taso.Color = Color.Green; 121 taso.Image = tasokuva; 59 122 Add(taso); 60 123 } … … 72 135 void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 73 136 { 74 pelaaja1 = new P latformCharacter(leveys, korkeus);137 pelaaja1 = new PeliHahmo(leveys, korkeus); 75 138 pelaaja1.Position = paikka; 76 139 pelaaja1.Tag = "pelaaja"; … … 80 143 AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 81 144 pelaaja1.Weapon = new PlasmaCannon(30, 7); 145 pelaaja1.Weapon.Ammo.Value = Int32.MaxValue; 82 146 pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 83 147 148 //pelaaja1.Weapon = new LaserGun(20, 5); 149 pelaaja1.SecondWeapon = new LaserGun(20, 5); 150 pelaaja1.SecondWeapon.Ammo.Value = Int32.MaxValue; 151 pelaaja1.SecondWeapon.ProjectileCollision = laserAmmusOsui; 152 //Add(pelaaja1.SecondWeapon); 84 153 Add(pelaaja1); 154 155 pelaaja1.Destroyed += delegate 156 { 157 Exit(); 158 }; 85 159 } 86 160 … … 92 166 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 93 167 94 Keyboard.Listen(Key. Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);95 Keyboard.Listen(Key. Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);96 Keyboard.Listen(Key. Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);168 Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 169 Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 170 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 97 171 98 172 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); … … 102 176 ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 103 177 104 Mouse.Listen(MouseButton.Left, ButtonState. Pressed, AmmuAseella, "Ammuaseella.");178 Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammuaseella."); 105 179 Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 106 Keyboard.Listen(Key.Space, ButtonState.Pressed, HeitaKranaatti , "Liikkuu vasemmalle"); 107 180 Keyboard.Listen(Key.Space, ButtonState.Down, AmmulaserAseella, "AmmulaserAseella."); 181 Keyboard.Listen(Key.V, ButtonState.Down, lisaaelama, "lisaaelama."); 182 183 184 Mouse.Listen(MouseButton.Middle, ButtonState.Down, HeitaKranaatti, "HeitaKranaatti.", pelaaja1); 185 Mouse.Listen(MouseButton.Right, ButtonState.Pressed, HeitaKranaatti, "HeitaKranaatti.", pelaaja1); 108 186 109 187 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); … … 133 211 if (ammus != null) 134 212 { 135 ammus.CollisionIgnoreGroup = 1;213 ammus.CollisionIgnoreGroup = 6; 136 214 ammus.Size *= 1; 137 215 } … … 141 219 { 142 220 ammus.Destroy(); 221 if (kohde.Tag.ToString() == "vihu") 222 { 223 (kohde as Vihu).elamaLaskuri.Value--; 224 } 143 225 Explosion rajahdys = new Explosion(10); 144 226 rajahdys.Position = ammus.Position; … … 147 229 void LisaaPaha(Vector paikka, double leveys, double korkeus) 148 230 { 149 PhysicsObject Paha = new PhysicsObject(50, 60);231 Vihu Paha = new Vihu(50, 60); 150 232 Paha.Mass = 40.0; 233 Paha.Tag = "vihu"; 151 234 Paha.Position = paikka; 152 235 Paha.Image = LoadImage("paha ukkeli"); … … 154 237 Paha.Image.ReplaceColor(new Color(255, 0, 0), RandomGen.NextColor()); 155 238 239 156 240 PlasmaCannon pyssy = new PlasmaCannon(0.1, 0.1); 157 241 pyssy.ProjectileCollision = VihunAmmusOsui; 158 242 Paha.Add(pyssy); 159 pyssy.ProjectileCollision = AmmusOsui; 243 160 244 Add(Paha); 161 245 162 246 Timer ampumisAjastin = new Timer(); 163 ampumisAjastin.Interval = 2;247 ampumisAjastin.Interval = 1; 164 248 ampumisAjastin.Timeout += delegate 165 249 { … … 168 252 if (ammus != null) 169 253 { 170 ammus.Hit(Vector.FromLengthAndAngle(100, pyssy.Angle));254 ammus.Hit(Vector.FromLengthAndAngle(100, pyssy.Angle)); 171 255 } 172 256 }; 173 257 174 258 ampumisAjastin.Start(); 175 259 Paha.Destroyed += delegate { ampumisAjastin.Stop(); }; 176 260 FollowerBrain seuraajaAivot = new FollowerBrain("pelaaja"); 177 261 Paha.Brain = seuraajaAivot; 178 262 seuraajaAivot.Active = true; 179 180 } 263 264 } 265 181 266 void VihunAmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 182 267 { 183 268 ammus.Destroy(); 269 if (kohde.Tag.ToString() == "pelaaja") 270 { 271 (kohde as PeliHahmo).elamaLaskuri.Value--; 272 } 184 273 Explosion rajahdys = new Explosion(10); 185 274 rajahdys.Position = ammus.Position; … … 189 278 { 190 279 pelaaja1.Weapon.Angle = (Mouse.PositionOnWorld - pelaaja1.Position).Angle; 191 } 192 void HeitaKranaatti(PlatformCharacter pelaaja) 280 pelaaja1.SecondWeapon.Angle = (Mouse.PositionOnWorld - pelaaja1.Position).Angle; 281 } 282 283 void HeitaKranaatti(PlatformCharacter pelaaja1) 193 284 { 194 285 Grenade kranaatti = new Grenade(4.0); 195 kranaatti.X = pelaaja.X + 10; 196 kranaatti.Y = pelaaja.Y + 10; 286 kranaatti.X = pelaaja1.X + 10; 287 kranaatti.Y = pelaaja1.Y + 10; 288 kranaatti.ExplosionForce = 0; 197 289 Add(kranaatti); 198 Vector heittoVoima = Vector.FromLengthAndAngle( 4000, Angle.FromDegrees(45));290 Vector heittoVoima = Vector.FromLengthAndAngle(30000, (Mouse.PositionOnWorld - pelaaja1.Position).Angle); 199 291 kranaatti.Hit(heittoVoima); 200 pelaaja.Throw( kranaatti, Angle.FromDegrees( 30 ), 10000 ); 201 kranaatti.FuseTime = TimeSpan.FromSeconds( 5 ); 202 203 } 204 205 206 292 AddCollisionHandler(kranaatti, kranaattiosui); 293 } 294 295 void kranaattiosui(PhysicsObject kranaatti, PhysicsObject kohde) 296 { 297 if (kohde.Tag.ToString() == "vihu") 298 { 299 (kohde as Vihu).elamaLaskuri.Value -= 5; 300 } 301 Explosion rajahdys = new Explosion(10); 302 rajahdys.UseShockWave = false; 303 rajahdys.Force = 0; 304 rajahdys.Position = kranaatti.Position; 305 Add(rajahdys); 306 } 307 308 void PainettiinValikonNappia(int valinta) 309 { 310 switch (valinta) 311 { 312 case 0: 313 // AloitaPeli(); 314 break; 315 case 1: 316 Exit(); 317 break; 318 } 319 320 } 321 void AmmulaserAseella() 322 { 323 PhysicsObject ammus = pelaaja1.SecondWeapon.Shoot(); 324 325 if (ammus != null) 326 { 327 ammus.CollisionIgnoreGroup = 1; 328 ammus.Size *= 4; 329 } 330 331 } 332 void laserAmmusOsui(PhysicsObject laserammus, PhysicsObject kohde) 333 { 334 laserammus.Destroy(); 335 if (kohde.Tag.ToString() == "vihu") 336 { 337 (kohde as Vihu).elamaLaskuri.Value--; 338 } 339 Explosion rajahdys = new Explosion(10); 340 rajahdys.Position = laserammus.Position; 341 Add(rajahdys); 342 343 344 345 346 } 347 void lisaaelama() 348 { 349 pelaaja1.elamaLaskuri.Value++; 350 351 } 207 352 208 353 -
2012/26/TopiasT/Ukkeli/Ukkeli/UkkeliContent/UkkeliContent.contentproj
r3287 r3331 94 94 </Compile> 95 95 </ItemGroup> 96 <ItemGroup> 97 <Compile Include="Taso.png"> 98 <Name>Taso</Name> 99 <Importer>TextureImporter</Importer> 100 <Processor>TextureProcessor</Processor> 101 </Compile> 102 </ItemGroup> 96 103 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 97 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.