Changeset 546


Ignore:
Timestamp:
2010-06-08 11:32:00 (13 years ago)
Author:
juiitamm
Message:
 
Location:
2010/23/almiilhi/pong
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/almiilhi/pong/Ohjelma.cs

    r517 r546  
    33#endregion 
    44 
    5 namespace pong 
     5namespace Pong 
    66{ 
    77    static class Ohjelma 
  • 2010/23/almiilhi/pong/Peli.cs

    r517 r546  
    22using Jypeli; 
    33using Jypeli.ScreenObjects; 
    4 using Jypeli.Assets; 
    54 
    6 namespace pong 
     5namespace Pong 
    76{ 
    87    public class Peli : PhysicsGame 
    98    { 
     9        Vector nopeusYlos = new Vector(0, 200); 
     10        Vector nopeusAlas = new Vector(0, -200); 
     11 
    1012        PhysicsObject pallo; 
    1113        PhysicsObject maila1; 
    1214        PhysicsObject maila2; 
    1315 
     16        PhysicsObject vasenReuna; 
     17        PhysicsObject oikeaReuna; 
     18 
     19        IntMeter pelaajan1Pisteet; 
     20        IntMeter pelaajan2Pisteet; 
    1421 
    1522        protected override void Begin() 
     
    1724            LuoKentta(); 
    1825            AsetaOhjaimet(); 
     26            LisaaLaskurit(); 
    1927            AloitaPeli(); 
    2028        } 
     
    2836            pallo.Restitution = 1.0; 
    2937            Add(pallo); 
     38            AddCollisionHandler(pallo, KasittelePallonTormays); 
    3039 
    3140            maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3241            maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    33                                      
    34             Level.CreateBorders(1.0, false); 
    35             Level.BackgroundColor = Color.Pink; 
     42 
     43            vasenReuna = Level.CreateLeftBorder(); 
     44            vasenReuna.Restitution = 1.0; 
     45            vasenReuna.IsVisible = false; 
     46            oikeaReuna = Level.CreateRightBorder(); 
     47            oikeaReuna.Restitution = 1.0; 
     48            oikeaReuna.IsVisible = false; 
     49            PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     50            ylaReuna.Restitution = 1.0; 
     51            ylaReuna.IsVisible = false; 
     52            PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     53            alaReuna.Restitution = 1.0; 
     54            alaReuna.IsVisible = false; 
     55 
     56            Level.BackgroundColor = Color.Black; 
    3657 
    3758            Camera.ZoomToLevel(); 
    38          } 
     59        } 
    3960 
    40          PhysicsObject LuoMaila( double x, double y ) 
     61        PhysicsObject LuoMaila(double x, double y) 
    4162        { 
    42             PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0 ); 
     63            PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    4364            maila.Shape = Shapes.Rectangle; 
    44             maila.X = x;            maila.Y = y; 
     65            maila.X = x; 
     66            maila.Y = y; 
    4567            maila.Restitution = 1.0; 
    46             Add( maila ); 
     68            Add(maila); 
     69            return maila; 
     70        } 
    4771 
    48             return maila; 
    49          } 
     72        void LisaaLaskurit() 
     73        { 
     74            pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     75            pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     76        } 
     77 
     78        IntMeter LuoPisteLaskuri(double x, double y) 
     79        { 
     80            IntMeter laskuri = new IntMeter(0); 
     81            laskuri.MaxValue = 10; 
     82            ValueDisplay naytto = new ValueDisplay(); 
     83            naytto.BindTo(laskuri); 
     84            naytto.X = x; 
     85            naytto.Y = y; 
     86            naytto.ValueColor = Color.White; 
     87            Add(naytto); 
     88            return laskuri; 
     89        } 
     90 
     91        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     92        { 
     93            if (kohde == oikeaReuna) 
     94            { 
     95                pelaajan1Pisteet.Value += 1; 
     96            } 
     97            else if (kohde == vasenReuna) 
     98            { 
     99                pelaajan2Pisteet.Value += 1; 
     100            } 
     101        } 
    50102 
    51103        void AloitaPeli() 
     
    55107        } 
    56108 
    57          
     109        void AsetaOhjaimet() 
     110        { 
     111            Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     112            Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     113            Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     114            Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    58115 
     116            Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     117            Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     118            Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     119            Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    59120 
    60             void AsetaOhjaimet() 
    61         { 
    62             Keyboard.Listen( Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1 ); 
    63             Keyboard.Listen( Key.A, ButtonState.Released, PysaytaMaila, null, maila1 ); 
    64             Keyboard.Listen( Key.Z, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1 ); 
    65             Keyboard.Listen( Key.Z, ButtonState.Released, PysaytaMaila, null, maila1 ); 
     121            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     122            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    66123 
    67             Keyboard.Listen( Key.Up, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2 ); 
    68             Keyboard.Listen( Key.Up, ButtonState.Released, PysaytaMaila, null, maila2 ); 
    69             Keyboard.Listen( Key.Down, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2 ); 
    70             Keyboard.Listen( Key.Down, ButtonState.Released, PysaytaMaila, null, maila2 ); 
     124            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     125            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     126            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     127            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    71128 
    72             Keyboard.Listen( Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet" ); 
    73             Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" ); 
     129            ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     130            ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     131            ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     132            ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     133 
     134            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     135            ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
    74136        } 
    75137 
    76             void LiikutaMailaaYlos(PhysicsObject maila) 
     138        void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     139        { 
     140            if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
    77141            { 
    78                 if (maila.Y <= Level.Top) 
    79                 { 
    80                     maila.Velocity = Vector.Zero; 
    81                     return; 
    82                 } 
    83  
    84                 Vector nopeus = new Vector(0, 200); 
    85                 maila.Velocity = nopeus; 
     142                maila.Velocity = Vector.Zero; 
     143                return; 
     144            } 
     145            if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     146            { 
     147                maila.Velocity = Vector.Zero; 
     148                return; 
    86149            } 
    87150 
    88          
    89         void LiikutaMailaaAlas( PhysicsObject maila ) 
    90         { 
    91             Vector nopeus = new Vector(0, -200); 
    92151            maila.Velocity = nopeus; 
    93         } 
    94  
    95         void PysaytaMaila( PhysicsObject maila ) 
    96         { 
    97             maila.Velocity = Vector.Zero;         
    98152        } 
    99153    } 
    100154} 
     155 
     156 
     157 
     158 
     159 
     160 
     161 
     162 
    101163 
    102164 
Note: See TracChangeset for help on using the changeset viewer.