Changeset 4639
- Timestamp:
- 2013-07-24 15:05:20 (10 years ago)
- Location:
- 2013/30/NoelV/shooter/shooter
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/30/NoelV/shooter/shooter/shooter/shooter.cs
r4582 r4639 9 9 public class shooter : PhysicsGame 10 10 { 11 DoubleMeter elamaLaskuri; 12 IntMeter pisteLaskuri; 13 IntMeter vihollisLaskuri; 14 11 15 Image aluksenKuva = LoadImage("alus"); 12 16 Image vihollisenKuva = LoadImage("vihollinen"); 13 17 PhysicsObject alus; 18 PhysicsObject enkka; 19 20 PhysicsObject ammus; 14 21 15 22 public override void Begin() 16 23 { 17 PhysicsObject alus = new PhysicsObject(100, 100); 24 LuoPelaaja(); 25 26 27 LuoVihollinen(new Vector(0, 450)); 28 29 //Surfaces reunat = Level.CreateBorders(1.3, true); 30 31 Level.BackgroundColor = Color.Gray; 32 33 Timer vihunLuontiAjastin = new Timer(); 34 vihunLuontiAjastin.Interval = 0.5; 35 vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 36 vihunLuontiAjastin.Start(); 37 38 LuoElamaLaskuri(); 39 LuoPisteLaskuri(); 40 41 42 Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ampuu", alus); 43 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 44 45 Level.Background.CreateGradient(Color.Red, Color.Blue); 46 Camera.ZoomToLevel(); 47 } 48 49 private void LuoPelaaja() 50 { 51 alus = new PhysicsObject(100, 100); 18 52 alus.Image = aluksenKuva; 19 53 Add(alus); 20 54 Mouse.IsCursorVisible = true; 55 alus.CollisionIgnoreGroup = 2; 56 alus.MakeStatic(); 57 Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 58 alus.Position = new Vector(0, -350); 59 alus.Tag = "alus"; 60 alus.Restitution = 1.5; 61 alus.CanRotate = false; 62 63 AddCollisionHandler(alus, "vihu", OsuuViholliseen); 64 65 66 67 } 68 69 70 void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 71 { 72 elamaLaskuri.Value--; 73 74 } 75 76 77 private void LuoVihollinen(Vector paikka) 78 { 21 79 PhysicsObject vihollinen = new PhysicsObject(100, 100); 22 vihollinen.Image = 23 // TODO: Kirjoita ohjelmakoodisi tähän 24 25 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 80 vihollinen.Position = paikka; 81 vihollinen.Image = vihollisenKuva; 82 83 Add(vihollinen); 84 Vector impulssi = new Vector(0.0, -10000.0); 85 vihollinen.Hit(impulssi); 86 vihollinen.Restitution = 1.5; 87 //vihollinen.Velocity = 100; 88 vihollinen.Tag = "vihu"; 89 90 vihollinen.MoveTo(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Bottom - 250), 500, delegate { vihollisLaskuri.Value++; }); 91 //FollowerBrain seuraajanAivot = new FollowerBrain("alus"); 92 //seuraajanAivot.Speed = 500.0; 93 //seuraajanAivot.DistanceClose = 200; 94 //seuraajanAivot.TargetClose += delegate 95 //{ 96 // seuraajanAivot.Active = false; 97 // vihollinen.Hit(new Vector(0, -5000)); 98 99 //}; 100 101 //vihollinen.Brain = seuraajanAivot; 102 103 104 } 105 106 107 108 void Ammu(PhysicsObject ampuja) 109 { 110 if (ampuja.IsDestroyed) return; 111 ammus = new PhysicsObject(5, 15); 112 ammus.Color = Color.OrangeRed; 113 ammus.LifetimeLeft = TimeSpan.FromSeconds(4); 114 ammus.Position = ampuja.Position; 115 ammus.CollisionIgnoreGroup = ampuja.CollisionIgnoreGroup; 116 Add(ammus); 117 118 ammus.Hit(Vector.FromLengthAndAngle(1000, ampuja.Angle + Angle.FromDegrees(90))); 119 ammus.Angle = ampuja.Angle; 120 ammus.Tag = "ammus"; 121 AddCollisionHandler(ammus, AmmusOsuu); 122 } 123 124 void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 125 { 126 ammus.Destroy(); 127 if (kohde.Tag.Equals("vihu")) 128 { 129 Explosion rajahdys = new Explosion(100); 130 rajahdys.Position = kohde.Position; 131 rajahdys.ShockwaveColor = Color.Transparent; 132 Add(rajahdys); 133 kohde.Destroy(); 134 pisteLaskuri.Value++; 135 } 136 } 137 138 139 void LiikutaPelaajaa(Vector vektori) 140 { 141 alus.Push(vektori); 142 } 143 144 void KuunteleLiiketta(AnalogState hiirenTila) 145 { 146 alus.X = Mouse.PositionOnWorld.X; 147 148 Vector hiirenLiike = hiirenTila.MouseMovement; 149 } 150 151 void LuoPisteLaskuri() 152 { 153 pisteLaskuri = new IntMeter(0, 0, int.MaxValue); 154 155 Label pisteNaytto = new Label(); 156 pisteNaytto.X = Screen.Right - 100; 157 pisteNaytto.Y = Screen.Top - 100; 158 pisteNaytto.TextColor = Color.Orange; 159 pisteNaytto.Color = Color.Blue; 160 pisteNaytto.IntFormatString = "Pisteet: {00}"; 161 pisteNaytto.BindTo(pisteLaskuri); 162 Add(pisteNaytto); 163 164 vihollisLaskuri = new IntMeter(0, 0, 5); 165 vihollisLaskuri.UpperLimit += ElamaLoppui; 166 167 Label vihollisNaytto = new Label(); 168 vihollisNaytto.X = 0; 169 vihollisNaytto.Y = Screen.Top - 100; 170 vihollisNaytto.TextColor = Color.Black; 171 vihollisNaytto.Color = Color.Red; 172 vihollisNaytto.IntFormatString = "Vihollisia pääsi läpi: {00}"; 173 vihollisNaytto.BindTo(vihollisLaskuri); 174 Add(vihollisNaytto); 175 } 176 177 178 void LuoElamaLaskuri() 179 { 180 elamaLaskuri = new DoubleMeter(10); 181 elamaLaskuri.MaxValue = 10; 182 elamaLaskuri.LowerLimit += ElamaLoppui; 183 184 ProgressBar elamaPalkki = new ProgressBar(150, 20); 185 elamaPalkki.X = Screen.Left + 150; 186 elamaPalkki.Y = Screen.Top - 20; 187 elamaPalkki.BindTo(elamaLaskuri); 188 Add(elamaPalkki); 189 } 190 191 void ElamaLoppui() 192 { 193 Explosion rajahdys = new Explosion(50); 194 195 rajahdys.Position = alus.Position; 196 Add(rajahdys); 197 198 199 alus.Destroy(); 200 MessageDisplay.Add("Hävisit pelin"); 201 202 Label teksti = new Label("PELI LOPPUI!!!"); 203 teksti.TextScale = new Vector(3, 3); 204 Add(teksti); 205 26 206 } 27 207 } 28 208 209 210 211 212 -
2013/30/NoelV/shooter/shooter/shooterContent/shooterContent.contentproj
r4582 r4639 52 52 </Compile> 53 53 </ItemGroup> 54 <ItemGroup> 55 <Compile Include="vihollinen.png"> 56 <Name>vihollinen</Name> 57 <Importer>TextureImporter</Importer> 58 <Processor>TextureProcessor</Processor> 59 </Compile> 60 </ItemGroup> 54 61 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 55 62 <!-- 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.