- Timestamp:
- 2012-06-13 14:06:27 (11 years ago)
- Location:
- 2012/24/AtteJ/Räiskintä-mättöpeli
- Files:
-
- 3 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/24/AtteJ/Räiskintä-mättöpeli/Räiskintä-mättöpeli/Räiskintä-mättöpeli/Räiskintä_mättöpeli.cs
r2952 r2987 12 12 Vector liikuYlös = new Vector(0.0, 250.0); 13 13 PhysicsObject pelaaja; 14 Weapon Ase; 15 IntMeter VihollisiaJaljella; 16 IntMeter VihollisiaTuhottu; 17 IntMeter KierrosLaskuri; 18 DoubleMeter Elämät; 19 ScoreList TopLista = new ScoreList(10, false, 0); 20 bool peliLoppui = false; 21 int Vihollisia = 10; 22 14 23 public override void Begin() 15 24 { … … 20 29 Aseet(); 21 30 LisääOhjaimet(); 22 viholliset (400.0, 0.0); 23 viholliset (400.0, 100.0); 24 viholliset(400.0, -100.0); 25 26 27 31 LuoKierrosLaskuri(); 32 33 if (DataStorage.Exists("pisteet.xml")) 34 TopLista = DataStorage.Load<ScoreList>(TopLista, "pisteet.xml"); 35 36 int i = 0; 37 while (i < Vihollisia) 38 { 39 vihollinen (Level.Right - 30, RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 30)); 40 i++; 41 } 28 42 29 43 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); … … 36 50 Level.CreateBorders(); 37 51 Camera.ZoomToLevel(); 38 39 } 40 41 void viholliset(double x, double y) 42 { 52 VihollisiaJaljella = new IntMeter(Vihollisia); 53 VihollisiaTuhottu = new IntMeter(0); 54 VihollisiaJaljella.LowerLimit += KaikkiVihollisetTuhottu; 55 56 Label Pistenaytto = new Label(); 57 Pistenaytto.X = Level.Right - 30; 58 Pistenaytto.Y = Level.Top - 5; 59 Pistenaytto.TextColor = Color.White; 60 Pistenaytto.Color = Color.Red; 61 62 Pistenaytto.BindTo(VihollisiaTuhottu); 63 Add(Pistenaytto); 64 65 Label Pisteteksti = new Label("Tuhottu:"); 66 Pisteteksti.X = Level.Right - 98; 67 Pisteteksti.Y = Level.Top - 5; 68 Pisteteksti.TextColor = Color.White; 69 Pisteteksti.Color = Color.Red; 70 Add(Pisteteksti); 71 } 72 73 PhysicsObject vihollinen(double x, double y) 74 { 75 FollowerBrain SeuraajanAivot = new FollowerBrain(pelaaja); 76 SeuraajanAivot.Speed = 100; 43 77 PhysicsObject enemy = new PhysicsObject (30, 30); 78 enemy.Brain = SeuraajanAivot; 44 79 enemy.X = x; 45 80 enemy.Y = y; 46 81 enemy.Shape = Shape.Circle; 47 82 enemy.Color = Color.Red; 83 enemy.Tag = "vihollinen"; 48 84 Add (enemy); 49 } 85 return enemy; 86 } 87 88 89 50 90 void Pelaaja() 51 91 { 52 92 pelaaja = new PhysicsObject(30, 30); 53 93 pelaaja.Shape = Shape.Circle; 54 pelaaja.Color = Color. White;94 pelaaja.Color = Color.Blue; 55 95 pelaaja.X = -400; 56 96 pelaaja.Y = 0; … … 58 98 pelaaja.LinearDamping = 0.9; 59 99 pelaaja.Restitution = 1.0; 60 100 pelaaja.CanRotate = false; 101 102 Elämät = new DoubleMeter(100); 103 Elämät.MaxValue = 100; 104 Elämät.LowerLimit += GameOver; 105 106 ProgressBar ElämäPalkki = new ProgressBar(150, 10); 107 ElämäPalkki.BindTo(Elämät); 108 ElämäPalkki.X = Level.Left - 50; 109 ElämäPalkki.Y = Level.Top - 5; 110 ElämäPalkki.BarColor = Color.Red; 111 ElämäPalkki.BorderColor = Color.Green; 112 Add(ElämäPalkki); 113 114 Elämät.Value = 101; 115 116 AddCollisionHandler(pelaaja, "vihollinen", VihollinenOsuuPelaajaan); 117 61 118 } 62 119 … … 65 122 ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, 66 123 "Liikuta pelaajaa tattia pyörittämällä"); 124 ControllerOne.Listen(Button.X, ButtonState.Pressed, Ampuminen, "ammu"); 125 67 126 } 68 127 void LiikutaPelaajaa (AnalogState TatinTila) … … 76 135 pelaaja.Add(pyssy); 77 136 pyssy.Ammo.Value = 99999999; 137 Ase = pyssy; 78 138 79 139 } … … 84 144 Explosion rajahdys = new Explosion(10); 85 145 rajahdys.Position = ammus.Position; 146 147 if (kohde.Tag == "vihollinen") 148 { 149 kohde.Destroy(); 150 VihollisiaJaljella.Value--; 151 VihollisiaTuhottu.Value++; 152 } 86 153 Add(rajahdys); 87 } 154 155 } 156 157 void KaikkiVihollisetTuhottu(int vihollisia) 158 { 159 MessageDisplay.Add("Viholliset tuhottu!"); 160 161 Timer.SingleShot(1.5, LisaaVihollisia); 162 163 } 164 165 void Ampuminen() 166 { 167 PhysicsObject panos = Ase.Shoot(); 168 if (panos != null) 169 { 170 AddCollisionHandler(panos, LuotiOsuu); 171 } 172 } 173 void VihollinenOsuuPelaajaan(IPhysicsObject pelaaja, IPhysicsObject enemy) 174 { 175 Elämät.Value -= 10; 176 } 177 178 void GameOver(double Elämät) 179 { 180 if (peliLoppui) return; 181 182 MessageDisplay.Add("Hävisit pelin"); 183 HighScoreWindow topIkkuna = new HighScoreWindow( 184 "Parhaat pisteet", 185 "Onneksi olkoon, pääsit listalle tapoilla %p! Syötä nimesi:", 186 TopLista, VihollisiaTuhottu.Value); 187 topIkkuna.Closed += TallennaPisteet; 188 Add(topIkkuna); 189 peliLoppui = true; 190 191 192 } 193 void TallennaPisteet(Window sender) 194 { 195 DataStorage.Save<ScoreList>(TopLista, "pisteet.xml"); 196 197 Timer.SingleShot(3.0, Exit); 198 199 } 200 void LisaaVihollisia() 201 { 202 Vihollisia = Vihollisia + 10; 203 204 VihollisiaJaljella.Value = Vihollisia; 205 206 KierrosLaskuri.Value += 1; 207 208 int i = 0; 209 while (i < Vihollisia) 210 { 211 vihollinen(Level.Right - 30, RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 30)); 212 i++; 213 } 214 } 215 void LuoKierrosLaskuri() 216 { 217 KierrosLaskuri = new IntMeter(1); 218 Label KierrosNaytto = new Label(); 219 KierrosNaytto.X = Level.Center.X - 100; 220 KierrosNaytto.Y = Level.Top - 5; 221 KierrosNaytto.TextColor = Color.White; 222 KierrosNaytto.Color = Color.Red; 223 KierrosNaytto.Title = "Kierros"; 224 KierrosNaytto.BindTo(KierrosLaskuri); 225 Add (KierrosNaytto); 226 } 227 88 228 }
Note: See TracChangeset
for help on using the changeset viewer.