Changeset 835


Ignore:
Timestamp:
2010-06-15 11:25:39 (10 years ago)
Author:
vilvaini
Message:

tuunasin pongin ja tein muutaman uuden minipelin.

Location:
2010/24/Vilvaini
Files:
22 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/Vilvaini/Pongi/Peli.cs

    r824 r835  
    88    Vector nopeusAlas = new Vector(0, -400); 
    99 
    10     PhysicsObject pallo; 
     10    PhysicsObject pallo1; 
     11    PhysicsObject pallo2; 
    1112    PhysicsObject maila1; 
    1213    PhysicsObject maila2; 
     
    1718    IntMeter pelaajan1Pisteet; 
    1819    IntMeter pelaajan2Pisteet; 
     20    Timer aikaLaskuri;          // laskee aikaa 
     21    ValueDisplay aikaNaytto;    // näyttää ajan 
    1922 
     23    private void aikaLoppui(Timer sender) 
     24    { 
     25        Level.BackgroundColor = RandomGen.NextColor(); 
     26        pallo1.Color = RandomGen.NextColor(); 
     27        pallo2.Color = RandomGen.NextColor(); 
     28        maila1.Color = RandomGen.NextColor(); 
     29        maila2.Color = RandomGen.NextColor(); 
     30        aikaLaskuri.Interval = 0.1;  // nollataan aikalaskuri oletusarvoonsa, joka oli 0. 
     31    } 
    2032    protected override void Begin() 
    2133    { 
     
    2436        LisaaLaskurit(); 
    2537        AloitaPeli(); 
     38        aikaLaskuri = new Timer();                     // luodaan uusi ajastin, nimeltä aikaLaskuri 
     39        aikaLaskuri.Interval = 0.1;                      // ajastukseksi 5 sekuntia 
     40        aikaLaskuri.Trigger += new Timer.TriggerHandler(aikaLoppui);  //   // asetetaan tapahtuma, kun aikaLaskuri kun 5 sekuntia on kulunut. 
     41        Add(aikaLaskuri);                       // lisätään aikaLaskuri peliin 
     42        aikaLaskuri.Start();                           // käynnistetään aikaLaskuri 
     43 
     44        aikaNaytto = new ValueDisplay();         // luo uuden aikaNayton 
     45        aikaNaytto.Text = "Aikaa jäljellä: ";          // laitetaan näytöllä näkyvä teksti 
     46        aikaNaytto.TextColor = Color.Red;          // vaihdetaan tekstin väriä 
     47        aikaNaytto.FormatDouble(0, true);            // asetetaan näyttämään aika siten, ettei siinä näy yhtään (0) desimaalia 
     48        aikaNaytto.ValueColor = Color.Red; 
     49        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); // liitetään aikaNaytto aikaLaskuriin 
     50      
    2651    } 
    2752 
    2853    void LuoKentta() 
    2954    { 
    30         pallo = new PhysicsObject(40.0, 40.0); 
    31         pallo.CanRotate = false; 
    32         pallo.Shape = Shapes.Circle; 
    33         pallo.X = -200.0; 
    34         pallo.Y = 0.0; 
    3555 
    36         pallo.Restitution = 1.0; 
    37         Add(pallo); 
    38         AddCollisionHandler(pallo, KasittelePallonTormays); 
     56        pallo1 = LuoPallo(Level.Left + 20.0, 0.0); 
     57        pallo2 = LuoPallo(Level.Right - 20.0, 0.0); 
     58 
     59 
    3960 
    4061        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     
    4263 
    4364        vasenReuna = Level.CreateLeftBorder(); 
    44         vasenReuna.Restitution = 1.0; 
     65        vasenReuna.Restitution = 0.8; 
    4566        vasenReuna.IsVisible = false; 
    4667        oikeaReuna = Level.CreateRightBorder(); 
    47         oikeaReuna.Restitution = 1.0; 
     68        oikeaReuna.Restitution = 0.8; 
    4869        oikeaReuna.IsVisible = false; 
    4970        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
    50         ylaReuna.Restitution = 1.0; 
     71        ylaReuna.Restitution = 1.1; 
    5172        ylaReuna.IsVisible = false; 
    5273        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
    53         alaReuna.Restitution = 1.0; 
     74        alaReuna.Restitution = 1.1; 
    5475        alaReuna.IsVisible = false; 
    5576 
     
    6889        Add(maila); 
    6990        return maila; 
     91    } 
     92 
     93    PhysicsObject LuoPallo(double x, double y) 
     94    { 
     95        PhysicsObject pallo = new PhysicsObject(50.0, 50.0); 
     96        pallo.Shape = Shapes.Circle; 
     97        pallo.X = x; 
     98        pallo.Y = y; 
     99        pallo.Restitution = 1.0; 
     100        Add(pallo); 
     101        return pallo; 
    70102    } 
    71103 
     
    89121    } 
    90122 
    91     void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     123    void KasittelePallonTormays(PhysicsObject pallo1, PhysicsObject kohde) 
    92124    { 
    93125        if (kohde == oikeaReuna) 
     
    104136    { 
    105137        Vector impulssi = new Vector(500.0, 0.0); 
    106         pallo.Hit(impulssi); 
     138        pallo1.Hit(impulssi); 
     139        Vector impulsi = new Vector(500.0, 0.0); 
     140        pallo2.Hit(impulsi); 
    107141    } 
    108142 
     
    138172    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    139173    { 
    140         if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     174        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    141175        { 
    142176            maila.Velocity = Vector.Zero; 
    143177            return; 
    144178        } 
    145         if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     179        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    146180        { 
    147181            maila.Velocity = Vector.Zero; 
Note: See TracChangeset for help on using the changeset viewer.