Changeset 27 for valtteri_s


Ignore:
Timestamp:
2009-07-20 14:47:18 (12 years ago)
Author:
tekrjant
Message:

Pong melkein valmis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • valtteri_s/Pong/Peli.cs

    r9 r27  
    2121    public class Peli : PhysicsGame 
    2222    { 
     23        PhysicsObject pallo; 
     24        PhysicsObject maila1; 
     25        PhysicsObject maila2; 
     26 
     27 
     28 
     29 
    2330        protected override void LoadContent() 
    2431        { 
    25             //IShape ympyra = Shapes.CreateCircle(20.0); 
    26             //IShape ympyra = Shapes.CreateCircle(50.8); 
    27             IShape suorakaide = Shapes.CreateRectangle(100,40); 
    28             PhysicsObject pallo = new PhysicsObject(10.0, suorakaide); 
    29             Level.Objects.Add(pallo); 
    30             pallo.X = 0.0; 
     32            Level = LuoKentta(); 
     33            AsetaOhjaimet(); 
     34            AloitaPeli(); 
     35        } 
     36 
     37 
     38        Level LuoKentta() 
     39        { 
     40            Level kentta = new Level(this); 
     41            kentta.BackgroundColor = Color.Black; 
     42            IShape ympyra = Shapes.CreateCircle(20.0); 
     43            pallo = new PhysicsObject(10.0, ympyra); 
     44            pallo.X = -200.0; 
    3145            pallo.Y = 0.0; 
    32             Vector2D impulssi = new Vector2D(2000.0, 0.0); 
     46            pallo.Restitution = 1.0; 
     47            kentta.Objects.Add(pallo); 
     48             
     49            maila1=LuoMaila(kentta.Left + 20.0, 0.0, kentta); 
     50            maila2=LuoMaila(kentta.Right - 20.0, 0.0, kentta); 
     51 
     52            kentta.CreateBorder(1.0, false); 
     53 
     54            return kentta; 
     55        } 
     56 
     57        bool LiikutaMailaaYlos(ControlEvent e) 
     58        { 
     59            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     60            double nopeus = 200.0; 
     61            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds; 
     62 
     63            if (maila.Y < Level.Top) 
     64            {maila.Y += 10.0;} 
     65 
     66            return false; 
     67        } 
     68        bool LiikutaMailaaAlas(ControlEvent e) 
     69        { 
     70            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     71             
     72             maila.Y += -10.0;  
     73            return false; 
     74        } 
     75        bool LiikutaMailaa(ControlEvent e) 
     76        { 
     77            PhysicsObject maila = e.Parameter0.ToPhysicsObject(); 
     78            double nopeus = e.Parameter1.ToDouble(); 
     79            double sekuntejaKulunut = e.Time.ElapsedGameTime.TotalSeconds; 
     80            if ((Level.Bottom < maila.Y) && (maila.Y < Level.Top)) 
     81 
     82            { maila.Y += nopeus * sekuntejaKulunut; } 
     83 
     84            return false; 
     85        } 
     86 
     87 
     88 
     89 
     90        void AloitaPeli() 
     91        { 
     92            Vector2D impulssi = new Vector2D(7500.0, 0.0); 
    3393            pallo.Hit(impulssi); 
    34             Level.CreateBorder(1.0, false); 
    35             pallo.Restitution = 1.0; 
    36             Level.BackgroundColor = Color.Green; 
    37             IShape ympyra = Shapes.CreateCircle(20.0); 
     94 
    3895        } 
     96        void AsetaOhjaimet() 
     97        { 
     98            Controls.Listen(Keys.A, ButtonPosition.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1, 200.0); 
     99            Controls.Listen(Keys.Z, ButtonPosition.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1, -200.0); 
     100 
     101            Controls.Listen(Keys.Up, ButtonPosition.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2, 200.0); 
     102            Controls.Listen(Keys.Down, ButtonPosition.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2, -200.0); 
     103 
     104        } 
     105 
     106        PhysicsObject LuoMaila(double x, double y, Level kentta) 
     107        { 
     108            IShape suorakulmio = Shapes.CreateRectangle(20.0, 100.0); 
     109            PhysicsObject maila = PhysicsObject.CreateStaticObject(suorakulmio); 
     110            maila.X = x; 
     111            maila.Y = y; 
     112            maila.Restitution = 1.0; 
     113            kentta.Objects.Add(maila); 
     114            return maila; 
     115        } 
     116 
     117 
     118 
     119 
    39120    } 
    40121} 
Note: See TracChangeset for help on using the changeset viewer.