Changeset 7725 for 2016/27/AnttiN


Ignore:
Timestamp:
2016-07-04 14:58:22 (7 years ago)
Author:
karkaite
Message:
 
Location:
2016/27/AnttiN/pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/AnttiN/pong/pong/pong/pong.cs

    r7684 r7725  
    99public class pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 500); 
     12    Vector nopeusAlas = new Vector(0, -500); 
     13 
    1114    PhysicsObject pallo; 
     15 
     16    PhysicsObject maila1; 
     17    PhysicsObject maila2; 
     18 
     19    const double PALLON_MIN_NOPEUS = 500; 
     20 
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
    1223 
    1324    public override void Begin() 
    1425    { 
    1526        LuoKentta(); 
     27        AloitaPeli(); 
     28        AsetaOhjaimet(); 
     29        LisaaLaskurit(); 
    1630 
    17         Vector impulssi = new Vector(300.0, 0.0); 
    18         pallo.Hit(impulssi); 
    19          
    20          
    21          
    22         // TODO: Kirjoita ohjelmakoodisi tähän 
     31    } 
    2332 
    24         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    25         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     33 
     34    protected override void Update(Time time) 
     35    { 
     36        if (pallo != null && Math.Abs(pallo.Velocity.X) < PALLON_MIN_NOPEUS) 
     37        { 
     38            pallo.Velocity = new Vector(pallo.Velocity.X * 1.1, pallo.Velocity.Y); 
     39        } 
     40        base.Update(time); 
    2641    } 
    2742 
     
    3449        Add(pallo); 
    3550        pallo.Restitution = 1.0; 
     51        pallo.Color = Color.Blue; 
    3652 
    37         Level.Background.Color = Color.Black; 
     53        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     54        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     55 
     56        Level.Background.Color = Color.Green; 
    3857        Level.CreateBorders(1.0, false); 
    3958 
    4059        Camera.ZoomToLevel(); 
    41      } 
     60    } 
     61 
     62    void AloitaPeli() 
     63    { 
     64 
     65        Vector impulssi = new Vector(500.0, 0.0); 
     66        pallo.Hit(impulssi); 
     67 
     68    } 
     69 
     70    PhysicsObject LuoMaila(double x, double y) 
     71    { 
     72        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     73        maila.Shape = Shape.Rectangle; 
     74        maila.X = x; 
     75        maila.Y = y; 
     76        maila.Restitution = 1.0; 
     77        Add(maila); 
     78        maila.Color = Color.Yellow; 
     79        return maila; 
     80    } 
     81    void AsetaOhjaimet() 
     82    { 
     83        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     84        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     85        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     86        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     87 
     88        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     89        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     90        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     91        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     92 
     93        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     95 
     96        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     97        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     98        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     99        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     100 
     101        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     102        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     103        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     104        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     105 
     106        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     107        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     108    } 
     109 
     110 
     111    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     112    { 
     113        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     114        { 
     115            maila.Velocity = Vector.Zero; 
     116            return; 
     117        } 
     118        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     119        { 
     120            maila.Velocity = Vector.Zero; 
     121            return; 
     122        } 
     123 
     124        maila.Velocity = nopeus; 
     125    } 
     126 
     127    void LisaaLaskurit() 
     128    { 
     129        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     130        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     131    } 
     132 
     133    IntMeter LuoPisteLaskuri(double x, double y) 
     134    { 
     135        IntMeter laskuri = new IntMeter(0); 
     136        laskuri.MaxValue = 100; 
     137 
     138        Label naytto = new Label(); 
     139        naytto.BindTo(laskuri); 
     140        naytto.X = x; 
     141        naytto.Y = y; 
     142        naytto.TextColor = Color.White; 
     143        naytto.BorderColor = Level.Background.Color; 
     144        naytto.Color = Level.Background.Color; 
     145        Add(naytto); 
     146 
     147        return laskuri; 
     148    } 
    42149 
    43150} 
Note: See TracChangeset for help on using the changeset viewer.