Changeset 7718


Ignore:
Timestamp:
2016-07-04 14:55:09 (3 years ago)
Author:
karkaite
Message:
 
Location:
2016/27/PekkaP/PongVersionTwo
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/PekkaP/PongVersionTwo/PongVersionTwo/PongVersionTwo/PongVersionTwo.cs

    r7683 r7718  
    99public class PongVersionTwo : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
     15    PhysicsObject maila1; 
     16    PhysicsObject maila2; 
     17 
     18    IntMeter pelaajan1Pisteet; 
     19    IntMeter pelaajan2Pisteet; 
    1220    public override void Begin() 
    1321    { 
    1422        // TODO: Kirjoita ohjelmakoodisi tähän 
    1523        Luokentta(); 
     24        AsetaOhjaimet(); 
    1625        AloitaPeli(); 
    17  
    18         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     26        LisaaLaskurit(); 
    1927    } 
    2028    void Luokentta() 
    2129    { 
    2230        pallo = new PhysicsObject(40.0, 40.0); 
    23         pallo.Restitution = 1.0; 
     31        pallo.Restitution = 3.0; 
    2432        pallo.Shape = Shape.Circle; 
    2533        Add(pallo); 
     
    2735        pallo.Y = 0.0; 
    2836 
    29         LuoMaila(Level.Left + 20.0, 0.0); 
    30         LuoMaila(Level.Right + 20.0, 0.0); 
     37        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     38        maila2 = LuoMaila(Level.Right + 20.0, 0.0); 
     39 
    3140        Level.CreateBorders(1.0, false); 
    3241        Level.Background.Color = Color.Green; 
     
    3948        pallo.Hit(impulssi); 
    4049    } 
    41     void LuoMaila(double x, double y) 
     50    PhysicsObject LuoMaila(double x, double y) 
    4251    { 
    4352        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    4756        maila.Restitution = 1.0; 
    4857        Add(maila); 
     58        return maila; 
    4959 
    5060 
    5161    } 
    52      
     62    void AsetaOhjaimet() 
     63    { 
     64        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     65        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     66        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     67        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     68 
     69        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     70        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     71        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     72        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     73 
     74        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     75        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     76    } 
     77    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     78    { 
     79        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     80        { 
     81            maila.Velocity = Vector.Zero; 
     82            return; 
     83        } 
     84        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     85        { 
     86            maila.Velocity = Vector.Zero; 
     87            return; 
     88        } 
     89 
     90        maila.Velocity = nopeus; 
     91    } 
     92 
     93 
     94    void LisaaLaskurit() 
     95    { 
     96        // ... 
     97    } 
     98    IntMeter LuoPisteLaskuri(double x, double y) 
     99    { 
     100        IntMeter laskuri = new IntMeter(0); 
     101        laskuri.MaxValue = 10; 
     102 
     103        Label naytto = new Label(); 
     104        naytto.BindTo(laskuri); 
     105        naytto.X = x; 
     106        naytto.Y = y; 
     107        naytto.TextColor = Color.Crimson; 
     108        naytto.BorderColor = Level.Background.Color; 
     109        Add(naytto); 
     110 
     111        return laskuri; 
     112    } 
    53113} 
Note: See TracChangeset for help on using the changeset viewer.