Changeset 9050 for 2017/30/TuomasH


Ignore:
Timestamp:
2017-07-24 13:35:39 (2 years ago)
Author:
npo17_61
Message:
 
Location:
2017/30/TuomasH/Pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2017/30/TuomasH/Pong/Pong/Pong/Pong.cs

    r9036 r9050  
    2020        base.Update(time); 
    2121    } 
    22     Vector nopeusYlos = new Vector(0, 200); 
    23     Vector nopeusAlas = new Vector(0, -200); 
     22    Vector nopeusYlos = new Vector(0, 350); 
     23    Vector nopeusAlas = new Vector(0, -350); 
    2424    PhysicsObject maila1; 
    2525    PhysicsObject maila2; 
     26    IntMeter pelaajan1Pisteet; 
     27    IntMeter pelaajan2Pisteet; 
     28    PhysicsObject vasenReuna; 
     29    PhysicsObject oikeaReuna; 
     30    PhysicsObject alaReuna; 
     31    PhysicsObject yläReuna; 
    2632    public override void Begin() 
    2733    { 
     
    2935        AloitaPeli(); 
    3036        AsetaOhjaimet(); 
     37        LisaaLaskurit(); 
    3138        
    3239        
     
    3744            Add(pallo); 
    3845            pallo.Shape = Shape.Circle; 
     46        pallo.KineticFriction = 0.0; 
     47            pallo.MomentOfInertia = Double.PositiveInfinity; 
    3948            pallo.X = 0.0; 
    4049            pallo.Y = 0.0; 
    41             Level.CreateBorders(1.0, false); 
     50         vasenReuna = Level.CreateLeftBorder(); 
     51        vasenReuna.Restitution = 1.0; 
     52            vasenReuna.IsVisible = false; 
     53        vasenReuna.KineticFriction = 0.0; 
     54         oikeaReuna = Level.CreateRightBorder(); 
     55        oikeaReuna.IsVisible = false; 
     56        oikeaReuna.Restitution = 0.0; 
     57        oikeaReuna.KineticFriction = 1.0; 
     58        alaReuna = Level.CreateBottomBorder(); 
     59        alaReuna.Restitution = 1.0; 
     60            alaReuna.IsVisible = false; 
     61        alaReuna.KineticFriction = 0.0; 
     62        yläReuna = Level.CreateTopBorder(); 
     63        yläReuna.Restitution = 1.0; 
     64            yläReuna.IsVisible = false; 
     65        yläReuna.KineticFriction = 0.0; 
     66 
     67 
    4268            pallo.Restitution = (1.0); 
    4369            Level.Background.Color = Color.Black; 
     
    4571       maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    4672       maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     73        AddCollisionHandler(pallo, PallonTormays); 
    4774 
    4875        } 
    4976    void AloitaPeli() 
    5077    { 
    51         Vector impulssi = new Vector(450.0, 30.0); 
     78        Vector impulssi = new Vector(400.0, 50.0); 
    5279        pallo.Hit(impulssi); 
    5380 
     
    6491        maila.Y = y; 
    6592        maila.Restitution = 1.0; 
     93        maila.KineticFriction = 0.0; 
    6694        Add(maila); 
    6795        return maila; 
     
    81109        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
    82110        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    83      
     111        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     112        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     113        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     114        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     115        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     116 
     117        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     118        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     119        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     120        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     121 
     122        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     123        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     124 
    84125 
    85126 
     
    90131    { 
    91132        maila.Velocity = nopeus; 
     133        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     134        { 
    92135 
     136            maila.Velocity = Vector.Zero; 
     137            return; 
     138        } 
     139        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     140        { 
     141            maila.Velocity = Vector.Zero; 
     142            return; 
     143        } 
    93144 
     145    } 
    94146 
     147 void LisaaLaskurit() 
     148    { 
     149        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100); 
     150        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100, Screen.Top - 100); 
     151 
     152    } 
     153 
     154    IntMeter LuoPisteLaskuri(double x, double y) 
     155    { 
     156        IntMeter laskuri = new IntMeter(0); 
     157        laskuri.MaxValue = 20; 
     158        Label naytto = new Label(); 
     159        naytto.BindTo(laskuri); 
     160        naytto.X = x; 
     161        naytto.Y = y; 
     162        naytto.TextColor = Color.White; 
     163        naytto.BorderColor = Level.Background.Color; 
     164        naytto.Color = Level.Background.Color; 
     165        Add (naytto); 
     166        return laskuri; 
     167    } 
     168    void PallonTormays(PhysicsObject pallo, PhysicsObject seinä) 
     169    { 
     170        if (seinä == oikeaReuna) 
     171        { 
     172            pelaajan1Pisteet.Value += 1; 
     173        } 
     174        else if (seinä == vasenReuna) 
     175        { 
     176            pelaajan2Pisteet.Value += 1; 
     177        } 
    95178    } 
    96179} 
Note: See TracChangeset for help on using the changeset viewer.