Changeset 4435 for 2013/27/JuhanaR/Korispeli/Korispeli/Korispeli
- Timestamp:
- 2013-07-04 15:01:06 (10 years ago)
- Location:
- 2013/27/JuhanaR/Korispeli/Korispeli/Korispeli
- Files:
-
- 24 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/27/JuhanaR/Korispeli/Korispeli/Korispeli/Korispeli.cs
r4413 r4435 16 16 PhysicsObject kori; 17 17 18 P latformCharacterpelaaja1;18 Pelihahmo pelaaja1; 19 19 20 20 Image pelaajanKuva = LoadImage("pelaaja1"); … … 24 24 Image koripallonKuva = LoadImage("Koripallo"); 25 25 Image koripallokorinKuva = LoadImage("Koripallokori"); 26 26 Image nuolenkuva = LoadImage("Nuoli"); 27 27 SoundEffect maaliAani = LoadSoundEffect("maali"); 28 28 29 29 bool VoikoHeittaa = true; 30 int kenttaNro = 1; 31 IntMeter pelaajaLaskuri; 30 32 31 33 DoubleMeter heittovoima; … … 33 35 void LuoVoimamittari() 34 36 { 35 heittovoima = new DoubleMeter( 70, 0, 100);37 heittovoima = new DoubleMeter(0, 0, 100); 36 38 heittovoima.MaxValue = 10; 37 39 heittovoima.UpperLimit += delegate { heittovoima.Value = 0; }; 38 40 39 41 ProgressBar heittoPalkki = new ProgressBar(150, 20); 40 heittoPalkki.X = Screen.Left + 15 0;42 heittoPalkki.X = Screen.Left + 15; 41 43 heittoPalkki.Y = 0; 42 44 heittoPalkki.Angle = Angle.RightAngle; … … 46 48 public override void Begin() 47 49 { 50 Level.Background.CreateGradient(Color.Black, Color.Orange); 51 Mouse.IsCursorVisible = true; 52 MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Lopeta"); 53 alkuValikko.DefaultCancel = 1; 54 Add(alkuValikko); 55 alkuValikko.AddItemHandler(0, MontakoPelaajaa); 56 alkuValikko.AddItemHandler(1, Exit); 57 } 58 59 void MontakoPelaajaa() 60 { 61 62 pelaajaLaskuri = new IntMeter(1, 1, 10); 63 Label pelaajia = new Label(); 64 pelaajia.BindTo(pelaajaLaskuri); 65 Add(pelaajia); 66 67 PushButton lisaa = new PushButton("Lisää"); 68 lisaa.Position = pelaajia.Position + new Vector(0, -50); 69 lisaa.Clicked += delegate { pelaajaLaskuri.Value++; }; 70 Add(lisaa); 71 72 PushButton vahenna = new PushButton("Vähennä"); 73 vahenna.Position = lisaa.Position + new Vector(0, -50); 74 vahenna.Clicked += delegate { pelaajaLaskuri.Value--; }; 75 Add(vahenna); 76 77 PushButton aloita = new PushButton("Aloita"); 78 aloita.Position = vahenna.Position + new Vector(0, -50); 79 aloita.Clicked += AloitaPeli; 80 Add(aloita); 81 82 } 83 84 void AloitaPeli() 85 { 86 ClearAll(); 87 AloitaKentta("kentta" + kenttaNro); 88 89 } 90 91 92 void AloitaKentta(string kentanNimi) 93 { 48 94 Gravity = new Vector(0, -1000); 49 for (int i = 0; i < 4; i++)95 for (int i = 0; i < pelaajaLaskuri.Value; i++) 50 96 { 51 97 Pelaaja pelaaja = new Pelaaja(); 52 98 pelaaja.Pisteet.UpperLimit += VaihdaKenttaa; 53 99 pelaajat.Add(pelaaja); 54 55 } 100 } 101 56 102 Mouse.IsCursorVisible = true; 57 103 58 59 60 LuoKentta(); 104 LuoKentta(kentanNimi); 105 106 double aika = 2; 107 108 Vector korinNopeus = new Vector(0, 100); 109 if (kenttaNro == 2) korinNopeus = new Vector(-100, 0); 110 if (kenttaNro == 3) korinNopeus = new Vector(-100, 100); 111 if (kenttaNro == 4) 112 { 113 aika = 4; 114 115 } 116 117 118 if (kenttaNro > 1) 119 { 120 Vector[] korinPaikat = {korinNopeus, -korinNopeus }; 121 kori.Velocity = korinPaikat[0]; 122 Timer ajastin = new Timer(); 123 ajastin.Start(); 124 ajastin.Interval = aika; 125 ajastin.Timeout += delegate { LiikutaKoria(korinPaikat); }; 126 127 128 } 61 129 LuoNaytot(); 130 LuoVoimamittari(); 62 131 LisaaNappaimet(); 63 LuoVoimamittari();64 132 Camera.ZoomToLevel(); 65 66 } 133 } 134 135 void LiikutaKoria(Vector[] positions) 136 { 137 if (kori.Velocity == positions[0]) 138 kori.Velocity = positions[1]; 139 else kori.Velocity = positions[0]; 140 } 141 67 142 68 143 void VaihdaKenttaa() … … 71 146 pelaajat.Clear(); 72 147 vuorossaOlevaPelaaja = 0; 73 Begin(); 74 148 kenttaNro++; 149 if (kenttaNro > 4) Exit(); 150 AloitaKentta("kentta" + kenttaNro); 75 151 } 76 152 … … 82 158 else vuorossaOlevaPelaaja++; 83 159 MessageDisplay.Add("Pelaajan " + (vuorossaOlevaPelaaja + 1) + " vuoro"); 84 pelaaja1.Position = new Vector( 160 pelaaja1.Position = new Vector(-200, 0); 85 161 } 86 162 … … 89 165 { 90 166 Label ylareuna = new Label("Pisteet"); 91 ylareuna.Position = new Vector(Screen.Right - 50, Screen.Top -50);92 int i = 1;167 ylareuna.Position = new Vector(Screen.Right - 50, Screen.Top - 50); 168 int i = 1; 93 169 foreach (var item in pelaajat) 94 170 { … … 96 172 pisteet.BindTo(item.Pisteet); 97 173 ylareuna.Add(pisteet); 98 pisteet.Position += new Vector(0, -i++ * 20); 174 pisteet.Position += new Vector(0, -i++ * 20); 99 175 } 100 176 Add(ylareuna); … … 102 178 103 179 104 void LuoKentta( )105 { 106 TileMap kentta = TileMap.FromLevelAsset( "kentta1");180 void LuoKentta(string kentanNimi) 181 { 182 TileMap kentta = TileMap.FromLevelAsset(kentanNimi); 107 183 kentta.SetTileMethod('V', LisaaVastustaja); 108 184 kentta.SetTileMethod('#', LisaaTaso); … … 114 190 PhysicsObject ylaReuna = Level.CreateTopBorder(); 115 191 ylaReuna.Tag = "reuna"; 192 193 116 194 Level.CreateHorizontalBorders(0, false, Color.Red); 117 195 Level.Background.CreateGradient(Color.Black, Color.Orange); 118 196 Level.Background.Image = LoadImage("Koripallokenttä"); 119 Level.Background.FitToLevel(); 197 Level.Background.FitToLevel(); 120 198 } 121 199 122 200 void LisaaTuomari(Vector paikka, double leveys, double korkeus) 123 201 { 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);202 PhysicsObject Tuomari = PhysicsObject.CreateStaticObject(leveys * 1.2, 1.5 * korkeus); 203 Tuomari.IgnoresCollisionResponse = true; 204 Tuomari.Position = paikka; 205 Tuomari.Y += 10; 206 Tuomari.Image = tuomarinKuva; 207 Add(Tuomari); 130 208 } 131 209 … … 140 218 void LisaaKori(Vector paikka, double leveys, double korkeus) 141 219 { 142 kori = PhysicsObject.CreateStaticObject(leveys *1.2, korkeus*1.2);220 kori = PhysicsObject.CreateStaticObject(leveys * 1.2, korkeus * 1.2); 143 221 kori.IgnoresCollisionResponse = true; 144 222 kori.Position = paikka; … … 150 228 void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 151 229 { 152 pelaaja1 = new P latformCharacter(leveys, korkeus*1.5);230 pelaaja1 = new Pelihahmo(leveys, korkeus * 1.5); 153 231 pelaaja1.Position = paikka; 154 232 pelaaja1.Mass = 4.0; 155 233 pelaaja1.Image = pelaajanKuva; 156 234 pelaaja1.CollisionIgnoreGroup = 1; 157 AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 235 pelaaja1.KulmaNaytin = new GameObject(LoadImage("Nuoli")); 236 pelaaja1.KulmanayttimenEtaisyys = 50; 237 Add(pelaaja1.KulmaNaytin); 238 MuutaHeittokulmaa(new AnalogState(), pelaaja1); 239 158 240 Add(pelaaja1); 159 241 } … … 161 243 void LisaaVastustaja(Vector paikka, double leveys, double korkeus) 162 244 { 163 PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus *2);245 PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus * 2); 164 246 Vastustaja.Position = paikka; 165 247 Vastustaja.Mass = 1000.0; … … 169 251 hyppyAjastin.Start(); 170 252 hyppyAjastin.Interval = 2; 171 hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump((kori.Y - Level.Bottom) * 4); };253 hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump((kori.Y - Level.Bottom) * 4); }; 172 254 } 173 255 174 256 PhysicsObject LisaaPallo() 175 257 { 176 PhysicsObject Pallo = new PhysicsObject (20,20);258 PhysicsObject Pallo = new PhysicsObject(20, 20); 177 259 Pallo.Shape = Shape.Circle; 178 260 Pallo.Image = koripallonKuva; … … 193 275 Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 194 276 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 195 196 Mouse.Listen(MouseButton.Left, ButtonState.Released, HeitaPallo, ""); 277 Mouse.Listen(MouseButton.Left, ButtonState.Released, HeitaPallo, "Heitä pallo", pelaaja1); 278 Mouse.Listen(MouseButton.Left, ButtonState.Down, heittovoima.AddValue, null, 0.20); 279 Mouse.ListenMovement(0.1, MuutaHeittokulmaa, null, pelaaja1); 197 280 198 281 ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 199 200 282 ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus); 201 283 ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); 202 ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 203 204 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 205 } 206 207 void HeitaPallo() 208 { 209 if (!VoikoHeittaa) 210 return; 284 ControllerOne.Listen(Button.X, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 285 ControllerOne.Listen(Button.A, ButtonState.Down, heittovoima.AddValue, null, 0.20); 286 ControllerOne.Listen(Button.A, ButtonState.Released, HeitaPallo, "Heitä Pallo", pelaaja1); 287 ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, MuutaHeittokulmaa, null, pelaaja1); 288 } 289 290 void MuutaHeittokulmaa(AnalogState an, Pelihahmo pelihahmo) 291 { 292 Angle heittokulma = (Mouse.PositionOnWorld - pelihahmo.Position).Angle; 293 pelihahmo.KulmaNaytin.Position = pelihahmo.Position + Vector.FromLengthAndAngle(pelihahmo.KulmanayttimenEtaisyys, (Mouse.PositionOnWorld - pelihahmo.Position).Angle); 294 pelihahmo.KulmaNaytin.Angle = heittokulma; 295 pelihahmo.Heittokulma = heittokulma; 296 if (an.StateVector.Magnitude < 0.1) return; 297 heittokulma = an.StateVector.Angle; 298 pelihahmo.KulmaNaytin.Position = pelihahmo.Position + Vector.FromLengthAndAngle(pelihahmo.KulmanayttimenEtaisyys, an.StateVector.Angle); 299 pelihahmo.KulmaNaytin.Angle = heittokulma; 300 pelihahmo.Heittokulma = heittokulma; 301 } 302 303 void HeitaPallo(Pelihahmo pelihahmo) 304 { 305 if (!VoikoHeittaa) return; 211 306 VoikoHeittaa = false; 212 PhysicsObject pallo =LisaaPallo();213 214 Vector suunta = (Mouse.PositionOnWorld - pallo.Position).Normalize();215 pallo.Hit(suunta * 150 0);216 307 PhysicsObject pallo = LisaaPallo(); 308 309 Vector suunta = Vector.FromLengthAndAngle(1, pelihahmo.Heittokulma); 310 pallo.Hit(suunta * 150 * heittovoima.Value); 311 heittovoima.Value = 0; 217 312 AddCollisionHandler(pallo, PalloOsuu); 218 313 } 314 219 315 220 316 void PalloOsuu(PhysicsObject pallo, PhysicsObject kohde) … … 222 318 if ("reuna".Equals(kohde.Tag)) return; 223 319 pallo.Destroy(); 224 if (kohde.Tag.Equals("kori")) 225 pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 320 if (kohde.Tag.Equals("kori")) pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 226 321 pallo.Destroyed += delegate { VaihdaPelaajaaVuorossa(); }; 227 228 322 Timer.SingleShot(1.0, delegate { VoikoHeittaa = true; }); 229 230 } 231 232 233 void Liikuta(PlatformCharacter hahmo, double nopeus) 234 { 235 if (hahmo.Position.X >= 200 && nopeus > 0) 323 } 324 325 326 void Liikuta(Pelihahmo hahmo, double nopeus) 327 { 328 if (hahmo.Position.X >= -200 && nopeus > 0) 236 329 { 237 330 hahmo.Velocity = new Vector(0, hahmo.Velocity.Y); 238 331 return; 239 332 } 240 241 } 242 243 void Hyppaa(P latformCharacterhahmo, double nopeus)333 hahmo.Walk(nopeus); 334 } 335 336 void Hyppaa(Pelihahmo hahmo, double nopeus) 244 337 { 245 338 hahmo.Jump(nopeus); 246 339 } 247 340 248 void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) 249 { 250 maaliAani.Play(); 251 MessageDisplay.Add("Heitit korin!"); 252 pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 253 VaihdaPelaajaaVuorossa(); 254 //tahti.Destroy(); 255 } 341 256 342 } 257 343 … … 263 349 public Pelaaja() 264 350 { 265 pisteet = new IntMeter(0, 0, 10);351 pisteet = new IntMeter(0, 0, 3); 266 352 } 267 353 -
2013/27/JuhanaR/Korispeli/Korispeli/Korispeli/Korispeli.csproj
r4369 r4435 19 19 <ApplicationIcon>Game.ico</ApplicationIcon> 20 20 <Thumbnail>GameThumbnail.png</Thumbnail> 21 <IsWebBootstrapper>false</IsWebBootstrapper> 22 <ReferencePath>$(registry:HKEY_LOCAL_MACHINE\Software\Jypeli@Install_Dir)\lib\x86</ReferencePath> 21 23 <PublishUrl>publish\</PublishUrl> 22 24 <Install>true</Install> … … 29 31 <UpdateRequired>false</UpdateRequired> 30 32 <MapFileExtensions>true</MapFileExtensions> 31 <ApplicationRevision> 0</ApplicationRevision>33 <ApplicationRevision>1</ApplicationRevision> 32 34 <ApplicationVersion>1.0.0.%2a</ApplicationVersion> 33 <IsWebBootstrapper>false</IsWebBootstrapper>34 35 <UseApplicationTrust>false</UseApplicationTrust> 36 <PublishWizardCompleted>true</PublishWizardCompleted> 35 37 <BootstrapperEnabled>true</BootstrapperEnabled> 36 <ReferencePath>$(registry:HKEY_LOCAL_MACHINE\Software\Jypeli@Install_Dir)\lib\x86</ReferencePath>37 38 </PropertyGroup> 38 39 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> … … 60 61 <PlatformTarget>x86</PlatformTarget> 61 62 <XnaCompressContent>true</XnaCompressContent> 63 </PropertyGroup> 64 <PropertyGroup> 65 <ManifestCertificateThumbprint>7EC0F7A4770761DACDE1BAEB48870B0E76273216</ManifestCertificateThumbprint> 66 </PropertyGroup> 67 <PropertyGroup> 68 <ManifestKeyFile>Korispeli_TemporaryKey.pfx</ManifestKeyFile> 69 </PropertyGroup> 70 <PropertyGroup> 71 <GenerateManifests>true</GenerateManifests> 72 </PropertyGroup> 73 <PropertyGroup> 74 <SignManifests>true</SignManifests> 62 75 </PropertyGroup> 63 76 <ItemGroup> … … 113 126 <Compile Include="Ohjelma.cs" /> 114 127 <Compile Include="Korispeli.cs" /> 128 <Compile Include="Pelihahmo.cs" /> 115 129 <Compile Include="Properties\AssemblyInfo.cs" /> 116 130 </ItemGroup> … … 152 166 </BootstrapperPackage> 153 167 </ItemGroup> 168 <ItemGroup> 169 <None Include="Korispeli_TemporaryKey.pfx" /> 170 </ItemGroup> 154 171 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 155 172 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
Note: See TracChangeset
for help on using the changeset viewer.