Changeset 25


Ignore:
Timestamp:
2009-07-20 14:45:26 (10 years ago)
Author:
sikajeov
Message:

...

Location:
sipi_o
Files:
33 added
1 edited

Legend:

Unmodified
Added
Removed
  • sipi_o/pongi/Peli.cs

    r16 r25  
    2323        const double mailanNopeus = 200.0; 
    2424        PhysicsObject pallo; 
     25        //PhysicsObject palla; 
    2526        PhysicsObject maila1; 
    2627        PhysicsObject maila2; 
     28        Meter<int> pelaajan1Pisteet; 
     29        Meter<int> pelaajan2Pisteet; 
    2730 
    2831        protected override void LoadContent() 
     
    3033            Level = LuoKentta(); 
    3134            AsetaOhjaimet(); 
     35            LisaaLaskurit(); 
    3236            AloitaPeli(); 
    3337        } 
     
    3640        { 
    3741            Level kentta = new Level(this); 
    38             kentta.BackgroundColor = Color.DarkSeaGreen; 
     42            kentta.BackgroundColor = Color.MistyRose; 
    3943 
    40             IShape ympyra = Shapes.CreateCircle(20.0); 
     44            IShape ympyra = Shapes.CreateCircle(15.0); 
    4145            pallo = new PhysicsObject(10.0, ympyra); 
    4246            pallo.X = -200.0; 
    4347            pallo.Y = 0.0; 
    4448            pallo.Restitution = 1.0; 
     49            pallo.Color = Color.Indigo; 
    4550            kentta.Objects.Add(pallo); 
     51 
     52            //IShape ympyra2 = Shapes.CreateCircle(15.0); 
     53            //palla = new PhysicsObject(10.0, ympyra2); 
     54            //palla.X = -200.0; 
     55            //palla.Y = 0.0; 
     56            //palla.Restitution = 1.0; 
     57            //palla.Color = Color.Indigo; 
     58            //kentta.Objects.Add(palla); 
     59 
     60            AddCollisionHandler(pallo, KasittelePallonTormays); 
    4661 
    4762            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
     
    5570        PhysicsObject LuoMaila(double x, double y, Level kentta) 
    5671        { 
    57             IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
     72            IShape suorakulmio = Shapes.CreateRectangle(10.0, 150.0); 
    5873            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 
    5974            maila.X = x; 
     
    6580        } 
    6681 
     82         
     83        void LisaaLaskurit() 
     84                { 
     85                pelaajan1Pisteet = LuoPisteLaskuri( Screen.Left + 100.0, Screen.Top - 100.0 ); 
     86                    pelaajan2Pisteet = LuoPisteLaskuri( Screen.Right - 100.0, Screen.Top - 100.0 ); 
     87                } 
     88 
     89         
     90 
     91        Meter<int> LuoPisteLaskuri(double x, double y) 
     92        { 
     93            Meter<int> laskuri = new Meter<int>(0, 0, 10); 
     94            ValueDisplay naytto = new ValueDisplay(this); 
     95            naytto.BindTo(laskuri); 
     96            naytto.X = x; 
     97            naytto.Y = y;  
     98            naytto.ValueColor = Color.Black; 
     99            Add(naytto); 
     100            return laskuri; 
     101        } 
     102        void KasittelePallonTormays(Collision collision) 
     103        { 
     104            PhysicsObject pallo = collision.Obj; 
     105            PhysicsObject kohde = collision.Other; 
     106 
     107            if (kohde == Level.RightBorder) 
     108            { 
     109                pelaajan1Pisteet.Value += 1; 
     110            } 
     111            else if (kohde == Level.LeftBorder) 
     112            { 
     113                pelaajan2Pisteet.Value += 1; 
     114            } 
     115        } 
     116 
    67117        void AloitaPeli() 
    68118        { 
    69             Vector2D impulssi = new Vector2D(2000.0, 0.0); 
     119            Vector2D impulssi = new Vector2D(5000.0, 0.0); 
    70120            pallo.Hit(impulssi); 
     121            //Vector2D impulssi2 = new Vector2D(-5000.0, 0.0); 
     122            //palla.Hit(impulssi2); 
    71123        } 
    72124 
    73125        void AsetaOhjaimet() 
    74126        { 
    75             Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
    76             Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa alas", maila1); 
     127            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa ylös", maila1, mailanNopeus); 
     128            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa alas", maila1, -mailanNopeus); 
    77129 
    78             Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa ylös", maila2); 
    79             Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa alas", maila2); 
     130            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa ylös", maila2, mailanNopeus); 
     131            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa alas", maila2, -mailanNopeus); 
    80132        } 
    81133 
    82         bool LiikutaMailaa(ControlEvent e) 
     134        bool LiikutaMailaa( ControlEvent e ) 
    83135        { 
    84136            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     
    87139            double uusiY = maila.Y + nopeus * sekuntejaKulunut; 
    88140 
    89             maila.Y += nopeus * sekuntejaKulunut; 
    90  
    91             if ((Level.Bottom < uusiY) && (uusiY < Level.Top)) 
     141            if ( ( Level.Bottom < uusiY ) && ( uusiY < Level.Top ) ) 
    92142            { 
    93143                maila.Y = uusiY; 
Note: See TracChangeset for help on using the changeset viewer.