Changeset 549 for 2010/23


Ignore:
Timestamp:
2010-06-08 13:29:37 (13 years ago)
Author:
lavevake
Message:

Sain Pong-pelin valmiiksi.

File:
1 edited

Legend:

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

    r521 r549  
    1111        PhysicsObject maila1; 
    1212        PhysicsObject maila2; 
     13        PhysicsObject vasenReuna; 
     14        PhysicsObject oikeaReuna; 
     15        PhysicsObject alaReuna; 
     16        PhysicsObject ylaReuna; 
     17 
     18        IntMeter pelaajan1Pisteet; 
     19        IntMeter pelaajan2Pisteet; 
    1320 
    1421        protected override void Begin() 
     
    1623            LuoKentta(); 
    1724            AsetaOhjaimet(); 
     25            LisaaLaskurit(); 
    1826            Aloitapeli(); 
    1927        } 
     
    2836            Add(pallo); 
    2937 
    30             Level.CreateBorders(1.0, false); 
     38            AddCollisionHandler(pallo, KasittelePallonTormays); 
     39 
     40            vasenReuna = Level.CreateLeftBorder(); 
     41            vasenReuna.Restitution = 1.0; 
     42            vasenReuna.IsVisible = false; 
     43 
     44            oikeaReuna = Level.CreateRightBorder(); 
     45            oikeaReuna.Restitution = 1.0; 
     46            oikeaReuna.IsVisible = false; 
     47 
     48            alaReuna = Level.CreateBottomBorder(); 
     49            alaReuna.Restitution = 1.0; 
     50            alaReuna.IsVisible = false; 
     51 
     52            ylaReuna = Level.CreateTopBorder(); 
     53            ylaReuna.Restitution = 1.0; 
     54            ylaReuna.IsVisible = false; 
     55 
    3156            Level.BackgroundColor = Color.Black; 
     57            MessageDisplay.TextColor = Color.Red; 
    3258 
    3359            Camera.ZoomToLevel(); 
     
    5278            return maila; 
    5379        } 
     80 
    5481        void AsetaOhjaimet() 
    5582        { 
    56             LuoKentta(); 
    57             AsetaOhjaimet(); 
    58             Aloitapeli(); 
    59             Keyboard.Listen(Key.A, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
     83            Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila1); 
    6084            Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null, maila1); 
     85            Keyboard.Listen(Key.Z, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila1); 
     86            Keyboard.Listen(Key.Z, ButtonState.Released, PysaytaMaila, null, maila1); 
    6187 
     88            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila2); 
     89            Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaMaila, null, maila2); 
     90            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa ylös", maila2); 
     91            Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaMaila, null, maila2); 
     92 
     93            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, LiikutaMailaaYlos, "Liikuta mailaa ylös", maila1); 
     94            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, PysaytaMaila, null, maila1); 
     95            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, LiikutaMailaaAlas, "Liikuta mailaa alas", maila1); 
     96            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, PysaytaMaila, null, maila1); 
     97 
     98            ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, LiikutaMailaaYlos, "Liikuta mailaa ylös", maila2); 
     99            ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, PysaytaMaila, null, maila2); 
     100            ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, LiikutaMailaaAlas, "Liikuta mailaa alas", maila2); 
     101            ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, PysaytaMaila, null, maila2); 
     102 
     103            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     104            ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     105 
     106 
     107            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    62108            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    63109 
    64110        } 
     111 
    65112        void LiikutaMailaaYlos(PhysicsObject maila) 
    66113        { 
     114            if (maila.Top > Level.Top) 
     115            { 
     116                maila.Velocity = Vector.Zero; 
     117                return; 
     118            } 
     119 
    67120            Vector nopeus = new Vector(0, 200); 
    68121            maila.Velocity = nopeus; 
    69122        } 
     123 
    70124        void PysaytaMaila(PhysicsObject maila) 
    71125        { 
     
    73127        } 
    74128 
     129        void LiikutaMailaaAlas(PhysicsObject maila) 
     130        { 
     131            if (maila.Bottom < Level.Bottom) 
     132            { 
     133                maila.Velocity = Vector.Zero; 
     134                return; 
     135            } 
     136 
     137            Vector nopeus = new Vector(0, -200); 
     138            maila.Velocity = nopeus; 
     139        } 
     140 
     141        void LisaaLaskurit() 
     142        { 
     143            pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     144            pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     145 
     146        } 
     147 
     148        IntMeter LuoPisteLaskuri(double x, double y) 
     149        { 
     150            IntMeter laskuri = new IntMeter(0); 
     151            laskuri.MaxValue = 10; 
     152            ValueDisplay naytto = new ValueDisplay(); 
     153            naytto.BindTo(laskuri); 
     154            naytto.X = x; 
     155            naytto.Y = y; 
     156            naytto.ValueColor = Color.White; 
     157            Add(naytto); 
     158            return laskuri; 
     159        } 
     160 
     161        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     162        { 
     163            if (kohde == oikeaReuna) 
     164            { 
     165                pelaajan1Pisteet.Value += 1; 
     166            } 
     167            else if (kohde == vasenReuna) 
     168            { 
     169                pelaajan2Pisteet.Value += 1; 
     170            } 
     171 
     172        } 
    75173    } 
     174 
    76175} 
    77  
Note: See TracChangeset for help on using the changeset viewer.