Changeset 218 for werner_v/Pong-1


Ignore:
Timestamp:
2009-08-03 14:45:04 (14 years ago)
Author:
wevantti
Message:
 
Location:
werner_v/Pong-1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • werner_v/Pong-1/Ohjelma.cs

    r192 r218  
    33#endregion 
    44 
    5 namespace Pong_1 
     5namespace Pong1 
    66{ 
    77    static class Ohjelma 
  • werner_v/Pong-1/Peli.cs

    r192 r218  
    1717#endregion 
    1818 
    19 namespace Pong_1 
     19namespace Pong1 
    2020{ 
    2121    public class Peli : PhysicsGame 
    2222    { 
     23        PhysicsObject pallo; 
     24        PhysicsObject maila1; 
     25        PhysicsObject maila2; 
     26        Vector2D nopeusYlos = new Vector2D(0, 200); 
     27        Vector2D nopeusAlas = new Vector2D(0, -200); 
     28 
    2329        protected override void LoadContent() 
    2430        { 
    25             //IShape ympyra = Shapes.CreateCircle(20.0); 
    26             //IShape ympyra = Shapes.CreateCircle(50.8); 
    27             IShape ympyra = Shapes.CreateRectangle(50.0, 50.0); 
    28             PhysicsObject pallo = new PhysicsObject(10.0, ympyra); 
    29             Level.Objects.Add(pallo); 
    30             pallo.X = -450.0; 
     31            Level = LuoKentta(); 
     32            AsetaOhjaimet(); 
     33            AloitaPeli(); 
     34        } 
     35        Level LuoKentta() 
     36        { 
     37            Level kentta = new Level(this); 
     38            kentta.BackgroundColor = Color.Black; 
     39 
     40            IShape ympyra = Shapes.CreateCircle(20.0); 
     41            pallo = new PhysicsObject(10.0, ympyra); 
     42            pallo.X = -200.0; 
    3143            pallo.Y = 0.0; 
    32             Vector2D impulssi = new Vector2D(20000.0, 0.0); 
     44            pallo.Restitution = 1.0; 
     45            kentta.Objects.Add(pallo); 
     46 
     47            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
     48            maila2 = LuoMaila(kentta.Right - 20.0, 0.0, kentta); 
     49            kentta.CreateBorder(1.0, false); 
     50 
     51            return kentta; 
     52        } 
     53        void AloitaPeli() 
     54        { 
     55            Vector2D impulssi = new Vector2D(2000.0, 0.0); 
    3356            pallo.Hit(impulssi); 
    34             Level.CreateBorder(1.0, false); 
    35             pallo.Restitution = 1.0; 
    36             Level.BackgroundColor = Color.Green; 
    3757        } 
     58        PhysicsObject LuoMaila(double x, double y, Level kentta) 
     59        { 
     60            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
     61            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 
     62            maila.X = x; 
     63            maila.Y = y; 
     64            maila.Restitution = 1.0; 
     65            kentta.Objects.Add(maila); 
     66            return maila; 
     67        } 
     68        void AsetaOhjaimet() 
     69        { 
     70            Controls.Listen(Keys.A, ButtonPosition.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     71            Controls.Listen(Keys.A, ButtonPosition.Released, AsetaNopeus, null, maila1, Vector2D.Zero); 
     72            Controls.Listen(Keys.Z, ButtonPosition.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     73            Controls.Listen(Keys.Z, ButtonPosition.Released, AsetaNopeus, null, maila1, Vector2D.Zero); 
     74 
     75            Controls.Listen(Keys.Up, ButtonPosition.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     76            Controls.Listen(Keys.Up, ButtonPosition.Released, AsetaNopeus, null, maila2, Vector2D.Zero); 
     77            Controls.Listen(Keys.Down, ButtonPosition.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     78            Controls.Listen(Keys.Down, ButtonPosition.Released, AsetaNopeus, null, maila2, Vector2D.Zero); 
     79            AsetaGamePadOhjaimet(PlayerIndex.One, maila1); 
     80            AsetaGamePadOhjaimet(PlayerIndex.Two, maila2); 
     81        } 
     82        void AsetaGamePadOhjaimet(PlayerIndex pelaajaNumero, PhysicsObject maila) 
     83        { 
     84            Controls.Listen(pelaajaNumero, Buttons.DPadUp, ButtonPosition.Down, AsetaNopeus, "Liikuta mailaa ylös", maila, nopeusYlos); 
     85            Controls.Listen(pelaajaNumero, Buttons.DPadUp, ButtonPosition.Released, AsetaNopeus, null, maila, Vector2D.Zero); 
     86            Controls.Listen(pelaajaNumero, Buttons.DPadDown, ButtonPosition.Down, AsetaNopeus, "Liikuta mailaa alas", maila, nopeusAlas); 
     87            Controls.Listen(pelaajaNumero, Buttons.DPadDown, ButtonPosition.Released, AsetaNopeus, null, maila, Vector2D.Zero); 
     88        } 
     89        bool AsetaNopeus(ControlEvent e) 
     90        { 
     91            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     92            Vector2D nopeus = e.Parameter1.ToVector2D(); 
     93 
     94            if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     95            { 
     96                maila.Velocity = Vector2D.Zero; 
     97                return false; 
     98            } 
     99            if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     100            { 
     101                maila.Velocity = Vector2D.Zero; 
     102                return false; 
     103            } 
     104 
     105            maila.Velocity = nopeus; 
     106 
     107            return false; 
     108        } 
     109        /*bool LiikutaMailaaYlos( ControlEvent e ) 
     110        { 
     111            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     112            if (maila.Y >= Level.Top) 
     113            { 
     114                maila.Velocity = Vector2D.Zero; 
     115                return false; 
     116            } 
     117            Vector2D nopeus = new Vector2D(0, 200); 
     118            maila.Velocity = nopeus; 
     119            return false; 
     120        } 
     121        bool LiikutaMailaaAlas(ControlEvent e) 
     122        { 
     123            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     124            if (maila.Y <= Level.Bottom) 
     125            { 
     126                maila.Velocity = Vector2D.Zero; 
     127                return false; 
     128            } 
     129            Vector2D nopeus = new Vector2D(0, -200); 
     130            maila.Velocity = nopeus; 
     131            return false; 
     132        } 
     133        bool PysaytaMaila( ControlEvent e ) 
     134        { 
     135            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     136            maila.Velocity = Vector2D.Zero; 
     137            return false; 
     138        }*/ 
    38139    } 
    39140} 
Note: See TracChangeset for help on using the changeset viewer.