- Timestamp:
- 2013-06-13 11:56:27 (10 years ago)
- Location:
- 2013/24/NicoL
- Files:
-
- 40 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/24/NicoL/Mastermind/Mastermind/Mastermind/Mastermind.cs
r4088 r4112 7 7 using Jypeli.Widgets; 8 8 9 public class Maali : PhysicsObject 10 { 11 public bool pelaajaMaalissa = false; 12 public Maali(double leveys, double korkeus) 13 : base(leveys, korkeus) 14 { 15 IsUpdated = true; 16 } 17 18 public List<GameObject> PelaajatLahella(List<GameObject> oliot, double maxEtaisyys) 19 { 20 List<GameObject> pelaajatLahella = oliot.FindAll(x => x is Pelaaja && Vector.Distance(x.Position, this.Position) < maxEtaisyys); 21 return pelaajatLahella; 22 } 23 24 public override void Update(Time time) 25 { 26 27 base.Update(time); 28 } 29 } 30 9 31 public class Pelaaja : PlatformCharacter 10 32 { 33 public bool onkoMaalissa = false; 11 34 public Vector aloituspaikka; 35 12 36 public Pelaaja(double leveys, double korkeus) 13 37 : base(leveys, korkeus) 14 38 { 15 16 39 } 17 40 } … … 19 42 public class Mastermind : PhysicsGame 20 43 { 21 void PääValikko() 22 { 23 MultiSelectWindow alkuValikko = new MultiSelectWindow("", "Aloita", "Lopeta"); 24 alkuValikko.AddItemHandler(0, AloitaAlusta); 25 alkuValikko.AddItemHandler(1, Exit); 26 27 alkuValikko.Buttons[0].Image = nappula; 28 alkuValikko.Buttons[1].Image = nappula; 29 30 alkuValikko.Image = tausta; 31 Add(alkuValikko); 32 } 44 45 46 int kenttaNro = 1; 33 47 34 48 const double nopeus = 200; … … 36 50 const int RUUDUN_KOKO = 40; 37 51 52 List<Pelaaja> pelaajat; 38 53 Pelaaja pelaaja1; 39 54 Pelaaja pelaaja2; 55 56 bool pelaaja1Maalissa = false; 57 bool pelaaja2Maalissa = false; 58 59 Animation pelaajanKuva2; 60 Animation pelaajanKuva; 61 Animation maaliAnim; 62 Image tahtiKuva = LoadImage("tahti"); 40 63 Image maa = LoadImage("block"); 41 64 Image vaara = LoadImage("Danger block"); 42 65 Image tausta = LoadImage("Tausta"); 43 66 Image pääTausta = LoadImage("Taustakuva"); 44 Image nappula=LoadImage("nappula"); 45 46 47 Image pelaajanKuva = LoadImage("norsu"); 48 Image tahtiKuva = LoadImage("tahti"); 67 Image nappula = LoadImage("nappula"); 68 Image taustuliini = LoadImage("taustablur"); 69 49 70 50 71 SoundEffect maaliAani = LoadSoundEffect("maali"); … … 52 73 public override void Begin() 53 74 { 75 IsFullScreen = false; 76 Level.Size = new Vector(1000, 800); 54 77 Level.Background.Image = pääTausta; 78 Camera.ZoomToLevel(); 79 //Level.Background.TextureWrapSize = new Vector(Level.Width, Level.Height); 80 Level.Background.FitToLevel(); 55 81 PääValikko(); 56 } 82 83 MediaPlayer.Play("musa"); 84 MediaPlayer.IsRepeating = true; 85 86 } 87 88 void PääValikko() 89 { 90 MultiSelectWindow alkuValikko = new MultiSelectWindow("", "Aloita","Kentät", "Lopeta"); 91 alkuValikko.AddItemHandler(0, AloitaAlusta); 92 alkuValikko.AddItemHandler(1, KysyKentta); 93 alkuValikko.AddItemHandler(2, Exit); 94 95 foreach (var item in alkuValikko.Buttons) 96 { 97 item.Image = nappula; 98 } 99 //alkuValikko.Buttons[0].Image = nappula; 100 //alkuValikko.Buttons[1].Image = nappula; 101 //alkuValikko.Buttons[2].Image = nappula; 102 103 alkuValikko.Image = tausta; 104 Add(alkuValikko); 105 106 107 108 } 109 110 111 void KysyKentta() 112 { 113 MultiSelectWindow kenttaValikko = new MultiSelectWindow("", "kentta1", "kentta2", "kenttä 3", "kentta4", "kentta5", "kenttä 6"); 114 kenttaValikko.ItemSelected += KenttaValittu; 115 Add(kenttaValikko); 116 117 kenttaValikko.Image = tausta; 118 foreach (var item in kenttaValikko.Buttons) 119 { 120 item.Image = nappula; 121 } 122 } 123 124 125 void KenttaValittu(int valinta) 126 { 127 kenttaNro = valinta+1; 128 SeuraavaKentta(); 129 } 130 57 131 58 132 void AloitaAlusta() 59 133 { 60 134 ClearAll(); 61 Gravity = new Vector(0, -1000); 62 63 LuoKentta(); 64 LisaaNappaimet(); 135 //Gravity = new Vector(0, -1000); 136 137 138 SeuraavaKentta(); 139 65 140 // Camera.StayInLevel = true; 66 141 Camera.Follow(pelaaja1, pelaaja2);//, pelaaja2); 67 // Camera.ZoomFactor = 1.2; 68 69 } 70 71 void LuoKentta() 72 { 73 TileMap kentta = TileMap.FromLevelAsset("kentta1"); 74 kentta.SetTileMethod('#', LisaaTaso); 75 kentta.SetTileMethod('$', LisaaVTaso); 76 kentta.SetTileMethod('*', LisaaTahti); 142 } 143 144 145 void SeuraavaKentta() 146 { 147 ClearAll(); 148 pelaajat = new List<Pelaaja>(); 149 pelaajat.Clear(); pelaajanKuva2 = LoadAnimation("stillblue"); 150 pelaajanKuva = LoadAnimation("still"); 151 maaliAnim = LoadAnimation("maali"); 152 153 Gravity = new Vector(0, -1000); 154 155 if (kenttaNro == 1) LuoKentta("kentta1"); 156 else if (kenttaNro == 2) LuoKentta("kentta2"); 157 else if (kenttaNro == 3) LuoKentta("kentta3"); 158 else if (kenttaNro == 4) LuoKentta("kentta4"); 159 else if (kenttaNro == 5) LuoKentta("kentta5"); 160 else if (kenttaNro == 6) LuoKentta("kentta6"); 161 else if (kenttaNro == 7) LuoKentta("kentta7"); 162 else if (kenttaNro == 8) LuoKentta("kentta8"); 163 else if (kenttaNro == 9) LuoKentta("kentta9"); 164 else if (kenttaNro == 10) LuoKentta("kentta10"); 165 else if (kenttaNro == 11) LuoKentta("kentta11"); 166 else if (kenttaNro == 12) LuoKentta("kentta12"); 167 else if (kenttaNro == 13) LuoKentta("kentta13"); 168 else if (kenttaNro == 14) LuoKentta("kentta14"); 169 else if (kenttaNro == 15) LuoKentta("kentta15"); 170 else if (kenttaNro == 16) LuoKentta("kentta16"); 171 else if (kenttaNro > 16) Exit(); 172 LisaaNappaimet(); 173 Camera.Follow(pelaaja1, pelaaja2); 174 175 } 176 177 void LuoKentta(string kenttaTiedostonNimi) 178 { 77 179 pelaaja1 = new Pelaaja(1, 1); 78 180 pelaaja2 = new Pelaaja(1, 1); 79 kentta.SetTileMethod('A', LisaaPelaaja, pelaaja1, Color.Red); 80 kentta.SetTileMethod('B', LisaaPelaaja, pelaaja2, Color.Blue); 181 pelaajat.Add(pelaaja1); 182 pelaajat.Add(pelaaja2); 183 184 TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi); 185 kentta.SetTileMethod('#', LisaaTaso); 186 kentta.SetTileMethod('*', LisaaTahti); 187 kentta.SetTileMethod('V', LisaaVTaso); 188 kentta.SetTileMethod('G', LisaaMaali, pelaaja1); 189 kentta.SetTileMethod('g', LisaaMaali, pelaaja2); 190 kentta.SetTileMethod('A', LisaaPelaaja, pelaaja1, pelaajanKuva); 191 kentta.SetTileMethod('B', LisaaPelaaja, pelaaja2, pelaajanKuva2); 81 192 kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 82 Level.CreateBorders(1.0, false); 83 Level.Background.CreateGradient(Color.Blue, Color.Red); 193 Level.CreateBorders(); 194 Level.Background.Image = taustuliini; 195 Level.Background.TileToLevel(); 196 Level.BackgroundColor = Color.Gray; 197 84 198 } 85 199 … … 88 202 PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 89 203 taso.Position = paikka; 90 taso.Color = Color. Purple;204 taso.Color = Color.Green; 91 205 taso.Image = maa; 92 206 Add(taso); 93 207 } 208 209 210 void LisaaTahti(Vector paikka, double leveys, double korkeus) 211 { 212 PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 213 tahti.IgnoresCollisionResponse = true; 214 tahti.Position = paikka; 215 tahti.Image = tahtiKuva; 216 tahti.Tag = "tahti"; 217 Add(tahti); 218 } 219 220 void LisaaMaali(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja) 221 { 222 Maali maali = new Maali(leveys, korkeus); 223 maali.MakeStatic(); 224 maali.Position = paikka; 225 maali.Animation = maaliAnim; 226 maali.Animation.Start(); 227 maali.Tag = "maali"; 228 Timer ajastin = new Timer(); 229 ajastin.Interval = 0.5; 230 ajastin.Timeout += 231 delegate 232 { 233 List<GameObject> pelaajat = maali.PelaajatLahella(GetObjects(x => true), leveys * 2); 234 if (pelaajat.Count == 0) 235 { 236 pelaaja.onkoMaalissa = false; 237 return; 238 } 239 Pelaaja p = (Pelaaja)pelaajat[0]; 240 if (p == pelaaja) 241 { 242 pelaaja.onkoMaalissa = true; 243 if (this.pelaajat.TrueForAll(x => x.onkoMaalissa)) 244 { 245 MessageDisplay.Add("Kenttä selvitetty!"); 246 ajastin.Stop(); 247 // kenttaNro++; 248 KenttäValikko(); 249 //SeuraavaKentta(); 250 251 return; 252 } 253 } 254 }; 255 ajastin.Start(); 256 Add(maali); 257 258 } 259 260 void LisaaPelaaja(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja, Animation animaatio) //, PlatformCharacter pelaaja, Animation paikallaan, Animation kavely) 261 { 262 pelaaja.Size = new Vector(leveys * 0.8, korkeus * 0.8); 263 pelaaja.aloituspaikka = paikka; 264 pelaaja.Position = paikka; 265 pelaaja.Mass = 4.0; 266 pelaaja.Animation = animaatio; 267 pelaaja.Animation.Start(); 268 AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja, "vaara", TormaaVaaraan); 269 // AddCollisionHandler(pelaaja, "maali", maaliinPaasy); 270 Add(pelaaja); 271 } 272 273 //void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) //, PlatformCharacter pelaaja, Animation paikallaan, Animation kavely) 274 //{ 275 // pelaaja2 = new Pelaaja(leveys * 0.8, korkeus * 0.8); 276 // pelaaja2.Position = paikka; 277 // pelaaja2.Mass = 4.0; 278 // pelaaja2.Animation = pelaajanKuva2; 279 // pelaaja2.Animation.Start(); 280 // AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja2, "tahti", TormaaTahteen); 281 // AddCollisionHandler(pelaaja2, "maali", maaliinPaasy); 282 // Add(pelaaja2); 283 //} 284 94 285 void LisaaVTaso(Vector paikka, double leveys, double korkeus) 95 286 { … … 103 294 } 104 295 105 void LisaaTahti(Vector paikka, double leveys, double korkeus) 106 { 107 PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 108 tahti.IgnoresCollisionResponse = true; 109 tahti.Position = paikka; 110 tahti.Image = tahtiKuva; 111 tahti.Tag = "vaara"; 112 Add(tahti); 113 } 114 115 void LisaaPelaaja(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja, Color vari) 116 { 117 pelaaja.Size = new Vector(leveys * 0.8, korkeus * 0.8); 118 pelaaja.Position = paikka; 119 pelaaja.aloituspaikka = paikka; 120 pelaaja.Mass = 4.0; 121 pelaaja.Color = vari; 122 pelaaja.Shape = Shape.Rectangle; 123 // AddCollisionHandler(pelaaja, "vaara", TormaaTahteen); 124 AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja, "vaara", AloitaKenttaAlusta); 125 Add(pelaaja); 126 } 127 128 void AloitaKenttaAlusta(Pelaaja pelaaja, PhysicsObject vaara) 129 { 130 pelaaja1.Stop(); 131 pelaaja2.Stop(); 132 pelaaja1.Position = pelaaja1.aloituspaikka; 133 pelaaja2.Position = pelaaja2.aloituspaikka; 134 } 296 //void maaliinPaasy(PhysicsObject tormaaja, PhysicsObject kohde) 297 //{ 298 // if (tormaaja == pelaaja1) 299 // { 300 // pelaaja1Maalissa = true; 301 // } 302 // if (tormaaja == pelaaja2) 303 // { 304 // pelaaja2Maalissa = true; 305 // } 306 // if (pelaaja1Maalissa == true && pelaaja2Maalissa == true) 307 // { 308 // //MessageDisplay.Add("Selvitit kentän!"); 309 // } 310 311 //} 312 313 135 314 136 315 void LisaaNappaimet() 137 316 { 138 317 Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 139 Keyboard.Listen(Key.Escape, ButtonState.Pressed, VäliValikko 140 , "Valikko"); 318 Keyboard.Listen(Key.Escape, ButtonState.Pressed, VäliValikko, "Valikko"); 141 319 142 320 Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); … … 154 332 ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 155 333 156 //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");157 } 158 159 void Liikuta(P latformCharacterhahmo, double nopeus)334 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 335 } 336 337 void Liikuta(Pelaaja hahmo, double nopeus) 160 338 { 161 339 hahmo.Walk(nopeus); 162 340 } 163 341 164 void Hyppaa(P latformCharacterhahmo, double nopeus)342 void Hyppaa(Pelaaja hahmo, double nopeus) 165 343 { 166 344 hahmo.Jump(nopeus); 167 345 } 168 346 169 void TormaaTahteen(PhysicsObject hahmo, PhysicsObject vtaso) 170 { 171 AloitaAlusta(); 172 MessageDisplay.Add("Try again!"); 173 174 } 347 void TormaaVaaraan(Pelaaja pelaaja, PhysicsObject vtaso) 348 { 349 //AloitaAlusta(); 350 pelaajat.ForEach(x => x.Position = x.aloituspaikka); 351 MessageDisplay.Add("Yritä uudestaan!"); 352 353 } 354 175 355 void VäliValikko() 176 356 { … … 179 359 //alkuValikko.AddItemHandler(0, AloitaAlusta); 180 360 väliValikko.AddItemHandler(1, AloitaAlusta); 181 väliValikko.AddItemHandler(2, PääValikko); 361 väliValikko.AddItemHandler(2, delegate { 362 ClearAll(); 363 Begin(); 364 }); 182 365 183 366 väliValikko.Buttons[0].Image = nappula; 184 väliValikko.Buttons[1].Image = nappula;367 väliValikko.Buttons[1].Image = nappula; 185 368 väliValikko.Buttons[2].Image = nappula; 186 369 … … 189 372 } 190 373 374 void KenttäValikko() 375 { 376 MultiSelectWindow kenttäValikko = new MultiSelectWindow("Kenttä selvitetty!", "Seuraava", "Uudestaan", "Lopeta"); 377 kenttäValikko.AddItemHandler(0, delegate { ++kenttaNro; SeuraavaKentta(); }); 378 kenttäValikko.AddItemHandler(1, AloitaAlusta); 379 kenttäValikko.AddItemHandler(2, delegate { 380 ClearAll(); 381 Begin(); } 382 ); 383 384 kenttäValikko.Buttons[0].Image = nappula; 385 kenttäValikko.Buttons[1].Image = nappula; 386 kenttäValikko.Buttons[2].Image = nappula; 387 388 kenttäValikko.Image = tausta; 389 Add(kenttäValikko); 390 } 191 391 } -
2013/24/NicoL/Mastermind/Mastermind/MastermindContent/MastermindContent.contentproj
r4088 r4112 46 46 </ItemGroup> 47 47 <ItemGroup> 48 <Compile Include="maali.wav">49 <Name>maali</Name>50 <Importer>WavImporter</Importer>51 <Processor>SoundEffectProcessor</Processor>52 </Compile>53 48 <Compile Include="norsu.png"> 54 49 <Name>norsu</Name> … … 121 116 </Compile> 122 117 </ItemGroup> 118 <ItemGroup> 119 <Compile Include="musa.mp3"> 120 <Name>musa</Name> 121 <Importer>Mp3Importer</Importer> 122 <Processor>SongProcessor</Processor> 123 </Compile> 124 </ItemGroup> 125 <ItemGroup> 126 <Compile Include="maali.anim"> 127 <Name>maali</Name> 128 <Importer>AnimationImporter</Importer> 129 <Processor>AnimationContentProcessor</Processor> 130 </Compile> 131 </ItemGroup> 123 132 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 124 133 <!-- 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.