Changeset 4410
- Timestamp:
- 2013-07-03 14:58:30 (10 years ago)
- Location:
- 2013/27/Emil-AleksiK/dp1/dp1
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/27/Emil-AleksiK/dp1/dp1/dp1/dp1.cs
r4376 r4410 10 10 { 11 11 PhysicsObject dp; 12 DoubleMeter elamaLaskuri; 13 AssaultRifle pistooli; 12 14 public override void Begin() 13 15 { 14 dp = new PhysicsObject(60,60,Shape.Circle);15 Add(dp);16 luo_kenttä(); 17 LuoElamaLaskuri(); 16 18 Level.CreateBorders(0, false); 17 Camera.ZoomToLevel(); 19 Camera.Follow(dp); 20 21 pistooli = new AssaultRifle(30, 10); 22 23 //Ammusten määrä aluksi: 24 pistooli.Ammo.Value = 20; 25 26 //Mitä tapahtuu kun ammus osuu johonkin? 27 pistooli.ProjectileCollision = AmmusOsui; 28 29 dp.Add(pistooli); 18 30 19 31 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); … … 27 39 Keyboard.Listen(Key.Down, ButtonState.Down, liiku, null, 0.0, -500.0); 28 40 Keyboard.Listen(Key.Down, ButtonState.Released, liiku, null, 0.0, 0.0); 29 41 Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pistooli); 30 42 } 31 43 32 void liiku(double X, double Y)44 void liiku(double X, double Y) 33 45 { 34 dp.Velocity = new Vector(X,Y); 46 dp.Velocity = new Vector(X, Y); 47 dp.Angle = dp.Velocity.Angle; 48 49 } 50 void luo_kenttä() 51 { 52 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta1"); 53 54 //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 55 ruudut.SetTileMethod(Color.Red, LuoPelaaja); 56 ruudut.SetTileMethod(Color.Black, LuoSeinä); 57 ruudut.SetTileMethod(Color.Blue, LuoVihollinen); 58 ruudut.Execute(40, 40); 59 } 60 void LuoPelaaja(Vector paikka, double leveys, double korkeus) 61 { 62 dp = new PhysicsObject(30, 30, Shape.Circle); 63 dp.Position = paikka; 64 dp.LinearDamping = 0.8; 65 dp.Restitution = 0; 66 dp.Color = Color.Red; 67 Add(dp); 68 AddCollisionHandler(dp, "vihollinen", rysähdys); 69 dp.CanRotate = false; 70 71 } 72 void LuoSeinä(Vector paikka, double leveys, double korkeus) 73 { 74 PhysicsObject seinä = PhysicsObject.CreateStaticObject(leveys, korkeus); 75 seinä.Position = paikka; 76 seinä.Color = Color.Black; 77 seinä.Tag = "seinä"; 78 Add(seinä); 79 } 80 void LuoVihollinen(Vector paikka, double leveys, double korkeus) 81 { 82 PhysicsObject vihollinen = new PhysicsObject(leveys / 1.3, korkeus / 1.3); 83 vihollinen.Position = paikka; 84 vihollinen.Shape = Shape.Circle; 85 vihollinen.Color = Color.Blue; 86 vihollinen.Tag = "vihollinen"; 87 //vihollinen.Size = new Vector(30, 30); 88 hippa(vihollinen, 0); 89 AddCollisionHandler(vihollinen, delegate(PhysicsObject obj, PhysicsObject toin) { hippa(vihollinen, 0); }); 90 Add(vihollinen); 91 } 92 93 void hippa(PhysicsObject vihollinen, int kertaa) 94 { 95 if (kertaa > 50) return; 96 Vector[] vectorit = { new Vector(vihollinen.X, vihollinen.Y + 40), new Vector(vihollinen.X, vihollinen.Y - 40), new Vector(vihollinen.X + 40, vihollinen.Y), new Vector(vihollinen.X - 40, vihollinen.Y) }; 97 Vector suunta = RandomGen.SelectOne<Vector>(vectorit); 98 if (GetObjectAt(suunta, "seinä", 10) == null) 99 { 100 vihollinen.MoveTo(suunta, 100, delegate { hippa(vihollinen, 0); }); 101 return; 102 } 103 else hippa(vihollinen, ++kertaa); 104 //Vector alaPuoli = new Vector(vihollinen.X, vihollinen.Y - 40); 105 //if (GetObjectAt(alaPuoli, "seinä", 5) == null) 106 //{ 107 // vihollinen.MoveTo(alaPuoli, 100, delegate { hippa(vihollinen); }); 108 // return; 109 //} 110 //Vector oikea = new Vector(vihollinen.X + 40, vihollinen.Y); 111 //if (GetObjectAt(oikea, "seinä", 5) == null) 112 //{ 113 // vihollinen.MoveTo(oikea, 100, delegate { hippa(vihollinen); }); 114 // return; 115 //} 116 //Vector vasen = new Vector(vihollinen.X - 40, vihollinen.Y); 117 //if (GetObjectAt(vasen, "seinä", 5) == null) 118 //{ 119 // vihollinen.MoveTo(vasen, 100, delegate { hippa(vihollinen); }); 120 // return; 121 //} 122 123 } 124 void LuoElamaLaskuri() 125 { 126 elamaLaskuri = new DoubleMeter(100); 127 elamaLaskuri.MaxValue = 100; 128 elamaLaskuri.LowerLimit += ElamaLoppui; 129 130 ProgressBar elamaPalkki = new ProgressBar(150, 20); 131 elamaPalkki.X = Screen.Left + 150; 132 elamaPalkki.Y = Screen.Top - 20; 133 elamaPalkki.BindTo(elamaLaskuri); 134 Add(elamaPalkki); 135 } 136 void ElamaLoppui() 137 { 138 MessageDisplay.Add("Elämät loppuivat, voi voi."); 139 } 140 void rysähdys(PhysicsObject pelaaja, PhysicsObject vihollinen) 141 { 142 elamaLaskuri.Value -= 20; 143 } 144 void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 145 { 146 ammus.Destroy(); 147 148 } 149 void AmmuAseella(AssaultRifle pistooli) 150 { 151 PhysicsObject ammus = pistooli.Shoot(); 152 153 if (ammus != null) 154 { 155 //ammus.Size *= 3; 156 //ammus.Image = ... 157 //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 158 } 159 35 160 36 161 } -
2013/27/Emil-AleksiK/dp1/dp1/dp1Content/dp1Content.contentproj
r4376 r4410 45 45 <Reference Include="AnimationExtension" /> 46 46 </ItemGroup> 47 <ItemGroup> 48 <Compile Include="kentta1.png"> 49 <Name>kentta1</Name> 50 <Importer>TextureImporter</Importer> 51 <Processor>TextureProcessor</Processor> 52 </Compile> 53 </ItemGroup> 47 54 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 48 55 <!-- 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.