Changeset 1108 for 2010/27


Ignore:
Timestamp:
2010-07-06 14:58:59 (9 years ago)
Author:
jomiilri
Message:

Minun virallinen peli.

Location:
2010/27/jomiilri
Files:
24 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/jomiilri/Pong/Peli.cs

    r1076 r1108  
    1414    PhysicsObject maila2; 
    1515 
     16    PhysicsObject vasenReuna; 
     17    PhysicsObject oikeaReuna; 
     18 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
     21 
    1622    protected override void Begin() 
    1723    { 
     
    1925        LuoKentta(); 
    2026        AsetaOhjaimet(); 
     27        LisaaLaskurit(); 
    2128        AloitaPeli(); 
    2229 
     
    3138        pallo.Y = 0.0; 
    3239        pallo.Restitution = 1.0; 
     40        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3341 
    3442        maila = LuoMaila(Level.Left + 20.0, 0.0); 
    3543        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3644 
    37         Level.CreateBorders(1.0, false); 
     45        vasenReuna = Level.CreateLeftBorder(); 
     46        vasenReuna.Restitution = 1.0; 
     47        vasenReuna.IsVisible = false; 
     48        oikeaReuna = Level.CreateRightBorder(); 
     49        oikeaReuna.Restitution = 1.0; 
     50        oikeaReuna.IsVisible = false; 
     51        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     52        alaReuna.Restitution = 1.0; 
     53        alaReuna.IsVisible = false; 
     54        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     55        yläReuna.Restitution = 1.0; 
     56        yläReuna.IsVisible = false; 
     57 
    3858        Level.BackgroundColor = Color.Black; 
    3959 
     
    6181    void AsetaOhjaimet() 
    6282    { 
    63         Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila, nopeusYlos); 
    64         Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila); 
    65         Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila, nopeusAlas); 
    66         Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila); 
     83        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila, nopeusYlos); 
     84        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 
     85        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila, nopeusAlas); 
     86        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero); 
    6787 
    68         Keyboard.Listen(Key.Up, ButtonState.Down, Asetanopeus, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
    69         Keyboard.Listen(Key.Up, ButtonState.Released, Asetanopeus, PysaytaMaila, null, maila2); 
    70         Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
    71         Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, PysaytaMaila, null, maila2); 
     88        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     89        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     90        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     91        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    7292 
    7393        Keyboard.Listen(Key.F1, ButtonState.Down, ShowControlHelp, "Näytä ohjeet"); 
     
    7595    } 
    7696 
    77     void LiikutaMailaaYlos(PhysicsObject maila) 
     97    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    7898    { 
    79         if (maila.Y >= Level.Top) 
     99        if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
    80100        { 
    81101            maila.Velocity = Vector.Zero; 
    82102            return; 
    83103        } 
    84         Vector nopeus = new Vector(0, 200); 
    85         maila.Velocity = nopeus; 
    86     } 
    87     void PysaytaMaila (PhysicsObject maila) 
    88     { 
    89  
    90     } 
    91  
    92     void LiikutaMailaaAlas(PhysicsObject maila) 
    93     { 
    94         Vector nopeus = new Vector(0, -200); 
    95         maila.Velocity = nopeus; 
    96     } 
    97  
    98     void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    99     {  
    100         if( (nopeus.Y < 0) && (maila.Y < Level.Bottom) ) 
     104        if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
    101105        { 
    102106            maila.Velocity = Vector.Zero; 
    103107            return; 
    104108        } 
     109 
     110        maila.Velocity = nopeus; 
     111    } 
     112 
     113    void LisaaLaskurit() 
     114    { 
     115        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     116        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     117    } 
     118 
     119    IntMeter LuoPisteLaskuri(double x, double y) 
     120    { 
     121        IntMeter laskuri = new IntMeter(0); 
     122        laskuri.MaxValue = 10; 
     123        Label naytto = new Label(); 
     124        naytto.BindTo(laskuri); 
     125        naytto.X = x; 
     126        naytto.Y = y; 
     127        naytto.TextColor = Color.White; 
     128        Add(naytto); 
     129        return laskuri; 
     130    } 
     131 
     132    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     133    { 
     134        if (kohde == oikeaReuna) 
     135        { 
     136            pelaajan1Pisteet.Value += 1; 
     137        } 
     138        else if (kohde == vasenReuna) 
     139        { 
     140            pelaajan2Pisteet.Value += 1; 
     141        } 
     142    } 
    105143} 
Note: See TracChangeset for help on using the changeset viewer.