- Timestamp:
- 2011-06-29 14:54:19 (12 years ago)
- Location:
- 2011/26/JaniN/neon wars
- Files:
-
- 3 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
2011/26/JaniN/neon wars/neon wars/neon wars/Peli.cs
r2241 r2314 9 9 using Physics2DDotNet.Ignorers; 10 10 11 12 11 class Pelaaja : PhysicsObject 12 { 13 public int Elamat = 10; 14 15 public Pelaaja(double leveys, double korkeus) 16 : base(leveys, korkeus) 17 { 18 } 19 } 20 class vihulainen : PhysicsObject 21 { 22 public int Elamat = 2; 23 24 public vihulainen(double leveys, double korkeus) 25 : base(leveys, korkeus) 26 { 27 } 28 } 13 29 public class Peli : PhysicsGame 14 30 { 15 P hysicsObject Ihansama;31 Pelaaja pelaaja; 16 32 GameObject pyssy; 17 33 int montakoVihollistaLuotu = 0; 34 int montakoVihollistaLuodaan = 1; 18 35 PhysicsObject alareuna; 36 int pisteet = 0; 37 bool ladattu = true; 38 Label pistelaskuri; 39 int vihollisia; 40 int montakoVihollistaRuudullaEnintaan = 10; 41 BarGauge pelaajaElamaPalkki; 42 DoubleMeter pelaajanElamat; 43 Image peliloppui = LoadImage("gameover"); 44 int kentanLeveys = 400; 45 int kentanKorkeus = 380; 46 19 47 20 48 public override void Begin() 21 49 { 22 23 50 ClearAll(); 51 Keyboard.Listen(Key.Enter, ButtonState.Released, Start_game, null); 52 aloitusruudunnappulat(); 53 } 54 55 void Start_game() 56 { 57 ClearAll(); 24 58 59 //Level.Width = Level.Width * 2; 60 Level.Width = kentanLeveys; 61 //Level.Height = Level.Height * 2; 62 //Level.Height = Level.Height / 2; 25 63 aseta_näppäimet(); 26 64 Mouse.IsCursorVisible = true; 65 Camera.ZoomToLevel(); 66 Timer latausajastin = new Timer(); 67 latausajastin.Interval = 0.03; 68 latausajastin.Trigger += new Timer.TriggerHandler(latausajastin_Trigger); 69 latausajastin.Start(); 70 71 72 vihollisia = 0; 73 montakoVihollistaLuodaan = 1; 74 montakoVihollistaRuudullaEnintaan = 10; 75 montakoVihollistaLuotu = 0; 76 77 Level.BackgroundColor = Color.DarkCyan; 78 79 80 Timer vihollistenLuontiAjastin = new Timer(); 81 vihollistenLuontiAjastin.Interval = 1; 82 vihollistenLuontiAjastin.Trigger += TeeVihollisia; 83 vihollistenLuontiAjastin.Start(); 84 //TeeVihollinen(ajastin); 85 86 Timer vihollistenLuomisenNopeutus = new Timer(); 87 vihollistenLuomisenNopeutus.Interval = 5; // Kuinka monen sekunnin välein vihuja tulee lisää 88 vihollistenLuomisenNopeutus.Trigger += NopeutaVihollistenLuontia; 89 vihollistenLuomisenNopeutus.Tag = vihollistenLuontiAjastin; 90 vihollistenLuomisenNopeutus.Start(); 91 92 pelaaja = new Pelaaja(50.0, 50.0); 93 pelaaja.X = 0; 94 pelaaja.Color = Color.Blue; 95 pelaaja.CollisionIgnoreGroup = 1; 96 pelaaja.Shape = Shape.Triangle; 97 pelaaja.Y = Level.Bottom + 100; 98 Add(pelaaja); 99 100 pelaajanElamat = new DoubleMeter(pelaaja.Elamat); 101 pelaajanElamat.LowerLimit += PeliLoppui; 102 103 pelaajaElamaPalkki = new BarGauge(20, Screen.Width / 3); 104 //pelaajaElamaPalkki.X = Screen.Left + Screen.Width / 4; 105 pelaajaElamaPalkki.Y = Screen.Bottom + 40; 106 pelaajaElamaPalkki.Angle = -Angle.FromDegrees(90); 107 pelaajaElamaPalkki.Color = Color.Red; 108 pelaajaElamaPalkki.BarColor = Color.Green; 27 109 110 pelaajaElamaPalkki.BorderColor = Color.Purple; 111 pelaajanElamat.MaxValue = 10; 112 pelaajanElamat.Value = 10; 113 pelaajaElamaPalkki.BindTo(pelaajanElamat); 28 114 29 Timer ajastin = new Timer(); 30 ajastin.Interval = 0.05; 31 ajastin.Trigger += TeeVihollinen; 32 ajastin.Start(); 33 //TeeVihollinen(ajastin); 34 35 Ihansama = PhysicsObject.CreateStaticObject(50.0, 50.0); 36 Ihansama.X = 0; 37 Ihansama.Y = Level.Bottom + 100; 38 Add(Ihansama); 39 115 Add(pelaajaElamaPalkki); 40 116 41 117 pyssy = new GameObject(100, 5); 42 118 pyssy.Color = Color.Black; 43 Ihansama.Add(pyssy); 44 //pyssy.Position = new Vector(Ihansama.Position.X, Ihansama.Position.Y+pyssy.Height/2); 45 //Add(pyssy); 46 47 //HingeJoint liitos = PhysicsGame.CreateHingeJoint(Ihansama, pyssy, Ihansama.Position); 48 //Add(liitos); 119 pelaaja.Add(pyssy); 120 49 121 pyssy.Image = LoadImage("Untitled"); 50 // Gravity = new Vector(0, -1000);51 122 Level.CreateBorders(); 123 52 124 alareuna = Level.CreateBottomBorder(); 53 54 55 } 56 57 125 126 127 pistelaskuri = new Label(pisteet.ToString()); 128 pistelaskuri.Position = new Vector(Screen.Right - 40, Screen.Top - 10); 129 Add(pistelaskuri); 130 } 131 132 void PeliLoppui(double arvo) 133 { 134 ClearAll(); 135 Level.Background.Image = peliloppui; 136 Timer.SingleShot(3, Begin); 137 } 138 139 void latausajastin_Trigger(Timer sender) 140 { 141 ladattu = true; 142 } 58 143 59 144 void aseta_näppäimet() … … 63 148 64 149 65 66 67 150 protected override void Update(Time time) 68 151 { 69 152 if (pyssy != null) 70 153 { 71 pyssy.Angle = (Mouse.PositionOnWorld - Ihansama.Position).Angle;154 pyssy.Angle = (Mouse.PositionOnWorld - pelaaja.Position).Angle; 72 155 } 73 156 … … 77 160 void ampuu() 78 161 { 162 if (!ladattu) return; 79 163 PhysicsObject ammus = new PhysicsObject(5, 5); 80 ammus.Velocity = (Mouse.PositionOnWorld - Ihansama.Position).Normalize()*500; 81 82 //ammus.Push(Mouse.PositionOnWorld); 83 //ammus.Velocity *= 3; 164 ammus.Velocity = (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * 500; 165 84 166 ammus.Tag = "ammus"; 85 167 ammus.Destroyed += new Action(delegate { ammus_Destroyed(ammus); }); 86 168 Add(ammus); 87 ammus.Position = Ihansama.Position + (Mouse.PositionOnWorld - Ihansama.Position).Normalize()*((pyssy.Width/2)-14);169 ammus.Position = pelaaja.Position + (Mouse.PositionOnWorld - pelaaja.Position).Normalize() * ((pyssy.Width / 2) - 14); 88 170 89 171 AddCollisionHandler(ammus, KasitteleAmmuksenTormays); 90 172 ammus.Shape = Shape.Circle; 91 173 ammus.Color = Color.Black; 92 174 ladattu = false; 93 175 } 94 176 … … 104 186 void KasitteleAmmuksenTormays(PhysicsObject ammus, PhysicsObject kohde) 105 187 { 106 if (kohde != Ihansama && kohde.Tag.ToString() != "ammus") ammus.Destroy(); 107 if (kohde != Ihansama && kohde.Tag.ToString() == "vihollinen") { kohde.Destroy(); } 108 } 109 void KasitteleVihollisenTormays(PhysicsObject vihollinen ,PhysicsObject kohde) 110 { 111 if (kohde == alareuna) vihollinen.Destroy(); 112 } 113 114 void TeeVihollinen(Timer sender) 115 { 116 PhysicsObject vihollinen = new PhysicsObject(50, 50); 117 vihollinen.Shape = Shape.Rectangle; 118 vihollinen.Velocity = new Vector(0, 500); 119 vihollinen.X = RandomGen.NextDouble(Level.Left, Level.Right); 120 vihollinen.Y = Level.Top; 121 vihollinen.Tag = "vihollinen"; 122 vihollinen.Image = LoadImage("vihollinen"); 123 vihollinen.Angle = Angle.StraightAngle; 124 vihollinen.CanRotate = false; 125 AddCollisionHandler(vihollinen, KasitteleVihollisenTormays); 126 Add(vihollinen); 188 if (kohde != pelaaja && kohde.Tag.ToString() != "ammus") ammus.Destroy(); 189 if (kohde is vihulainen) 190 { 191 vihulainen vihu = kohde as vihulainen; 192 vihu.Color = Color.Red; 193 vihu.Elamat -= 1; 194 if (vihu.Elamat <= 0) { vihu.Destroy(); vihollisia--; } 195 } 196 } 197 void KasitteleVihollisenTormays(PhysicsObject vihollinen, PhysicsObject kohde) 198 { 199 if (kohde == alareuna) 200 { 201 vihollinen.Destroy(); 202 vihollisia--; 203 pelaajanElamat.Value--; 204 } 205 } 206 207 void NopeutaVihollistenLuontia(Timer sender) 208 { 209 pisteet++; 210 pistelaskuri.Text = pisteet.ToString(); 211 montakoVihollistaLuodaan += 1; 212 MessageDisplay.Add("aalto numero " + montakoVihollistaLuodaan); 213 } 214 215 void TeeVihollisia(Timer sender) 216 { 217 if (vihollisia < montakoVihollistaRuudullaEnintaan) 218 { 219 vihollisia+=montakoVihollistaLuodaan; 220 for (int i = 0; i < montakoVihollistaLuodaan; i++) 221 { 222 montakoVihollistaLuotu++; // montakoVihollistaLuotu = montakoVihollistaLuotu + 1; 223 vihulainen vihollinen = new vihulainen(50, 50); 224 vihollinen.Shape = Shape.Triangle; 225 vihollinen.Velocity = new Vector(0, 300); 226 vihollinen.X = RandomGen.NextDouble(Level.Left + 10, Level.Right - 10); 227 vihollinen.Y = Level.Top - 35; 228 vihollinen.Tag = "vihollinen"; 229 vihollinen.Color = Color.Green; 230 vihollinen.CollisionIgnoreGroup = 1; 231 //vihollinen.Image = LoadImage("vihollinen"); 232 vihollinen.Angle = Angle.StraightAngle; 233 vihollinen.CanRotate = false; 234 AddCollisionHandler(vihollinen, KasitteleVihollisenTormays); 235 Add(vihollinen); 236 } 237 } 238 } 239 void aloitusruudunnappulat() 240 { 241 Mouse.IsCursorVisible = true; 242 luonappi("Aloita peli", new Vector(0, 0), new Action(Start_game), Color.Aqua); 243 //luonappi(" 244 } 245 void luonappi(string Teksti, Vector paikka, Action action, Color väri) 246 { 247 PushButton nappi = new PushButton(Teksti); 248 nappi.Position = paikka; 249 nappi.Clicked += action; 250 nappi.Color = väri; 251 Add(nappi); 127 252 } 128 253 -
2011/26/JaniN/neon wars/neon wars/neon warsContent/neon warsContent.contentproj
r2241 r2314 56 56 </Compile> 57 57 </ItemGroup> 58 <ItemGroup> 59 <Compile Include="gameover.png"> 60 <Name>gameover</Name> 61 <Importer>TextureImporter</Importer> 62 <Processor>TextureProcessor</Processor> 63 </Compile> 64 </ItemGroup> 58 65 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 59 66 <!-- 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.