Changeset 37 for aku_k/Pong/Peli.cs


Ignore:
Timestamp:
2009-07-20 14:49:39 (10 years ago)
Author:
akpekorh
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • aku_k/Pong/Peli.cs

    r18 r37  
    2222    { 
    2323        PhysicsObject pallo; 
     24         
    2425        PhysicsObject maila1; 
    2526        PhysicsObject maila2; 
     27 
     28        const double mailanNopeus = 200.0; 
     29 
     30        Meter<int> pelaajan1pisteet; 
     31        Meter<int> pelaajan2pisteet; 
    2632        protected override void LoadContent() 
    2733        { 
     
    2935            Level = LuoKentta(); 
    3036            AsetaOhjaimet(); 
     37            LisaaLaskurit(); 
    3138            AloitaPeli(); 
     39             
    3240 
    3341             
     
    4048            kentta.BackgroundColor = Color.Black; 
    4149 
    42             IShape ympyra = Shapes.CreateCircle(20.0); 
     50            IShape ympyra = Shapes.CreateCircle(20.0); //IShape ympyra = Shapes.CreateCircle(20.0); alkuperainen 
    4351            pallo = new PhysicsObject(10.0, ympyra); 
    4452            pallo.X = -200.0; 
     
    4654            pallo.Restitution = 1.0; 
    4755            kentta.Objects.Add(pallo); 
     56            AddCollisionHandler(pallo, KasittelePallonTormays); 
     57 
     58             
     59 
    4860 
    4961            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
     
    5264            kentta.CreateBorder(1.0, false); 
    5365 
    54  
     66             
    5567 
    5668 
     
    5971        void AloitaPeli() 
    6072        { 
    61             Vector2D impulssi = new Vector2D(2000.0, 0.0); 
     73            Vector2D impulssi = new Vector2D(6000.0, 0.0); 
    6274            pallo.Hit(impulssi); 
     75             
     76 
    6377 
    6478             
     
    7791        void AsetaOhjaimet() 
    7892        { 
    79             Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaaYlos, "Liikuta mailaa ylös", maila1); 
     93            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1:Liikuta mailaa ylös", maila1, 200.0); 
     94            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa alas", maila1, -200.0); 
     95 
     96            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa ylös", maila2, 200.0); 
     97            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa alas", maila2, -200.0); 
     98 
    8099 
    81100        } 
    82         bool li 
    83101         
     102         
     103        bool LiikutaMailaa(ControlEvent e) 
     104        { 
     105            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     106            double nopeus = e.Parameter1.ToDouble(); 
     107            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds; 
     108            double uusiY = maila.Y + nopeus * sekuntejaKulunut; 
     109 
     110            if ((Level.Bottom < uusiY) && (uusiY < Level.Top)) 
     111            { 
     112                maila.Y = uusiY; 
     113            } 
     114            return false; 
     115 
     116        } 
     117        Meter<int> Luopistelaskuri(double x, double y) 
     118        { 
     119            Meter<int> laskuri = new Meter<int>(0, 0, 10); 
     120            ValueDisplay naytto = new ValueDisplay(this); 
     121            naytto.BindTo(laskuri); 
     122            naytto.X = x; 
     123            naytto.Y = y; 
     124            naytto.ValueColor = Color.White; 
     125            Add(naytto); 
     126 
     127             
     128            return laskuri; 
     129        } 
     130        void LisaaLaskurit() 
     131        { 
     132            pelaajan1pisteet = Luopistelaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     133            pelaajan2pisteet = Luopistelaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     134        } 
     135 
     136 
     137        void KasittelePallonTormays(Collision collision) 
     138        { 
     139            PhysicsObject pallo = collision.Obj; 
     140            PhysicsObject kohde = collision.Other; 
     141            if (kohde == Level.RightBorder) 
     142            { 
     143                pelaajan1pisteet.Value += 1; 
     144            } 
     145            else if (kohde == Level.LeftBorder) 
     146            { 
     147                pelaajan2pisteet.Value += 1; 
     148            } 
     149        } 
     150 
     151     
     152     
     153     
     154         
     155     
     156     
     157     
    84158    } 
    85159} 
     160 
Note: See TracChangeset for help on using the changeset viewer.