Ignore:
Timestamp:
2010-06-08 11:27:02 (13 years ago)
Author:
paaaanro
Message:

Peli valmiiksi.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/Kavaisan/Pong/Peli.cs

    r512 r537  
    88    public class Peli : PhysicsGame 
    99    { 
     10        Vector nopeusYlos = new Vector(0, 200); 
     11        Vector nopeusAlas = new Vector(0, -200); 
     12 
    1013        PhysicsObject Pallo; 
    1114        PhysicsObject maila1; 
    1215        PhysicsObject maila2; 
    1316 
     17        PhysicsObject vasenReuna; 
     18        PhysicsObject oikeaReuna; 
    1419 
    15  
    16  
     20        IntMeter pelaajan1Pisteet; 
     21        IntMeter pelaajan2Pisteet; 
    1722 
    1823        protected override void Begin() 
     
    2025            LuoKentta(); 
    2126            AsetaOhjaimet(); 
    22             Aloitapeli(); 
    23  
     27            AloitaPeli(); 
     28            MessageDisplay.TextColor = Color.Green; 
     29            LisaaLaskurit(); 
    2430 
    2531 
     
    3339            Pallo.Restitution = 1.0; 
    3440            Add(Pallo); 
     41            AddCollisionHandler( Pallo, KasittelePallonTormays ); 
     42 
    3543 
    3644            maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     
    4250            Camera.ZoomToLevel(); 
    4351 
     52            vasenReuna = Level.CreateLeftBorder(); 
     53            vasenReuna.Restitution = 1.0; 
     54            vasenReuna.IsVisible = false; 
     55            oikeaReuna = Level.CreateRightBorder(); 
     56            oikeaReuna.Restitution = 1.0; 
     57            oikeaReuna.IsVisible = false; 
     58            PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     59            ylaReuna.Restitution = 1.0; 
     60            ylaReuna.IsVisible = false; 
     61            PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     62            alaReuna.Restitution = 1.0; 
     63            alaReuna.IsVisible = false; 
    4464 
    45             Level.CreateBorders(); 
     65 
     66             
    4667            Pallo.Restitution = 1.0; 
    4768        } 
    48         void Aloitapeli() 
     69        void KasittelePallonTormays( PhysicsObject pallo, PhysicsObject kohde ) 
    4970        { 
    50             Vector impulssi = new Vector(500.0, 0.0); 
    51             Pallo.Hit(impulssi); 
     71            if ( kohde == oikeaReuna ) 
     72            { 
     73                pelaajan1Pisteet.Value += 1; 
     74            } 
     75            else if ( kohde == vasenReuna ) 
     76            { 
     77                pelaajan2Pisteet.Value += 1; 
     78            } 
    5279        } 
     80 
    5381 
    5482 
     
    6391            return maila; 
    6492        } 
     93         void LisaaLaskurit() 
     94        { 
     95            pelaajan1Pisteet = LuoPisteLaskuri( Screen.Left + 100.0, Screen.Top - 100.0 ); 
     96            pelaajan2Pisteet = LuoPisteLaskuri( Screen.Right - 100.0, Screen.Top - 100.0 ); 
     97        } 
     98        IntMeter LuoPisteLaskuri( double x, double y ) 
     99        { 
     100            IntMeter laskuri = new IntMeter( 0 ); 
     101            laskuri.MaxValue = 10; 
     102            ValueDisplay naytto = new ValueDisplay(); 
     103            naytto.BindTo( laskuri ); 
     104            naytto.X = x; 
     105            naytto.Y = y; 
     106            naytto.ValueColor = Color.White; 
     107            Add( naytto ); 
     108            return laskuri; 
     109        } 
     110 
     111        
     112         
     113        void AloitaPeli() 
     114        { 
     115            Vector impulssi = new Vector( 500.0, 0.0 ); 
     116            Pallo.Hit( impulssi ); 
     117        } 
     118         
     119 
    65120        void AsetaOhjaimet() 
    66121        { 
    67             Keyboard.Listen(Key.A, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
    68             Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null, maila1); 
    69             Keyboard.Listen( Key.Z, ButtonState.Pressed, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1 ); 
    70             Keyboard.Listen( Key.Z, ButtonState.Released, PysaytaMaila, null, maila1 ); 
     122            Keyboard.Listen(Key.A, ButtonState.Pressed, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     123            Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     124            Keyboard.Listen(Key.Z, ButtonState.Pressed, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     125            Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    71126 
    72             Keyboard.Listen( Key.Up, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2 ); 
    73             Keyboard.Listen( Key.Up, ButtonState.Released, PysaytaMaila, null, maila2 ); 
    74             Keyboard.Listen( Key.Down, ButtonState.Pressed, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2 ); 
    75             Keyboard.Listen( Key.Down, ButtonState.Released, PysaytaMaila, null, maila2 ); 
     127            Keyboard.Listen(Key.Up, ButtonState.Pressed, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     128            Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     129            Keyboard.Listen(Key.Down, ButtonState.Pressed, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2,nopeusAlas); 
     130            Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     131 
     132            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     133            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     134            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     135            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     136 
     137            ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     138            ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     139            ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     140            ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    76141 
    77142 
    78             Keyboard.Listen( Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet" ); 
     143            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    79144            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     145 
     146            ControllerOne.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     147            ControllerTwo.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
    80148        } 
    81149 
    82             void LiikutaMailaaYös( PhysicsObject maila )  
     150        
     151 
     152         
     153        void AsetaNopeus( PhysicsObject maila, Vector nopeus ) 
     154        { 
     155            if ( (nopeus.Y< 0) && (maila.Y < Level.Bottom) ) 
    83156            { 
    84                 Vector nopeus = new Vector(0, 200); 
    85                 maila.Velocity = nopeus; 
     157                maila.Velocity = Vector.Zero; 
     158                return; 
     159            } 
     160            if ( (nopeus.Y > 0) && (maila.Y > Level.Top) ) 
     161            {    
     162                maila.Velocity = Vector.Zero; 
     163                return; 
    86164            } 
    87165             
     166            maila.Velocity = nopeus; 
     167             
     168        } 
     169   } 
     170} 
     171     
    88172 
    89         } 
    90     } 
    91 } 
Note: See TracChangeset for help on using the changeset viewer.