Changeset 917


Ignore:
Timestamp:
2010-06-16 15:05:15 (9 years ago)
Author:
vilvaini
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/Vilvaini/Smile Jump/Peli.cs

    r908 r917  
    99    const double nopeus = 300; 
    1010    const double hyppyVoima = 4000; 
    11     double tasokorkeus = 150; 
     11    double tasokorkeus = 0; 
    1212    double tasokorkeutus = 1; 
    1313    double tasoleveys = 150; 
     
    2424    PhysicsObject taso; 
    2525 
    26     Timer aikaLaskuri;          // laskee aikaa 
     26    Timer aikaLaskuri; 
     27    Timer aikaLaskuri2;// laskee aikaa 
    2728    ValueDisplay aikaNaytto;    // näyttää ajan 
    2829 
     
    3637    protected override void Begin() 
    3738    { 
    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 
    42177        aikaLaskuri = new Timer();                     // luodaan uusi ajastin, nimeltä aikaLaskuri 
    43178        aikaLaskuri.Interval = 5;                      // ajastukseksi 5 sekuntia 
    44179        aikaLaskuri.Trigger += new Timer.TriggerHandler(aikaLoppui);  //   // asetetaan tapahtuma, kun aikaLaskuri kun 5 sekuntia on kulunut. 
    45180        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 
    47188 
    48189        aikaNaytto = new ValueDisplay();         // luo uuden aikaNayton 
     
    52193        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); // liitetään aikaNaytto aikaLaskuriin 
    53194        Add(aikaNaytto);                             // lisätään aikaNaytto peliin 
    54          
     195 
    55196        kenttaNro = 0; 
    56197        Level.Width = 1024; 
    57198        Level.Height = 15000; 
    58199 
    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); 
    72201        // Zoomataan lähemmäksi 
    73202        //Camera.ZoomToLevel(); 
     
    75204        Camera.StayInLevel = true; 
    76205 
    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 painovoima 
    121         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(); 
    170206    } 
    171207 
     
    224260         
    225261        MessageDisplay.Add("Aika loppui...");  // näytetään viestinäytöllä teksti 
    226         // täydennä: mitä tapahtuu, kun aika loppui 
     262        vihollinen.Velocity = new Vector(-100.0, 0.0); 
    227263        aikaLaskuri.Reset();  // nollataan aikalaskuri oletusarvoonsa, joka oli 0. 
    228264 
    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. 
    231275 
    232276    } 
Note: See TracChangeset for help on using the changeset viewer.