Changeset 236


Ignore:
Timestamp:
2009-08-04 11:21:59 (12 years ago)
Author:
josojakk
Message:
 
Location:
joonas_s
Files:
11 added
1 edited

Legend:

Unmodified
Added
Removed
  • joonas_s/Pong/Peli.cs

    r217 r236  
    2121    public class Peli : PhysicsGame 
    2222    { 
     23        Vector2D nopeusYlos = new Vector2D(0, 200); 
     24        Vector2D nopeusAlas = new Vector2D(0, -200); 
     25 
    2326        PhysicsObject pallo; 
    2427        PhysicsObject maila1; 
    2528        PhysicsObject maila2; 
    26  
    2729 
    2830        protected override void LoadContent() 
     
    3840            kentta.BackgroundColor = Color.Black; 
    3941 
    40             IShape ympyra = Shapes.CreateCircle(20.0); 
     42            IShape ympyra = Shapes.CreateCircle(200.0); 
    4143            pallo = new PhysicsObject(10.0, ympyra); 
    4244            pallo.X = -200.0; 
    4345            pallo.Y = 0.0; 
    44             pallo.Restitution = 1.0; 
     46            pallo.Restitution = 1.1; 
    4547            kentta.Objects.Add(pallo); 
    4648 
    4749            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
    4850            maila2 = LuoMaila(kentta.Right - 20.0, 0.0, kentta); 
    49  
    50              
    5151 
    5252            kentta.CreateBorder(1.0, false); 
     
    5555        } 
    5656 
    57         void AloitaPeli() 
    58         { 
    59             Vector2D impulssi = new Vector2D(2000.0, 0.0); 
    60             pallo.Hit(impulssi); 
    61         } 
    62         PhysicsObject LuoMaila(double x, double y,Level kentta ) 
    63  
     57        PhysicsObject LuoMaila(double x, double y, Level kentta) 
    6458        { 
    6559            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
     
    6761            maila.X = x; 
    6862            maila.Y = y; 
    69             maila.Restitution = 1.0; 
     63            maila.Restitution = 1.1; 
    7064            kentta.Objects.Add(maila); 
    7165            return maila; 
    7266        } 
     67 
     68        void AloitaPeli() 
     69        { 
     70            Vector2D impulssi = new Vector2D(20000.0, 2000.0); 
     71            pallo.Hit(impulssi); 
     72        } 
     73 
    7374        void AsetaOhjaimet() 
    7475        { 
    75             Controls.Listen(Keys.A, ButtonPosition.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
    76             Controls.Listen(Keys.A, ButtonPosition.Released, PysaytaMaila, null, maila1); 
    77             Controls.Listen( Keys.Z, ButtonPosition.Pressed, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1 ); 
    78             Controls.Listen( Keys.Z, ButtonPosition.Released, PysaytaMaila, null, maila1 ); 
     76            Controls.Listen(Keys.A, ButtonPosition.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     77            Controls.Listen(Keys.A, ButtonPosition.Released, AsetaNopeus, null, maila1, Vector2D.Zero); 
     78            Controls.Listen(Keys.Z, ButtonPosition.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     79            Controls.Listen(Keys.Z, ButtonPosition.Released, AsetaNopeus, null, maila1, Vector2D.Zero); 
    7980 
    80             Controls.Listen( Keys.Up, ButtonPosition.Pressed, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2 ); 
    81             Controls.Listen( Keys.Up, ButtonPosition.Released, PysaytaMaila, null, maila2 ); 
    82             Controls.Listen( Keys.Down, ButtonPosition.Pressed, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2 ); 
    83             Controls.Listen( Keys.Down, ButtonPosition.Released, PysaytaMaila, null, maila2 ); 
     81            Controls.Listen(Keys.Up, ButtonPosition.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     82            Controls.Listen(Keys.Up, ButtonPosition.Released, AsetaNopeus, null, maila2, Vector2D.Zero); 
     83            Controls.Listen(Keys.Down, ButtonPosition.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     84            Controls.Listen(Keys.Down, ButtonPosition.Released, AsetaNopeus, null, maila2, Vector2D.Zero); 
     85 
     86            AsetaGamePadOhjaimet(PlayerIndex.One, maila1); 
     87            AsetaGamePadOhjaimet(PlayerIndex.Two, maila2); 
    8488        } 
    8589 
    86          
    87         bool LiikutaMailaaYlos(ControlEvent e) 
     90        void AsetaGamePadOhjaimet(PlayerIndex pelaajaNumero, PhysicsObject maila) 
     91        { 
     92            Controls.Listen(pelaajaNumero, Buttons.DPadUp, ButtonPosition.Down, AsetaNopeus, "Liikuta mailaa ylös", maila, nopeusYlos); 
     93            Controls.Listen(pelaajaNumero, Buttons.DPadUp, ButtonPosition.Released, AsetaNopeus, null, maila, Vector2D.Zero); 
     94            Controls.Listen(pelaajaNumero, Buttons.DPadDown, ButtonPosition.Down, AsetaNopeus, "Liikuta mailaa alas", maila, nopeusAlas); 
     95            Controls.Listen(pelaajaNumero, Buttons.DPadDown, ButtonPosition.Released, AsetaNopeus, null, maila, Vector2D.Zero); 
     96        } 
     97 
     98        bool AsetaNopeus(ControlEvent e) 
    8899        { 
    89100            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
    90             Vector2D nopeus = new Vector2D(0, 200); 
    91                        
     101            Vector2D nopeus = e.Parameter1.ToVector2D(); 
     102 
     103            if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     104            { 
     105                maila.Velocity = Vector2D.Zero; 
     106                return false; 
     107            } 
     108            if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     109            { 
     110                maila.Velocity = Vector2D.Zero; 
     111                return false; 
     112            } 
     113 
    92114            maila.Velocity = nopeus; 
     115 
    93116            return false; 
    94117        } 
    95          
    96          
    97  
    98         bool LiikutaMailaaAlas(ControlEvent e) 
    99         { 
    100             PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
    101             Vector2D nopeus = new Vector2D(0, -200); 
    102             maila.Velocity = nopeus; 
    103             return false; 
    104         } 
    105 bool PysaytaMaila(ControlEvent e) 
    106         { 
    107             PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
    108             maila.Velocity = Vector2D.Zero; 
    109  
    110             return false; 
    111  
    112  
    113  
    114  
    115     } 
    116         bool LiikutaMailaaYlos( ControlEvent e ) 
    117         { 
    118             PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
    119             if ( maila.Y < Level.Top ) 
    120             { 
    121                 Vector2D nopeus = new Vector2D( 0, 200 ); 
    122                 maila.Velocity = nopeus; 
    123             } 
    124             return false; 
    125         } 
    126  
    127  
    128  
    129  
    130  
    131118    } 
    132119} 
     120 
Note: See TracChangeset for help on using the changeset viewer.