Changeset 1319 for 2010


Ignore:
Timestamp:
2010-07-27 11:30:25 (9 years ago)
Author:
jumakall
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/jumakall/Pong/Peli.cs

    r1282 r1319  
    1515    PhysicsObject maila2; 
    1616 
     17    PhysicsObject vasenReuna; 
     18    PhysicsObject oikeaReuna; 
     19 
     20    IntMeter pelaajan1Pisteet; 
     21    IntMeter pelaajan2Pisteet; 
     22 
    1723 
    1824    protected override void Begin() 
     
    2026        LuoKentta(); 
    2127        AsetaOhjaimet(); 
     28        LisaaLaskurit(); 
    2229        AloitaPeli(); 
     30    } 
    2331 
    24     } 
    2532 
    2633        void LuoKentta() 
     
    2835        pallo = new PhysicsObject(40.0, 40.0); 
    2936        pallo.Shape = Shapes.Circle; 
    30         pallo.X = -200.0; 
     37        pallo.X = 0.0; 
    3138        pallo.Y = 0.0; 
    3239        pallo.Restitution = 1.0; 
     40        pallo.CanRotate = true; 
    3341        Add(pallo); 
     42 
    3443 
    3544        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3645        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3746 
     47        vasenReuna = Level.CreateLeftBorder(); 
     48        vasenReuna.Restitution = 1.0; 
     49        vasenReuna.IsVisible = false; 
     50        oikeaReuna = Level.CreateRightBorder(); 
     51        oikeaReuna.Restitution = 1.0; 
     52        oikeaReuna.IsVisible = false; 
     53        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     54        ylaReuna.Restitution = 1.0; 
     55        ylaReuna.IsVisible = false; 
     56        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     57        alaReuna.Restitution = 1.0; 
     58        alaReuna.IsVisible = false; 
    3859 
    39         Level.CreateBorders(1.0, false); 
     60 
     61 
    4062        Level.BackgroundColor = Color.Black; 
    4163 
    4264        Camera.ZoomToLevel(); 
     65 
     66        AddCollisionHandler(pallo, KasittelePallonTormays); 
    4367 
    4468 
     
    4771        void AloitaPeli() 
    4872        { 
    49             Vector impulssi = new Vector(500.0, 51.0); 
     73            pallo.X = 0.0; 
     74            pallo.Y = 0.0; 
     75 
     76            pallo.Stop(); 
     77 
     78            Vector impulssi = new Vector(500.0, 111.0); 
    5079            pallo.Hit(impulssi); 
    5180        } 
     
    5786            maila.X = x; 
    5887            maila.Y = y; 
    59             maila.Restitution = 1.0; 
     88            maila.Restitution = 5.0; 
    6089            Add(maila); 
    6190 
     
    78107            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    79108 
     109            //xBox 360 
     110            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     111            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     112            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     113            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     114 
     115            ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     116            ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     117            ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     118            ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     119 
     120            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     121            ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     122 
     123            ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     124            ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     125 
     126            MessageDisplay.TextColor = Color.White; 
     127         
     128 
     129 
    80130        } 
    81131 
    82132        void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    83133        { 
     134            if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     135            { 
     136                maila.Velocity = Vector.Zero; 
     137                return; 
     138            } 
     139            if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     140            { 
     141                maila.Velocity = Vector.Zero; 
     142                return; 
     143            } 
     144 
    84145            maila.Velocity = nopeus; 
    85146        } 
    86147 
     148        void LisaaLaskurit() 
     149        { 
     150            pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     151            pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     152        } 
     153 
     154 
     155        IntMeter LuoPisteLaskuri(double x, double y) 
     156        { 
     157            IntMeter laskuri = new IntMeter(0); 
     158            laskuri.MaxValue = 10; 
     159            Label naytto = new Label(); 
     160            naytto.BindTo(laskuri); 
     161            naytto.X = x; 
     162            naytto.Y = y; 
     163            naytto.TextColor = Color.White; 
     164            Add(naytto); 
     165            return laskuri; 
     166        } 
     167 
     168        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     169        { 
     170            if (kohde == oikeaReuna) 
     171            { 
     172                pelaajan1Pisteet.Value += 1; 
     173                AloitaPeli(); 
     174            } 
     175            else if (kohde == vasenReuna) 
     176            { 
     177                pelaajan2Pisteet.Value += 1; 
     178                AloitaPeli(); 
     179            } 
     180        } 
    87181 
    88182} 
Note: See TracChangeset for help on using the changeset viewer.