Changeset 1323 for 2010/30


Ignore:
Timestamp:
2010-07-27 13:37:37 (9 years ago)
Author:
alsiseoi
Message:

Peli valmis.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/alsiseoi/Pong/Peli.cs

    r1303 r1323  
    66public class Peli : PhysicsGame 
    77{ 
    8     Vector NopeusYlos = new Vector( 0, 200); 
     8    Vector NopeusYlos = new Vector(0, 200); 
    99    Vector NopeusAlas = new Vector(0, -200); 
    10      
     10 
    1111    PhysicsObject pallo; 
    12  
    1312    PhysicsObject maila1; 
    1413    PhysicsObject maila2; 
    15      
     14 
     15    PhysicsObject VasenReuna; 
     16    PhysicsObject OikeaReuna; 
     17 
     18    IntMeter Pelaajan1Pisteet; 
     19    IntMeter Pelaajan2Pisteet; 
     20 
    1621    protected override void Begin() 
    1722    { 
     
    3136        pallo.X = -400.0; 
    3237        pallo.Y = 100.0; 
    33         Level.CreateBorders(1.0, false); 
    3438        pallo.Restitution = 1.0; 
    3539        Level.BackgroundColor = Color.Black; 
     40 
    3641        Camera.ZoomToLevel(); 
    3742 
    38         maila1 = LuoMaila( Level.Left + 20.0, 0.0); 
     43        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3944        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     45 
     46        AddCollisionHandler(pallo, KasittelePallonTormays); 
     47 
     48        VasenReuna = Level.CreateLeftBorder(); 
     49        VasenReuna.Restitution = 1.0; 
     50        VasenReuna.IsVisible = false; 
     51 
     52        OikeaReuna = Level.CreateRightBorder(); 
     53        OikeaReuna.Restitution = 1.0; 
     54        OikeaReuna.IsVisible = false; 
     55 
     56        PhysicsObject YlaReuna = Level.CreateTopBorder(); 
     57        YlaReuna.Restitution = 1.0; 
     58        YlaReuna.IsVisible = false; 
     59 
     60        PhysicsObject AlaReuna = Level.CreateBottomBorder(); 
     61        AlaReuna.Restitution = 1.0; 
     62        AlaReuna.IsVisible = false; 
     63 
     64        VasenReuna = Level.CreateLeftBorder(); 
     65        OikeaReuna = Level.CreateRightBorder(); 
    4066    } 
    4167    void AloitaPeli() 
     
    4571    } 
    4672 
    47     PhysicsObject LuoMaila( double x, double y ) 
     73    PhysicsObject LuoMaila(double x, double y) 
    4874    { 
    4975        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5985    void AsetaOhjaimet() 
    6086    { 
    61         Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, NopeusYlos ); 
     87        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, NopeusYlos); 
    6288        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    63         Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, NopeusAlas ); 
     89        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, NopeusAlas); 
    6490        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    6591 
     
    75101    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    76102    { 
    77         if ( (nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     103        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    78104        { 
    79105            maila.Velocity = Vector.Zero; 
    80106            return; 
    81107        } 
    82                        
    83         if ( (nopeus.Y > 0) && (maila.Top > Level.Top) ) 
     108 
     109        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    84110        { 
    85111            maila.Velocity = Vector.Zero; 
     
    92118    void LisaaLaskurit() 
    93119    { 
    94         //... 
     120        Pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     121        Pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    95122    } 
    96123 
    97     IntMeter LuoPisteLaskuri( double x, double y ) 
    98  
     124    IntMeter LuoPisteLaskuri(double x, double y) 
    99125    { 
    100126        IntMeter laskuri = new IntMeter(0); 
    101127        laskuri.MaxValue = 10; 
    102128        Label naytto = new Label(); 
    103          
    104          
    105          
     129        naytto.BindTo(laskuri); 
     130        naytto.X = x; 
     131        naytto.Y = y; 
     132        naytto.TextColor = Color.White; 
     133        Add(naytto); 
    106134        return laskuri; 
    107135    } 
    108136 
    109      
    110      
    111 }    
     137    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     138    { 
     139        if ( kohde == OikeaReuna ) 
     140        { 
     141            Pelaajan1Pisteet.Value += 1; 
     142        } 
     143        else if (kohde == VasenReuna) 
     144        { 
     145            Pelaajan2Pisteet.Value += 1; 
     146        } 
     147    } 
     148} 
    112149 
    113  
Note: See TracChangeset for help on using the changeset viewer.