Changeset 49


Ignore:
Timestamp:
2009-07-21 11:31:30 (10 years ago)
Author:
akeepylv
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • aki_p/Pong/Peli.cs

    r24 r49  
    2121    public class Peli : PhysicsGame 
    2222    { 
     23        const double mailanNopeus = 200.0; 
    2324        PhysicsObject pallo; 
     25        PhysicsObject maila1; 
     26        PhysicsObject maila2; 
    2427 
    2528        protected override void LoadContent() 
    2629        { 
    2730            Level = LuoKentta(); 
     31            AsetaOhjaimet(); 
    2832            AloitaPeli(); 
     33        } 
     34 
     35        PhysicsObject LuoMaila(double x, double y, Level kentta) 
     36        { 
     37            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
     38            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 
     39            maila.X = x; 
     40            maila.Y = y; 
     41            maila.Restitution = 1.0; 
     42            kentta.Objects.Add(maila); 
     43            return maila; 
    2944        } 
    3045 
     
    4156            kentta.Objects.Add(pallo); 
    4257 
    43             IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
    44             PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 
    45             maila.X = kentta.Left + 20.0; 
    46             maila.Y = 0.0; 
    47             maila.Restitution = 1.0; 
    48             kentta.Objects.Add(maila); 
    49  
     58            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
     59            maila2 = LuoMaila(kentta.Right - 20.0, 0.0, kentta); 
     60     
    5061            kentta.CreateBorder(1.0, false); 
    5162 
    5263            return kentta;    
     64        } 
     65 
     66        void AsetaOhjaimet() 
     67        { 
     68            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa ylös", maila1, mailanNopeus); 
     69            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 1: Liikuta mailaa alas", maila1, -mailanNopeus); 
     70 
     71            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa ylös", maila2, mailanNopeus); 
     72            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaa, "Pelaaja 2: Liikuta mailaa alas", maila2, -mailanNopeus); 
     73 
     74            AsetaGamePadOhjaimet(PlayerIndex.One, maila1); 
     75            AsetaGamePadOhjaimet(PlayerIndex.Two, maila2); 
     76        } 
     77 
     78        void AsetaGamePadOhjaimet(PlayerIndex pelaajaNumero, PhysicsObject maila) 
     79        { 
     80            Controls.Listen(pelaajaNumero, Buttons.DPadUp, ButtonPosition.Down, LiikutaMailaa, "Liikuta mailaa ylös", maila, mailanNopeus); 
     81            Controls.Listen(pelaajaNumero, Buttons.DPadDown, ButtonPosition.Down, LiikutaMailaa, "Liikuta mailaa alas", maila, -mailanNopeus); 
     82        } 
     83 
     84        bool LiikutaMailaa(ControlEvent e) 
     85        { 
     86            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     87            double nopeus = e.Parameter1.ToDouble(); 
     88            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds; 
     89            double uusiY = maila.Y + nopeus * sekuntejaKulunut; 
     90 
     91            if ((Level.Bottom < maila.Y) && (uusiY < Level.Top)) 
     92            { 
     93                maila.Y = uusiY; 
     94            } 
     95 
     96            return false; 
    5397        } 
    5498 
Note: See TracChangeset for help on using the changeset viewer.