Changeset 215 for kyosti_s/Pong


Ignore:
Timestamp:
2009-08-03 14:44:19 (11 years ago)
Author:
kykasalo
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kyosti_s/Pong/Peli.cs

    r199 r215  
    2121    public class Peli : PhysicsGame 
    2222    { 
     23        PhysicsObject pallo; 
     24        PhysicsObject maila1; 
     25        PhysicsObject maila2; 
     26 
    2327        protected override void LoadContent() 
    2428        { 
    25             //IShape ympyra = Shapes.CreateCircle(20.0); 
    26             IShape ympyra = Shapes.CreateCircle(50.8); 
    27             PhysicsObject pallo = new PhysicsObject( 10.0, ympyra ); 
    28             Level.Objects.Add( pallo ); 
    29             pallo.X = -400.0; 
     29            Level = LuoKentta(); 
     30            AsetaOhjaimet(); 
     31            AloitaPeli(); 
     32        } 
     33 
     34        Level LuoKentta() 
     35        { 
     36            Level kentta = new Level(this); 
     37            kentta.BackgroundColor = Color.Black; 
     38 
     39            IShape ympyra = Shapes.CreateCircle(20.0); 
     40            pallo = new PhysicsObject(10.0, ympyra); 
     41            pallo.X = -200.0; 
    3042            pallo.Y = 0.0; 
    31             Vector2D impulssi = new Vector2D(1000.0, 1000.0); 
     43            pallo.Restitution = 1.0; 
     44            kentta.Objects.Add(pallo); 
     45 
     46            maila1 = LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
     47            maila2 = LuoMaila(kentta.Right - 20.0, 0.0, kentta); 
     48 
     49            kentta.CreateBorder(1.0, false); 
     50            return kentta; 
     51        } 
     52 
     53        void AloitaPeli() 
     54        { 
     55            Vector2D impulssi = new Vector2D(2000.0, 0.0); 
    3256            pallo.Hit(impulssi); 
    33             Level.CreateBorder( 1.0 , false ); 
    34             pallo.Restitution = 1.0; 
    35             Level.BackgroundColor = Color.Black; 
     57        } 
     58 
     59        PhysicsObject LuoMaila(double x, double y, Level kentta) 
     60        { 
     61            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
     62            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 
     63            maila.X = x; 
     64            maila.Y = y; 
     65            maila.Restitution = 1.0; 
     66            kentta.Objects.Add(maila); 
     67            return maila; 
     68        } 
     69 
     70        void AsetaOhjaimet() 
     71        { 
     72            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
     73            Controls.Listen(Keys.A, ButtonPosition.Released, PysaytaMaila, null, maila1); 
     74            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
     75            Controls.Listen(Keys.Z, ButtonPosition.Released, PysaytaMaila, null, maila1); 
     76 
     77            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2); 
     78            Controls.Listen(Keys.Up, ButtonPosition.Released, PysaytaMaila, null, maila2); 
     79            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa ylös", maila2); 
     80            Controls.Listen(Keys.Down, ButtonPosition.Released, PysaytaMaila, null, maila2); 
     81        } 
     82 
     83        bool LiikutaMailaaYlos(ControlEvent e) 
     84        { 
     85            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     86            if (maila.Y >= Level.Top) 
     87            { 
     88                maila.Velocity = Vector2D.Zero; 
     89                return false; 
     90            } 
     91 
     92            Vector2D nopeus = new Vector2D(0, 200); 
     93            maila.Velocity = nopeus; 
     94            return false; 
     95        } 
     96 
     97        bool PysaytaMaila(ControlEvent e) 
     98        { 
     99            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     100            maila.Velocity = Vector2D.Zero; 
     101            return false; 
     102        } 
     103 
     104        bool LiikutaMailaaAlas(ControlEvent e) 
     105        { 
     106            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     107            Vector2D nopeus = new Vector2D(0, -200); 
     108            maila.Velocity = nopeus; 
     109            return false; 
    36110        } 
    37111    } 
Note: See TracChangeset for help on using the changeset viewer.