Changeset 541 for 2010/23


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

File:
1 edited

Legend:

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

    r505 r541  
    1111        PhysicsObject maila1; 
    1212        PhysicsObject maila2; 
     13 
     14        Vector nopeusylos = new Vector(0, 200); 
     15        Vector nopeusalas = new Vector(0, -200); 
     16 
     17        IntMeter pelaaja1pisteet; 
     18        IntMeter pelaaja2pisteet; 
    1319         
    1420        protected override void Begin() 
     
    1622            Vector impulssi = new Vector(500.0, 0.0); 
    1723            Luokentta(); 
    18             asetaohjaimet(); 
     24            AsetaOhjaimet(); 
    1925            Aloitapeli(); 
    2026            pallo.Hit(impulssi); 
     27            Lisaalaskurit(); 
    2128                
    2229        } 
     
    2431        void Luokentta() 
    2532        { 
     33            AddCollisionHadler(pallo, KasittelePallonTormays); 
     34 
     35            PhysicsObject vasenreuna = Level.CreateLeftBorder(); 
     36            vasenreuna.Restitution = 1.0; 
     37            vasenreuna.IsVisible = false; 
     38 
     39            PhysicsObject oikeareuna = Level.CreateRightBorder(); 
     40            oikeareuna.Restitution = 1.0; 
     41            oikeareuna.IsVisible = false; 
     42 
     43            PhysicsObject alareuna = Level.CreateBottomBorder(); 
     44            alareuna.Restitution = 1.0; 
     45            alareuna.IsVisible = false; 
     46 
     47            PhysicsObject ylareuna = Level.CreateTopBorder(); 
     48            ylareuna.Restitution = 1.0; 
     49            ylareuna.IsVisible = false; 
     50 
    2651            pallo = new PhysicsObject(40.0, 40.0); 
    2752            pallo.Shape = Shapes.Circle; 
    2853            Add(pallo); 
    29             Level.CreateBorders(1.0, false); 
    3054            pallo.Restitution = 1.0; 
    3155            Level.BackgroundColor = Color.LightBlue; 
     
    4468        } 
    4569 
    46         PhysicsObject LuoMaila (Double x, double y) 
     70        PhysicsObject LuoMaila (double x, double y) 
    4771        { 
    4872        PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0); 
     
    5680        } 
    5781 
    58         void asetaohjaimet() 
     82        void AsetaOhjaimet() 
    5983        { 
    60             Keyboard.Listen(Key.A, ButtonState.Pressed, liikutamailaylös, "pelaaja 1: liikutaa mailaa ylös",maila1); 
    61             Keyboard.Listen(Key.A, ButtonState.Released, pysaytamaila, null, maila1); 
    62             Keyboard.Listen(Key.Z, ButtonState.Pressed, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1); 
    63             Keyboard.Listen(Key.Z, ButtonState.Released, PysaytaMaila, null, maila1); 
     84            Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "pelaaja 1: liikutaa mailaa ylös", maila1, nopeusylos); 
     85            Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     86            Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusalas); 
     87            Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    6488 
    65             Keyboard.Listen(Key.Up, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2); 
    66             Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaMaila, null, maila2); 
    67             Keyboard.Listen(Key.Down, ButtonState.Pressed, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2); 
    68             Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaMaila, null, maila2); 
     89            Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusylos); 
     90            Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     91            Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusalas); 
     92            Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    6993 
    7094            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     
    7296        } 
    7397 
    74         void liikutamailaylös( PhysicsObject maila ) 
     98        void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    7599        { 
    76             Vector nopeus = new Vector(0, 200); 
     100            if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     101            { 
     102                maila.Velocity = Vector.Zero; 
     103                return; 
     104            } 
     105            if  ( (nopeus.Y > 0) && (maila.Y > Level.top) ) 
     106            { 
     107                maila.Velocity = Vector.Zero; 
     108                return; 
     109            } 
     110 
    77111            maila.Velocity = nopeus; 
     112 
     113 
    78114        } 
    79115 
    80         void pysaytamaila(PhysicsObject maila) 
     116        void Lisaalaskurit() 
    81117        { 
    82             maila.Velocity = Vector.Zero; 
     118            pelaaja1pisteet = luopistelaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     119            pelaaja2pisteet = luopistelaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    83120        } 
    84121 
    85         void liikutamailaalas(PhysicsObject maila) 
     122        IntMeter luopistelaskuri(double x, double y) 
    86123        { 
    87             Vector nopeus = new Vector(0, -200); 
    88             maila.Velocity = nopeus; 
     124            IntMeter laskuri = new IntMeter(0); 
     125            laskuri.MaxValue = 10; 
     126            ValueDisplay naytto = new ValueDisplay( ); 
     127            naytto.BindTo(laskuri); 
     128            naytto.X = x; 
     129            naytto.Y = y; 
     130            naytto.ValueColor = Color.White; 
     131            Add(naytto); 
     132            return laskuri; 
    89133 
    90134        } 
    91        
     135        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     136        { 
     137            if (kohde == oikeapallo 
     138        } 
     139        if ( kohde == vasenreuna ) 
     140    { 
     141    //... 
     142    } 
     143 
     144 
    92145    } 
    93146} 
Note: See TracChangeset for help on using the changeset viewer.