Changeset 2868 for 2012/23/EetuK
- Timestamp:
- 2012-06-08 10:51:55 (11 years ago)
- Location:
- 2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1
- Files:
-
- 6 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs
r2802 r2868 12 12 const double hyppyNopeus = 1000; 13 13 const int RUUDUN_KOKO = 40; 14 ScoreList topLista = new ScoreList(10, false, 0); 14 15 15 16 PlatformCharacter pelaaja1; 16 17 // PlatformCharacter vihollinen; 17 Image pelaajanKuva = LoadImage(" tyyppi");18 Image pelaajanKuva = LoadImage("erkki"); 18 19 Image tahtiKuva = LoadImage("tahti"); 19 20 Image vihukuva = LoadImage("vihu"); 21 Image maalikuva = LoadImage("maalikuva"); 22 Image morkokuva = LoadImage("mörkki"); 20 23 SoundEffect maaliAani = LoadSoundEffect("maali"); 21 24 Image vihukuva2 = LoadImage("lentävä pahis"); 25 ExplosionSystem es; 22 26 public override void Begin() 23 27 { 28 es = new ExplosionSystem(LoadImage("mursu"), 1000); 29 Add(es); 30 if (DataStorage.Exists("pisteet.xml")) 31 topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml"); 32 nautavalikko(null); 33 34 35 36 } 37 void nautavalikko(Window sender) 38 { 39 ClearAll(); 24 40 MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin", 25 41 "Aloita peli", "Parhaat pisteet", "Lopeta"); 26 42 valikko.ItemSelected += PainettiinValikonNappia; 27 43 Add(valikko); 28 29 30 44 } 31 45 … … 36 50 luoKentta(); 37 51 lisaaNappaimet(); 52 38 53 Camera.Follow(pelaaja1); 39 // Camera.ZoomToLevel();40 54 // Camera.ZoomToLevel(); 55 Camera.StayInLevel = true; 41 56 } 42 57 … … 44 59 { 45 60 TileMap kentta = TileMap.FromFile("kentta1.txt"); 46 kentta.SetTileMethod('#', lisaaTaso);61 kentta.SetTileMethod('#', LisaaTaso); 47 62 kentta.SetTileMethod('*', lisaaTahti); 48 63 kentta.SetTileMethod('N', lisaaPelaaja); 49 64 kentta.SetTileMethod('v', lisaavihollinen); 50 65 kentta.SetTileMethod('l', lisaavihu2); 66 kentta.SetTileMethod('m', LisaaMaali); 67 kentta.SetTileMethod('+', LisaaTaso2); 68 kentta.SetTileMethod('q', Lisaamorko); 51 69 kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 52 70 Level.CreateBorders(); 53 Level.Background.CreateGradient(Color.White, Color.SkyBlue); 54 } 55 56 void lisaaTaso(Vector paikka, double leveys, double korkeus) 71 Level.Background.CreateGradient(Color.White, Color.Crimson); 72 Level.Background.CreateStars(); 73 } 74 75 void LisaaMaali(Vector paikka, double leveys, double korkeus) 76 { 77 PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 78 Add(maali); maali.Tag = "maali"; 79 maali.Position = paikka; 80 maali.Image = maalikuva; 81 } 82 83 void LisaaTaso(Vector paikka, double leveys, double korkeus) 57 84 { 58 85 PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 59 86 taso.Position = paikka; 60 taso.Color = Color. Green;87 taso.Color = Color.Teal; 61 88 Add(taso); 62 89 } … … 74 101 void lisaaPelaaja(Vector paikka, double leveys, double korkeus) 75 102 { 76 77 78 79 103 pelaaja1 = new PlatformCharacter(leveys, korkeus); 80 104 pelaaja1.Position = paikka; … … 82 106 pelaaja1.Image = pelaajanKuva; 83 107 AddCollisionHandler(pelaaja1, kasittelePelaajanTormays); 84 Add(pelaaja1); 108 Add(pelaaja1); 85 109 pelaaja1.Weapon = new PlasmaCannon(20, 5); 86 110 pelaaja1.Weapon.Ammo.Value = int.MaxValue; 87 88 } 111 AddCollisionHandler(pelaaja1, "maali", pelaajatormasimaaliin); 112 } 113 89 114 90 115 void lisaaNappaimet() 91 116 { 117 Keyboard.Listen(Key.Space, ButtonState.Pressed, HeitaKranaatti, "heitä kranaatti"); 92 118 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 93 119 Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä"); … … 112 138 if (ammus != null) 113 139 { 140 ammus.Tag = "ammus"; 114 141 ammus.Size *= 3; 115 AddCollisionHandler(ammus, AmmusTormasi); 116 } 117 } 118 119 void AmmusTormasi(PhysicsObject ammus, PhysicsObject kohde) 120 { 142 AddCollisionHandler(ammus, "vuhu", CollisionHandler.AddMeterValue(pisteLaskuri, 1)); 143 AddCollisionHandler(ammus, "vihu", CollisionHandler.AddMeterValue(pisteLaskuri, 1)); 144 } 145 } 146 147 //void HeitaKranaatti() 148 //{ 149 // Grenade kranaatti = new Grenade(4.0); 150 // kranaatti.X = pelaaja1.X + 10; 151 // kranaatti.Y = pelaaja1.Y + 10; 152 // Add(kranaatti); 153 // kranaatti.ex 154 // Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.FromDegrees(45)); 155 // kranaatti.Hit(heittoVoima); 156 //} 157 158 void HeitaKranaatti() 159 { 160 PhysicsObject naatti = new PhysicsObject(LoadImage("grenade")); 161 Add(naatti); 162 naatti.Tag = "naatti"; 163 naatti.Restitution = 0.6; 164 naatti.Position = pelaaja1.Position; 165 naatti.Angle = pelaaja1.Angle; 166 naatti.CollisionIgnoreGroup = pelaaja1.CollisionIgnoreGroup; 167 Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.FromDegrees(45)); 168 naatti.Hit(heittoVoima); 169 170 Timer.SingleShot(2.5, delegate 171 { 172 KranaattiRajahti(naatti.X, naatti.Y, 375); naatti.Destroy(); 173 }); 174 } 175 176 void KranaattiRajahti(double x, double y, int numberOfParticles) 177 { 178 //NaattiPoks.X = x; 179 //NaattiPoks.Y = y; 180 //NaattiPoks.MinScale = 1; 181 //NaattiPoks.MaxScale = 10; 182 //NaattiPoks.AddEffect(x, y, numberOfParticles); 183 Explosion e = new Explosion(65); 184 Add(e); 185 e.Position = new Vector(x, y); 186 e.ShockwaveReachesObject += delegate(IPhysicsObject kohde, 187 Vector suunta) { ShockHit(kohde, suunta, e); }; 188 } 189 void ShockHit(IPhysicsObject kohde, Vector suunta, Explosion rajahdys) 190 { 191 121 192 if (kohde.Tag.ToString() == "vihu") 122 193 { 123 194 kohde.Destroy(); 195 pisteLaskuri.Value++; 196 es.AddEffect(kohde.Position, 100); 124 197 } 125 198 } … … 138 211 { 139 212 if (kohde.Tag.ToString() == "tahti") 140 { pisteLaskuri.Value += 1; 213 { 214 pisteLaskuri.Value += 1; 141 215 maaliAani.Play(); 142 MessageDisplay.Add("Keräsit tähden!"); 143 kohde.Destroy(); 144 } 216 MessageDisplay.Add("SAIT PISTEEN!!!!"); 217 kohde.Destroy(); 218 } 219 145 220 } 146 221 … … 157 232 vihollinen.Mass = 40; 158 233 vihollinen.Image = vihukuva; 159 AddCollisionHandler(vihollinen, pelaaja1,kasitteleVihollisenTormays);234 AddCollisionHandler(vihollinen, kasitteleVihollisenTormays); 160 235 Add(vihollinen); 161 236 } … … 163 238 void kasitteleVihollisenTormays(PhysicsObject hahmo, PhysicsObject kohde) 164 239 { 165 pisteLaskuri.Value += 1; 166 maaliAani.Play(); 167 MessageDisplay.Add("KUOLIT!!!"); 168 kohde.Destroy(); 169 } 240 if (kohde == pelaaja1) 241 { 242 pisteLaskuri.Value += 1; 243 maaliAani.Play(); 244 MessageDisplay.Add("KUOLIT!!!"); 245 kohde.Destroy(); 246 } 247 if (kohde.Tag.ToString() == "ammus") 248 { 249 hahmo.Destroy(); 250 kohde.Destroy(); 251 } 252 } 253 170 254 void PainettiinValikonNappia(int valinta) 171 255 { … … 176 260 break; 177 261 case 1: 262 HighScoreWindow topIkkuna = new HighScoreWindow( 263 "Parhaat pisteet", 264 topLista); 265 topIkkuna.Closed += nautavalikko; 266 Add(topIkkuna); 267 178 268 // ParhaatPisteet(); 269 //public class Peli(); 179 270 break; 180 271 case 2: … … 183 274 } 184 275 } 185 void lisaavihu2(Vector paikka, double leveys, double korkeus) 276 277 void lisaavihu2(Vector paikka, double leveys, double korkeus) 186 278 { 187 279 PhysicsObject vihu2 = new PhysicsObject(leveys, korkeus); … … 196 288 //vihu2.Mass = 40; 197 289 vihu2.Image = vihukuva2; 198 AddCollisionHandler(vihu2, pelaaja1,kasitteleVihollisenTormays);290 AddCollisionHandler(vihu2, kasitteleVihollisenTormays); 199 291 Add(vihu2); 200 292 }IntMeter pisteLaskuri; 201 293 202 void LuoLaskuri() 203 { 204 pisteLaskuri = new IntMeter(0); 205 206 Label pisteNaytto = new Label(); 207 pisteNaytto.X = Screen.Left + 100; 208 pisteNaytto.Y = Screen.Top - 100; 209 pisteNaytto.TextColor = Color.Red; 210 211 pisteNaytto.BindTo(pisteLaskuri); 212 Add(pisteNaytto); 213 214 215 } 216 294 void LuoLaskuri() 295 { 296 pisteLaskuri = new IntMeter(0); 297 298 Label pisteNaytto = new Label(); 299 pisteNaytto.X = Screen.Left + 100; 300 pisteNaytto.Y = Screen.Top - 100; 301 pisteNaytto.TextColor = Color.Red; 302 303 pisteNaytto.BindTo(pisteLaskuri); 304 Add(pisteNaytto); 305 306 307 } 308 void pelaajatormasimaaliin(PhysicsObject pelaaja, PhysicsObject maali) 309 { 310 HighScoreWindow topIkkuna = new HighScoreWindow( 311 "Parhaat pisteet", 312 "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", 313 topLista, pisteLaskuri); 314 topIkkuna.Closed += TallennaPisteet; 315 Add(topIkkuna); 316 317 MessageDisplay.Add("VOITIT!!!"); 318 // Timer.SingleShot(2.0, Begin); 319 pelaaja.Destroy(); 320 } 321 322 void TallennaPisteet(Window sender) 323 { 324 DataStorage.Save<ScoreList>(topLista, "pisteet.xml"); 325 nautavalikko(null); 326 } 327 328 void LisaaTaso2(Vector paikka, double leveys, double korkeus) 329 { 330 PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus); 331 taso2.Position = paikka; 332 taso2.Color = Color.Transparent; 333 Add(taso2); 334 } 335 336 void Lisaamorko(Vector paikka, double leveys, double korkeus) 337 { 338 PhysicsObject morko = new PhysicsObject(leveys, korkeus); 339 morko.Position = paikka; 340 FollowerBrain aivot = new FollowerBrain(pelaaja1); 341 aivot.TargetFollowDistance = 500; 342 aivot.Speed = 100; 343 aivot.Active = true; 344 morko.Brain = aivot; 345 morko.Tag = "vuhu"; 346 morko.Mass = 40; 347 morko.Image = morkokuva; 348 AddCollisionHandler(morko, kasittelemoronTormays); 349 Add(morko); 350 351 352 } 353 void kasittelemoronTormays(PhysicsObject hahmo, PhysicsObject kohde) 354 { 355 if (kohde == pelaaja1) 356 { 357 pisteLaskuri.Value += 0; 358 maaliAani.Play(); 359 MessageDisplay.Add("KUOLIT!!!"); 360 kohde.Destroy(); 361 } 362 } 217 363 } -
2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/kentta1.txt
r2802 r2868 1 1 * 2 ## 3 4 * *llllllllll 5 ## ## 6 7 * * 8 ## ## ##llllllllllllllllllllllll 9 10 * * * * ## 11 ## ## ## ## v #### llllllllll l l 12 v #### ################################## 13 * * * * * v #### ******************************v ######################## l l l l l l l l l l l 14 ## ## ## ## ## v # ## *** v #### v* v* v* v* v* v *v *v* v *v *v *v * v * v vv vv ###############################**************lll*************** ***************************** 15 l ## #### ## #### llllll ########### ###################################### ### ### ### ################################################# ################################ vvvvv ####################################### 16 N ll ## vvvv vv *******vv * vvvvvvvvvv vvvvv vv lllllvl lllllll 17 ******************** ############ ### 18 ########################################################################################################################################################################################################################################################################################################################################################################## 2 ## # 3 # l l l l l l l 4 * *llllllllll # ********************* 5 ## ## # ####################################################################################################### ###################### 6 # ###### 7 * * # ### 8 ## ## ##llll #### l l l l l l l # ### ############ *** 9 # ###################### ### ++++++ 10 * * * * ## # ##lllll +++ 11 ## ## ## ## ## ## ## ** # v #### llllllllll l l ++++ 12 #### # v #### ################################# + 13 * * * * * # v #### ******************************v ######################## 14 15 ## ## ## ## ## v # ## *** # v #### ####### v* v* v* v* v* v *v *v* v *v *v *v * v * v vv vv ###############################**************lll*************** q ***************************** m 16 l ## #### ## # #### llllll ########### ###################################### ### ### ### ################################################# ################################ v #######################################l 17 N ## vvvv vv *******vv # * vvvvvvvvvv vvvvv vv lllllll## 18 ******************** # # q vvvv ############ ### 19 ############################################################################ ll ############################################################################################################################################################################################################################################################################################ -
2012/23/EetuK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1Content/Tasohyppelypeli1Content.contentproj
r2802 r2868 82 82 </Compile> 83 83 </ItemGroup> 84 <ItemGroup> 85 <Compile Include="maalikuva.png"> 86 <Name>maalikuva</Name> 87 <Importer>TextureImporter</Importer> 88 <Processor>TextureProcessor</Processor> 89 </Compile> 90 </ItemGroup> 91 <ItemGroup> 92 <Compile Include="mörkki.png"> 93 <Name>mörkki</Name> 94 <Importer>TextureImporter</Importer> 95 <Processor>TextureProcessor</Processor> 96 </Compile> 97 </ItemGroup> 98 <ItemGroup> 99 <Compile Include="erkki.png"> 100 <Name>erkki</Name> 101 <Importer>TextureImporter</Importer> 102 <Processor>TextureProcessor</Processor> 103 </Compile> 104 </ItemGroup> 105 <ItemGroup> 106 <Compile Include="grenade.png"> 107 <Name>grenade</Name> 108 <Importer>TextureImporter</Importer> 109 <Processor>TextureProcessor</Processor> 110 </Compile> 111 </ItemGroup> 112 <ItemGroup> 113 <Compile Include="mursu.png"> 114 <Name>mursu</Name> 115 <Importer>TextureImporter</Importer> 116 <Processor>TextureProcessor</Processor> 117 </Compile> 118 </ItemGroup> 119 <ItemGroup> 120 <Compile Include="pena.png"> 121 <Name>pena</Name> 122 <Importer>TextureImporter</Importer> 123 <Processor>TextureProcessor</Processor> 124 </Compile> 125 </ItemGroup> 84 126 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 85 127 <!-- 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.