Changeset 534


Ignore:
Timestamp:
2010-06-08 11:26:42 (13 years ago)
Author:
leperoih
Message:

sain mu PÖNG pelinz valmiigzi

Location:
2010/23/leperoih
Files:
25 added
1 edited

Legend:

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

    r509 r534  
    77    public class Peli : PhysicsGame 
    88    { 
     9        Vector nopeusYlos = new Vector(0, 200); 
     10        Vector nopeusAlas = new Vector(0, -200); 
     11 
     12        PhysicsObject vasenReuna; 
     13        PhysicsObject oikeaReuna; 
    914        PhysicsObject pallo; 
    1015        PhysicsObject maila1; 
    1116        PhysicsObject maila2; 
     17 
     18        IntMeter pelaajan1Pisteet; 
     19        IntMeter pelaajan2Pisteet; 
    1220 
    1321        protected override void Begin() 
     
    1523            LuoKentta(); 
    1624            AsetaOhjaimet(); 
     25            LisaaLaskurit(); 
    1726            AloitaPeli(); 
    1827        } 
    1928 
     29        void LisaaLaskurit() 
     30        { 
     31            pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     32            pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     33 
     34        } 
     35 
     36        IntMeter LuoPisteLaskuri(double x, double y) 
     37        { 
     38            IntMeter laskuri = new IntMeter( 0 ); 
     39            laskuri.MaxValue = 10; 
     40            ValueDisplay naytto = new ValueDisplay(); 
     41            naytto.BindTo ( laskuri ); 
     42            naytto.X = x; 
     43            naytto.Y = y; 
     44            naytto.ValueColor = Color.White; 
     45            Add( naytto ); 
     46            return laskuri; 
     47        } 
     48 
     49        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     50        { 
     51            if (kohde == vasenReuna) 
     52            { 
     53                pelaajan1Pisteet.Value += 1; 
     54            } 
     55            else if (kohde == vasenReuna) 
     56            { 
     57                pelaajan2Pisteet.Value += 1; 
     58            } 
     59        } 
     60         
    2061        void LuoKentta() 
    2162        { 
     63 
    2264            pallo = new PhysicsObject(40.0, 40.0); 
    2365            pallo.Shape = Shapes.Circle; 
     
    2971            maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3072            maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    31             Vector nopeusYlos = new Vector(0, 200); 
    32             Vector nopeusAlas = new Vector(0, -200); 
    3373 
    3474            Level.CreateBorders(1.0, false); 
    35             Level.BackgroundColor = Color.Black; 
     75            Level.BackgroundColor = Color.Pink; 
    3676 
    3777            Camera.ZoomToLevel(); 
     78 
     79 
     80            AddCollisionHandler(pallo, KasittelePallonTormays); 
     81 
     82 
     83            vasenReuna = Level.CreateLeftBorder(); 
     84            oikeaReuna = Level.CreateRightBorder(); 
     85            vasenReuna.Restitution = 1.0; 
     86            vasenReuna.IsVisible = false; 
     87             
     88            oikeaReuna.Restitution = 1.0; 
     89            oikeaReuna.IsVisible = false; 
     90            PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     91            alaReuna.Restitution = 1.0; 
     92            alaReuna.IsVisible = false; 
     93            PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     94            ylaReuna.Restitution = 1.0; 
     95            ylaReuna.IsVisible = false; 
    3896        } 
    3997 
     
    57115        void AsetaOhjaimet() 
    58116        { 
    59             Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
    60             Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila1); 
    61             Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1); 
    62             Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila1); 
     117            Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     118            Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     119            Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     120            Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    63121 
    64             Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2); 
    65             Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila2); 
    66             Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2); 
    67             Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila2); 
     122            Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     123            Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     124            Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     125            Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    68126 
    69127            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    70128            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     129 
     130            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     131            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     132            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     133            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     134 
     135            ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     136            ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     137            ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     138            ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     139 
     140            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     141            ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
    71142        } 
    72143 
    73         void LiikutaMailaaYlos(PhysicsObject maila) 
     144        void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    74145        { 
    75             if (maila.Y >= Level.Top) 
     146            if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     147            { 
     148                maila.Velocity = Vector.Zero; 
     149                return; 
     150            } 
     151            if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
    76152            { 
    77153                maila.Velocity = Vector.Zero; 
     
    79155            } 
    80156 
    81                 Vector nopeus = new Vector(0, 200); 
    82                 maila.Velocity = nopeus; 
    83  
    84         } 
    85  
    86         void LiikutaMailaaAlas(PhysicsObject maila) 
    87         { 
    88             Vector nopeus = new Vector(0, -200); 
    89157            maila.Velocity = nopeus; 
    90         } 
    91  
    92         void PysaytaMaila(PhysicsObject maila) 
    93         { 
    94             maila.Velocity = Vector.Zero; 
    95158        } 
    96159    } 
Note: See TracChangeset for help on using the changeset viewer.