- Timestamp:
- 2010-06-16 15:05:15 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2010/24/Vilvaini/Smile Jump/Peli.cs
r908 r917 9 9 const double nopeus = 300; 10 10 const double hyppyVoima = 4000; 11 double tasokorkeus = 150;11 double tasokorkeus = 0; 12 12 double tasokorkeutus = 1; 13 13 double tasoleveys = 150; … … 24 24 PhysicsObject taso; 25 25 26 Timer aikaLaskuri; // laskee aikaa 26 Timer aikaLaskuri; 27 Timer aikaLaskuri2;// laskee aikaa 27 28 ValueDisplay aikaNaytto; // näyttää ajan 28 29 … … 36 37 protected override void Begin() 37 38 { 38 39 40 41 39 pelaajan1pisteet = new IntMeter(0); 40 pelaajan2pisteet = new IntMeter(0); 41 seuraavaKentta(); 42 43 } 44 45 void TasoTuho(PhysicsObject taso) 46 { 47 if (pelaaja1.Y > pelaaja2.Y) 48 { 49 if (taso.Y + 1000 < pelaaja1.Y) 50 { 51 taso.Destroy(); 52 pelaajan1pisteet.Value += 1; 53 } 54 } 55 } 56 57 void seuraavaKentta() 58 { 59 ClearAll(); 60 // Tähän kentän luonti ... 61 62 //pelaajan1pisteet.Reset(); 63 // Luodaan pistelaskuri 64 65 66 // luodaan pistelaskunäyttö 67 ValueDisplay pisteNaytto = new ValueDisplay(); 68 pisteNaytto.Text = "Pelaaja 1: "; 69 pisteNaytto.X = Screen.Left + 250; 70 pisteNaytto.Y = Screen.Top - 100; 71 pisteNaytto.ValueColor = Color.Red; 72 pisteNaytto.TextColor = Color.Red; 73 pisteNaytto.BindTo(pelaajan1pisteet); 74 Add(pisteNaytto); // lisätään peliin 75 76 // Luodaan pistelaskuri 77 78 79 // luodaan pistelaskunäyttö 80 ValueDisplay pisteNaytto2 = new ValueDisplay(); 81 pisteNaytto2.Text = "Pelaaja 2: "; 82 pisteNaytto2.X = Screen.Right - 250; 83 pisteNaytto2.Y = Screen.Top - 100; 84 pisteNaytto2.ValueColor = Color.Red; 85 pisteNaytto2.TextColor = Color.Red; 86 pisteNaytto2.BindTo(pelaajan2pisteet); 87 Add(pisteNaytto2); // lisätään peliin 88 89 kenttaNro += 1; // lisätään kenttänumeroa yhdellä 90 MessageDisplay.Add("Kenttä " + kenttaNro); 91 92 // Asetetaan painovoima 93 Gravity = new Vector(0, -600); 94 95 luoKentta(); 96 lisaaNappaimet(); 97 //LisaaDownReuna(Camera.Position.Y - 200); 98 99 100 } 101 102 void KasittelePallonTormays(PhysicsObject pelaaja1, PhysicsObject kohde) 103 { 104 if (kohde == oikeaReuna) 105 { 106 pelaaja1.X = Level.Left + 30; 107 } 108 else if (kohde == vasenReuna) 109 { 110 pelaaja1.X = Level.Right - 30; 111 } 112 } 113 114 void TasonTormays(PhysicsObject taso, PhysicsObject kohde) 115 { 116 if (kohde == DownReuna) 117 { 118 taso.Destroy(); 119 } 120 121 } 122 123 void p1piste(PhysicsObject p1, PhysicsObject kohde) 124 { 125 if (kohde == DownReuna) 126 { 127 pelaajan2pisteet.Value += 1; 128 p1.Destroy(); 129 seuraavaKentta(); 130 } 131 132 } 133 134 void p2piste(PhysicsObject p2, PhysicsObject kohde) 135 { 136 if (kohde == DownReuna) 137 { 138 pelaajan1pisteet.Value += 1; 139 p2.Destroy(); 140 seuraavaKentta(); 141 } 142 143 } 144 void luoKentta() 145 { 146 MessageDisplay.Add("Pompi pidemmälle kuin toinen pelaaja!"); 147 tasokorkeus = 0; 148 tasoleveys = 150; 149 for (int i = 0; i < 140; i++) 150 { 151 tasokorkeus = tasokorkeus + 180 + tasokorkeutus; 152 lisaaTaso(RandomGen.NextDouble(Level.Left + 50, 0), Level.Bottom + tasokorkeus + RandomGen.NextDouble(30.0, 50.0), tasoleveys); 153 lisaaTaso(RandomGen.NextDouble(0, Level.Right - 50), Level.Bottom + tasokorkeus + RandomGen.NextDouble(10.0, 30.0), tasoleveys); 154 155 tasoleveys = tasoleveys - 1; 156 } 157 158 LisaaDownReuna(Camera.Position.Y - 200); 159 160 vasenReuna = Level.CreateLeftBorder(); 161 vasenReuna.Restitution = 0.0; 162 vasenReuna.IsVisible = false; 163 164 alaReuna = Level.CreateBottomBorder(); 165 vasenReuna.Restitution = 0.0; 166 vasenReuna.IsVisible = false; 167 168 oikeaReuna = Level.CreateRightBorder(); 169 vasenReuna.Restitution = 0.0; 170 vasenReuna.IsVisible = false; 171 172 Level.Background.CreateGradient(Color.Beige, Color.Wheat); 173 174 175 lisaaPelaajat(); 176 42 177 aikaLaskuri = new Timer(); // luodaan uusi ajastin, nimeltä aikaLaskuri 43 178 aikaLaskuri.Interval = 5; // ajastukseksi 5 sekuntia 44 179 aikaLaskuri.Trigger += new Timer.TriggerHandler(aikaLoppui); // // asetetaan tapahtuma, kun aikaLaskuri kun 5 sekuntia on kulunut. 45 180 Add(aikaLaskuri); // lisätään aikaLaskuri peliin 46 aikaLaskuri.Start(); // käynnistetään aikaLaskuri 181 aikaLaskuri.Start(); 182 183 aikaLaskuri2 = new Timer(); // luodaan uusi ajastin, nimeltä aikaLaskuri 184 aikaLaskuri2.Interval = 5; // ajastukseksi 5 sekuntia 185 aikaLaskuri2.Trigger += new Timer.TriggerHandler(aikaLoppui); // // asetetaan tapahtuma, kun aikaLaskuri kun 5 sekuntia on kulunut. 186 Add(aikaLaskuri2); // lisätään aikaLaskuri peliin 187 aikaLaskuri2.Start(); // käynnistetään aikaLaskuri 47 188 48 189 aikaNaytto = new ValueDisplay(); // luo uuden aikaNayton … … 52 193 aikaNaytto.BindTo(aikaLaskuri.SecondCounter); // liitetään aikaNaytto aikaLaskuriin 53 194 Add(aikaNaytto); // lisätään aikaNaytto peliin 54 195 55 196 kenttaNro = 0; 56 197 Level.Width = 1024; 57 198 Level.Height = 15000; 58 199 59 LisaaVihollinen(0.0, Level.Bottom); 60 61 // Luodaan pistelaskuri 62 pelaajan1pisteet = new IntMeter(0); 63 64 // luodaan pistelaskunäyttö 65 pisteNaytto = new ValueDisplay(); 66 pisteNaytto.Text = "Pisteitä: "; 67 pisteNaytto.X = Screen.RightSafe - 250; 68 pisteNaytto.Y = Screen.TopSafe - 50; 69 pisteNaytto.BindTo(pelaajan1pisteet); 70 Add(pisteNaytto); // lisätään peliin 71 200 LisaaVihollinen(0.0, Level.Bottom + 500); 72 201 // Zoomataan lähemmäksi 73 202 //Camera.ZoomToLevel(); … … 75 204 Camera.StayInLevel = true; 76 205 77 seuraavaKentta();78 MessageDisplay.Add("Pompi pidemmälle kuin toinen pelaaja!");79 80 81 for (int i = 0; i < 140; i++)82 {83 tasokorkeus = tasokorkeus + 180 + tasokorkeutus;84 lisaaTaso(RandomGen.NextDouble(Level.Left + 50, 0), Level.Bottom + tasokorkeus + RandomGen.NextDouble(30.0,50.0),tasoleveys);85 lisaaTaso(RandomGen.NextDouble(0, Level.Right - 50), Level.Bottom + tasokorkeus + RandomGen.NextDouble(10.0,30.0), tasoleveys);86 87 tasoleveys = tasoleveys - 1;88 89 90 }91 92 LisaaDownReuna(Camera.Position.Y - 200);93 94 95 96 97 }98 99 void TasoTuho(PhysicsObject taso)100 {101 if (pelaaja1.Y > pelaaja2.Y)102 {103 if (taso.Y + 1000 < pelaaja1.Y)104 {105 taso.Destroy();106 pelaajan1pisteet.Value += 1;107 }108 }109 }110 111 112 void seuraavaKentta()113 {114 ClearAll();115 //pisteLaskuri.Reset();116 117 kenttaNro += 1; // lisätään kenttänumeroa yhdellä118 MessageDisplay.Add("Kenttä " + kenttaNro);119 120 // Asetetaan painovoima121 Gravity = new Vector(0, -600);122 123 luoKentta();124 lisaaNappaimet();125 //LisaaDownReuna(Camera.Position.Y - 200);126 127 128 }129 130 void KasittelePallonTormays(PhysicsObject pelaaja1, PhysicsObject kohde)131 {132 if (kohde == oikeaReuna)133 {134 pelaaja1.X = Level.Left + 30;135 }136 else if (kohde == vasenReuna)137 {138 pelaaja1.X = Level.Right - 30;139 }140 }141 142 void TasonTormays(PhysicsObject taso, PhysicsObject kohde)143 {144 if (kohde == DownReuna)145 {146 taso.Destroy();147 }148 149 }150 void luoKentta()151 {152 vasenReuna = Level.CreateLeftBorder();153 vasenReuna.Restitution = 0.0;154 vasenReuna.IsVisible = false;155 156 alaReuna = Level.CreateBottomBorder();157 vasenReuna.Restitution = 0.0;158 vasenReuna.IsVisible = false;159 160 oikeaReuna = Level.CreateRightBorder();161 vasenReuna.Restitution = 0.0;162 vasenReuna.IsVisible = false;163 164 Level.Background.CreateGradient(Color.Beige, Color.Wheat);165 166 lisaaTaso(RandomGen.NextInt(-150, 100), Level.Bottom + 150, tasoleveys);167 168 169 lisaaPelaajat();170 206 } 171 207 … … 224 260 225 261 MessageDisplay.Add("Aika loppui..."); // näytetään viestinäytöllä teksti 226 // täydennä: mitä tapahtuu, kun aika loppui262 vihollinen.Velocity = new Vector(-100.0, 0.0); 227 263 aikaLaskuri.Reset(); // nollataan aikalaskuri oletusarvoonsa, joka oli 0. 228 264 229 AddCollisionHandler(pelaaja1, TasonTormays); 230 AddCollisionHandler(pelaaja2, TasonTormays); 265 AddCollisionHandler(pelaaja1, p1piste); 266 AddCollisionHandler(pelaaja2, p2piste); 267 268 } 269 270 private void aikaLoppui2(Timer sender) 271 { 272 273 vihollinen.Velocity = new Vector(100.0, 0.0); 274 aikaLaskuri2.Reset(); // nollataan aikalaskuri oletusarvoonsa, joka oli 0. 231 275 232 276 }
Note: See TracChangeset
for help on using the changeset viewer.