- Timestamp:
- 2013-06-26 14:58:02 (10 years ago)
- Location:
- 2013/26/OskariN
- Files:
-
- 12 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/26/OskariN/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs
r4213 r4246 7 7 using Jypeli.Widgets; 8 8 9 public class Pelaaja : PlatformCharacter 10 { 11 public ListenContext tikkaillaNappaimet; 12 public ListenContext poisTikkailtaNappaimet; 13 14 public Pelaaja(double leveys, double korkeus) 15 : base(leveys, korkeus) 16 { 17 IsUpdated = true; 18 } 19 20 public override void Update(Time time) 21 { 22 base.Update(time); 23 } 24 } 25 9 26 public class Tasohyppelypeli1 : PhysicsGame 10 27 { … … 13 30 const int RUUDUN_KOKO = 40; 14 31 15 PlatformCharacter pelaaja1; 16 PlatformCharacter pelaaja2; 17 18 Image pelaajanKuva2 = LoadImage("pelaaja2"); 32 Pelaaja pelaaja1; 33 Pelaaja pelaaja2; 34 35 Image luodinKuva = LoadImage("luoti"); 36 Image pelaajanKuva2 = LoadImage("pelaaja2 (2)"); 19 37 Image pelaajanKuva = LoadImage("player3"); 20 38 Image aseKuva = LoadImage("gun"); 21 Image tikasKuva = LoadImage("Tikkaat"); 22 23 SoundEffect maaliAani = LoadSoundEffect("maali"); 39 Image tikasKuva = LoadImage("Tikkaat"); 40 41 DoubleMeter elamaLaskuri1; 42 DoubleMeter elamalaskuri2; 43 24 44 25 45 public override void Begin() 26 46 { 27 47 Gravity = new Vector(0, -1000); 28 29 48 LuoKentta(); 30 49 LisaaNappaimet(); 31 50 Camera.ZoomToLevel(); 32 } 51 MediaPlayer.Play("game music"); 52 MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 53 "Aloita peli", "Lopeta"); 54 alkuValikko.Color = Color.Black; 55 56 57 Add(alkuValikko); 58 59 60 } 61 62 DoubleMeter LuoElamaLaskuri(double x, double y, Pelaaja pelaaja) 63 { 64 DoubleMeter elamaLaskuri = new DoubleMeter(10); 65 elamaLaskuri.MaxValue = 10; 66 elamaLaskuri.LowerLimit += delegate { 67 ElamaLoppui(pelaaja); 68 elamaLaskuri.Image = LoadImage(""); 69 elamaLAskuri.BarImage = LoadImage(""); 70 }; 71 72 ProgressBar elamaPalkki = new ProgressBar(150, 20); 73 elamaPalkki.X = x; 74 elamaPalkki.Y = y; 75 elamaPalkki.BindTo(elamaLaskuri); 76 Add(elamaPalkki); 77 return elamaLaskuri; 78 } 79 80 void ElamaLoppui(Pelaaja pelaaja) 81 { 82 MessageDisplay.Add("HaHaHa!!! You're dead!"); 83 pelaaja.Destroy(); 84 } 85 33 86 34 87 void LuoKentta() 35 88 { 89 pelaaja1 = LuoPelaaja(RUUDUN_KOKO, RUUDUN_KOKO, pelaajanKuva); 90 pelaaja2 = LuoPelaaja(RUUDUN_KOKO, RUUDUN_KOKO, pelaajanKuva2); 36 91 TileMap kentta = TileMap.FromLevelAsset("pelitausta"); 37 92 kentta.SetTileMethod('#', LisaaTaso); 38 93 kentta.SetTileMethod('*', LisaaAse); 39 kentta.SetTileMethod('N', LisaaPelaaja 1);40 kentta.SetTileMethod('M', LisaaPelaaja 2);94 kentta.SetTileMethod('N', LisaaPelaaja, pelaaja1); 95 kentta.SetTileMethod('M', LisaaPelaaja, pelaaja2); 41 96 kentta.SetTileMethod('H', LisaaTikkaat); 42 97 kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 43 98 Level.CreateBorders(); 44 Level.Background.CreateGradient(Color.White, Color.SkyBlue); 99 Level.Background.CreateGradient(Color.White, Color.White); 100 elamaLaskuri1 = LuoElamaLaskuri(Screen.Right - 150, Screen.Top - 150, pelaaja1); 101 elamalaskuri2 = LuoElamaLaskuri(Screen.Left +150, Screen.Top - 150, pelaaja2); 102 } 103 104 void AloitaPeli() 105 { 106 } 107 108 void ParhaatPisteet() 109 { 45 110 } 46 111 … … 56 121 PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(leveys, korkeus); 57 122 tikkaat.Position = paikka; 58 tikkaat.Image = tikasKuva; 123 tikkaat.Image = tikasKuva; 124 tikkaat.IgnoresCollisionResponse = true; 125 tikkaat.Tag = "tikkaat"; 59 126 Add(tikkaat); 60 127 } 128 129 130 61 131 void LisaaAse(Vector paikka, double leveys, double korkeus) 62 132 { … … 69 139 } 70 140 71 void LisaaPelaaja1(Vector paikka, double leveys, double korkeus) 72 { 73 pelaaja1 = new PlatformCharacter(leveys, korkeus); 74 pelaaja1.Position = paikka; 75 pelaaja1.Mass = 4.0; 76 pelaaja1.Image = pelaajanKuva; 77 AddCollisionHandler(pelaaja1, "gun", TormaaAseeseen); 78 Add(pelaaja1); 79 } 80 81 void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) 82 { 83 pelaaja2 = new PlatformCharacter(leveys, korkeus); 84 pelaaja2.Position = paikka; 85 pelaaja2.Mass = 4.0; 86 pelaaja2.Image = pelaajanKuva2; 87 AddCollisionHandler(pelaaja2, "gun", TormaaAseeseen); 88 Add(pelaaja2); 141 Pelaaja LuoPelaaja(double leveys, double korkeus, Image kuva) 142 { 143 Pelaaja pelaaja = new Pelaaja(leveys, korkeus); 144 pelaaja.Image = kuva; 145 return pelaaja; 146 } 147 148 void LisaaPelaaja(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja) 149 { 150 pelaaja.Position = paikka; 151 pelaaja.Mass = 4.0; 152 // AddCollisionHandler(pelaaja1, "tikkaat", delegate(PhysicsObject tormaaja, PhysicsObject kohde) { pelaaja1.StopVertical(); }); 153 Add(pelaaja); 154 155 pelaaja.Weapon = new PlasmaCannon (30, 10); 156 pelaaja.Weapon.Ammo.Value = 1000; 157 pelaaja.Weapon.ProjectileCollision = AmmusOsui; 158 pelaaja. 159 Timer onkoTikkaillaAjastin = new Timer(); 160 onkoTikkaillaAjastin.Interval = 0.1; 161 onkoTikkaillaAjastin.Timeout += delegate 162 { 163 if (GetObjectsAt(pelaaja.Position, "tikkaat", pelaaja.Width / 2).Count > 0) 164 { 165 // pelaaja1.StopVertical(); 166 pelaaja.IgnoresGravity = true; 167 pelaaja.poisTikkailtaNappaimet.Disable(); 168 pelaaja.tikkaillaNappaimet.Enable(); 169 } 170 else 171 { 172 pelaaja.IgnoresGravity = false; 173 pelaaja.poisTikkailtaNappaimet.Enable(); 174 pelaaja.tikkaillaNappaimet.Disable(); 175 } 176 }; 177 onkoTikkaillaAjastin.Start(); 178 179 AssaultRifle ase = new AssaultRifle(20, 5); 180 ase.ProjectileCollision = AmmusOsui; 181 PlasmaCannon plasmaTykki = new PlasmaCannon(20, 5); 182 plasmaTykki.ProjectileCollision = AmmusOsui; 183 Cannon tykki = new Cannon(50, 10); 184 tykki.ProjectileCollision = AmmusOsui; 185 Grenade kranaatti = new Grenade(4.0); 186 ase.InfiniteAmmo = true; 187 plasmaTykki.InfiniteAmmo = true; 188 tykki.InfiniteAmmo = true; 189 } 190 191 192 193 void AmmuAseella(PlatformCharacter pelaaja) 194 { 195 PhysicsObject ammus = pelaaja.Weapon.Shoot(); 196 197 if (ammus != null) 198 { 199 ammus.Size *= 3; 200 ammus.Image = luodinKuva; 201 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 202 } 203 } 204 205 void HeitaKranaatti(PlatformCharacter pelaaja) 206 { 207 Grenade kranu = new Grenade(4.0); 208 ClusterGrenade kranaatti = new ClusterGrenade(4.0, 2); 209 kranaatti.NumberOfClusters = 6; 210 pelaaja.Throw(kranu, Angle.FromDegrees(30), 10000); 211 kranu.Explosion.ShockwaveReachesObject += KranaattiOsui; 212 Add(kranaatti); 213 } 214 215 216 void KranaattiOsui(IPhysicsObject rajahdyksenKohde, Vector v) 217 { 218 rajahdyksenKohde.Destroy(); 219 } 220 221 void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 222 { 223 ammus.Destroy(); 224 if (kohde == pelaaja1) 225 { 226 elamaLaskuri1.Value -= 3; 227 } 228 229 if (kohde == pelaaja2) 230 { 231 elamalaskuri2.Value -= 3; 232 } 89 233 } 90 234 91 235 void LisaaNappaimet() 92 236 { 237 pelaaja1.tikkaillaNappaimet = ControlContext.CreateSubcontext(); 238 pelaaja1.poisTikkailtaNappaimet = ControlContext.CreateSubcontext(); 239 pelaaja2.tikkaillaNappaimet = ControlContext.CreateSubcontext(); 240 pelaaja2.poisTikkailtaNappaimet = ControlContext.CreateSubcontext(); 241 93 242 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 94 243 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); … … 96 245 Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 97 246 Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus); 98 Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 247 Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus).InContext(pelaaja1.poisTikkailtaNappaimet); 248 249 Keyboard.Listen(Key.Up, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, 500.0).InContext(pelaaja1.tikkaillaNappaimet); 250 Keyboard.Listen(Key.Down, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, -500.0).InContext(pelaaja1.tikkaillaNappaimet); 251 Keyboard.Listen(Key.Up, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, 0.0).InContext(pelaaja1.tikkaillaNappaimet); 252 Keyboard.Listen(Key.Down, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, 0.0).InContext(pelaaja1.tikkaillaNappaimet); 253 254 Keyboard.Listen(Key.O, ButtonState.Down, Tahtaa, "Tähtää ylös", pelaaja1.Weapon, Angle.FromDegrees(1)); 255 Keyboard.Listen(Key.L, ButtonState.Down, Tahtaa, "Tähtää alas", pelaaja1.Weapon, Angle.FromDegrees(-1)); 256 Keyboard.Listen(Key.M, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 257 Keyboard.Listen(Key.G, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2); 99 258 100 259 Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus); 101 260 Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja2, nopeus); 102 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus); 103 104 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 105 106 ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus); 107 ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); 108 ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 109 110 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 261 Keyboard.Listen(Key.W, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, 500.0).InContext(pelaaja2.tikkaillaNappaimet); 262 Keyboard.Listen(Key.S, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, -500.0).InContext(pelaaja2.tikkaillaNappaimet); 263 Keyboard.Listen(Key.W, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, 0.0).InContext(pelaaja2.tikkaillaNappaimet); 264 Keyboard.Listen(Key.S, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, 0.0).InContext(pelaaja2.tikkaillaNappaimet); 265 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus).InContext(pelaaja2.poisTikkailtaNappaimet); ; 266 Keyboard.Listen(Key.Y, ButtonState.Down, Tahtaa, "Tähtää ylös", pelaaja2.Weapon, Angle.FromDegrees(1)); 267 Keyboard.Listen(Key.H, ButtonState.Down, Tahtaa, "Tähtää alas", pelaaja2.Weapon, Angle.FromDegrees(1)); 268 } 269 270 void LiikkuuTikkailla(Pelaaja pelaaja, double nopeus) 271 { 272 pelaaja.Velocity = new Vector(0, nopeus); 273 } 274 275 void Tahtaa(Weapon ase, Angle kulma) 276 { 277 ase.Angle += kulma; 111 278 } 112 279 113 280 void Liikuta(PlatformCharacter hahmo, double nopeus) 114 281 { 115 hahmo.Walk(nopeus 282 hahmo.Walk(nopeus); 116 283 } 117 284 … … 120 287 hahmo.Jump(nopeus); 121 288 } 122 123 void TormaaAseeseen(PhysicsObject hahmo, PhysicsObject tahti)124 {125 maaliAani.Play();126 MessageDisplay.Add("You're getting closer to their base!");127 tahti.Destroy();128 }129 289 } 290 -
2013/26/OskariN/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1Content/Tasohyppelypeli1Content.contentproj
r4213 r4246 51 51 <Processor>SoundEffectProcessor</Processor> 52 52 </Compile> 53 <Compile Include="pelitausta.txt">54 <SubType>Designer</SubType>55 <Name>pelitausta</Name>56 <Importer>TextFileImporter</Importer>57 <Processor>TextFileContentProcessor</Processor>58 </Compile>59 </ItemGroup>60 <ItemGroup>61 <Compile Include="player.png">62 <Name>player</Name>63 <Importer>TextureImporter</Importer>64 <Processor>TextureProcessor</Processor>65 </Compile>66 53 </ItemGroup> 67 54 <ItemGroup> … … 73 60 </ItemGroup> 74 61 <ItemGroup> 75 <Compile Include="player3.png"> 76 <Name>player3</Name> 77 <Importer>TextureImporter</Importer> 78 <Processor>TextureProcessor</Processor> 79 </Compile> 80 </ItemGroup> 81 <ItemGroup> 82 <Compile Include="player2.png"> 83 <Name>player2</Name> 62 <Compile Include="pelaaja2 %282%29.png"> 63 <Name>pelaaja2 %282%29</Name> 84 64 <Importer>TextureImporter</Importer> 85 65 <Processor>TextureProcessor</Processor> … … 94 74 </ItemGroup> 95 75 <ItemGroup> 96 <Compile Include="pelaaja2.png"> 97 <Name>pelaaja2</Name> 76 <Compile Include="pelitausta.txt"> 77 <Name>pelitausta</Name> 78 <Importer>TextFileImporter</Importer> 79 <Processor>TextFileContentProcessor</Processor> 80 </Compile> 81 </ItemGroup> 82 <ItemGroup> 83 <Compile Include="player3.png"> 84 <Name>player3</Name> 98 85 <Importer>TextureImporter</Importer> 99 86 <Processor>TextureProcessor</Processor> 87 </Compile> 88 </ItemGroup> 89 <ItemGroup> 90 <Compile Include="luoti.png"> 91 <Name>luoti</Name> 92 <Importer>TextureImporter</Importer> 93 <Processor>TextureProcessor</Processor> 94 </Compile> 95 </ItemGroup> 96 <ItemGroup> 97 <Compile Include="game music.mp3"> 98 <Name>game music</Name> 99 <Importer>Mp3Importer</Importer> 100 <Processor>SongProcessor</Processor> 100 101 </Compile> 101 102 </ItemGroup>
Note: See TracChangeset
for help on using the changeset viewer.