Changeset 2938 for 2012/24


Ignore:
Timestamp:
2012-06-12 10:57:16 (7 years ago)
Author:
elniemin
Message:

Talletus.

Location:
2012/24/ElinaN/Pong/Pong/Pong
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/ElinaN/Pong/Pong/Pong/Pong.cs

    r2927 r2938  
    1616    PhysicsObject maila2; 
    1717 
    18      
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
     23 
    1924    public override void Begin() 
    2025    { 
     
    2227        LuoKentta(); 
    2328        AsetaOhjaimet(); 
     29        LisaaLaskurit(); 
    2430        AloitaPeli(); 
    2531 
     
    3036    { 
    3137        pallo = new PhysicsObject(65.0, 65.0); 
    32         pallo.Restitution = 1.0; 
     38        pallo.Restitution = 0.0; 
    3339        pallo.Shape = Shape.Circle; 
    3440        pallo.Color = Color.LightPink; 
    3541        pallo.X = -200; 
    3642        pallo.Y = 300.0; 
     43        pallo.KineticFriction = 1.0; 
     44        pallo.MomentOfInertia = Double.PositiveInfinity; 
    3745        Add(pallo); 
     46        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3847 
    3948        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    4049        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4150 
    42         Level.CreateBorders(1.0, true); 
     51        vasenReuna = Level.CreateLeftBorder(); 
     52        vasenReuna.Restitution = 1.0; 
     53        vasenReuna.KineticFriction = 0.0; 
     54        vasenReuna.IsVisible = false; 
     55 
     56        oikeaReuna = Level.CreateRightBorder(); 
     57        oikeaReuna.Restitution = 1.0; 
     58        oikeaReuna.KineticFriction = 0.0; 
     59        oikeaReuna.IsVisible = false; 
     60 
     61        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     62        ylaReuna.Restitution = 1.0; 
     63        ylaReuna.KineticFriction = 0.0; 
     64        ylaReuna.IsVisible = false; 
     65 
     66        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     67        alaReuna.Restitution = 1.0; 
     68        alaReuna.KineticFriction = 0.0; 
     69        alaReuna.IsVisible = false; 
     70 
    4371        Level.BackgroundColor = Color.MediumTurquoise; 
     72 
    4473        Camera.ZoomToLevel(); 
    45  
    46          
    47  
    48         Level.CreateBorders(1.0, false); 
    49  
    50  
    5174    } 
     75        
     76  
    5277 
    5378    void AloitaPeli() 
     
    87112    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    88113    { 
    89         if (maila.Top > Level.Top) 
     114        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    90115        { 
    91116            maila.Velocity = Vector.Zero; 
    92117            return; 
    93118        } 
     119        if ( (nopeus.Y > 0) && (maila.Top > Level.Top) ) 
     120        { 
     121            maila.Velocity = Vector.Zero; 
     122            return; 
     123        } 
     124  
    94125         
    95             maila.Velocity = nopeus; 
     126             
     127         
     128         
     129        maila.Velocity = nopeus; 
    96130    } 
     131 
     132    void LisaaLaskurit() 
     133    { 
     134        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     135        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     136    } 
     137    IntMeter LuoPisteLaskuri( double x, double y ) 
     138    { 
     139        IntMeter laskuri = new IntMeter(0); 
     140        laskuri.MaxValue = 10; 
     141        Label naytto = new Label(); 
     142        naytto.BindTo(laskuri); 
     143        naytto.X = x; 
     144        naytto.Y = y; 
     145        naytto.TextColor = Color.DarkBlue; 
     146        naytto.BorderColor = Level.BackgroundColor; 
     147        naytto.Color = Level.BackgroundColor; 
     148        Add(naytto); 
     149        return laskuri; 
     150    } 
     151 
     152    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     153    { 
     154        if (kohde == oikeaReuna) 
     155        { 
     156            pelaajan1Pisteet.Value += 1; 
     157        } 
     158        else if (kohde == vasenReuna) 
     159        { 
     160            pelaajan2Pisteet.Value += 1; 
     161        } 
     162    } 
     163 
    97164    
    98165 
Note: See TracChangeset for help on using the changeset viewer.