Changeset 4207


Ignore:
Timestamp:
2013-06-25 11:23:55 (10 years ago)
Author:
olalleht
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/26/Olli-PekkaL/pong/pong/pong/pong.cs

    r4200 r4207  
    99public class pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
    1215 
    13     Vector nopeusAlas = new Vector(0, -200); 
    14     Vector nopeusYlos = new Vector(0, 200); 
     16    IntMeter pelaajan1pisteet; 
     17    IntMeter pelaajan2pisteet; 
    1518 
    1619    PhysicsObject maila1; 
    1720    PhysicsObject maila2; 
     21 
     22    PhysicsObject vasenReuna; 
     23    PhysicsObject oikeaReuna; 
    1824 
    1925    public override void Begin() 
     
    2228        AloitaPeli(); 
    2329        AsetaOhjaimet(); 
    24  
     30        LisaaLaskurit(); 
    2531 
    2632 
     
    4147        pallo.X = 0; 
    4248        pallo.Y = 200; 
    43         pallo.Restitution = 500.0; 
     49        pallo.Restitution = 800.0; 
    4450        Add(pallo); 
    4551 
    46        Maila1 (Level.Left + 20.0, 0.0); 
    47        Maila2 (Level.Right + 20.0, 0.0); 
     52        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     53        maila2 = LuoMaila(Level.Right + 20.0, 0.0); 
    4854 
    4955        Level.BackgroundColor = Color.Black; 
    50         Level.CreateBorders(1.0, false); 
     56         vasenReuna = Level.CreateLeftBorder(); 
     57        vasenReuna.Restitution = 1.0; 
     58        vasenReuna.IsVisible = false; 
     59        oikeaReuna = Level.CreateRightBorder(); 
     60        oikeaReuna.Restitution = 1.0; 
     61        oikeaReuna.IsVisible = false; 
     62 
     63        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     64        ylaReuna.Restitution = 1.0; 
     65        ylaReuna.IsVisible = false; 
     66        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     67        alaReuna.Restitution = 1.0; 
     68        alaReuna.IsVisible = false; 
     69 
     70 
     71 
     72 
     73 
     74        AddCollisionHandler(pallo, KasittelePallonTormays); 
    5175 
    5276        Camera.ZoomToLevel(); 
     
    5781        pallo.Hit(impulssi); 
    5882    } 
    59     void LuoMaila(double x, double y) 
     83    PhysicsObject LuoMaila(double x, double y) 
    6084    { 
    6185        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    6993    void AsetaOhjaimet() 
    7094    { 
    71       Keyboard.Listen  (Key.A, ButtonState.Down, LiikutaMaila1Ylos, "Pelaaja 1: Liikuta Mailaa Ylös"); 
    72       Keyboard.Listen (Key.A, ButtonState.Released, PysaytaMaila1, null); 
    73        
    74       Keyboard.Listen (Key.Escape, ButtonState.Pressed,ConfirmExit, "Lopeta Peli"); 
     95        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta Mailaa Ylös", maila1, nopeusYlos); 
     96        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     97        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     98        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     99 
     100        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     101        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     102        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     103        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     104 
     105        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     106        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta Peli"); 
    75107    } 
    76     void AsetaNopeus (PhysicsObject maila,Vector nopeus) 
     108    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    77109    { 
     110        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     111        { 
     112            maila.Velocity = Vector.Zero; 
     113            return; 
     114        } 
     115        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     116        { 
    78117 
    79         maila.Velocity = nopeus;    
     118            maila.Velocity = Vector.Zero; 
     119            return; 
     120        } 
     121 
     122        maila.Velocity = nopeus; 
     123 
     124    } 
     125    void LisaaLaskurit() 
     126    { 
     127        pelaajan1pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     128        pelaajan2pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     129    } 
     130    IntMeter LuoPisteLaskuri(double x, double y) 
     131    { 
     132        IntMeter laskuri = new IntMeter(0); 
     133        laskuri.MaxValue = 10; 
     134 
     135        Label naytto = new Label(); 
     136        naytto.BindTo(laskuri); 
     137        naytto.X = x; 
     138        naytto.Y = y; 
     139        naytto.TextColor = Color.White; 
     140        naytto.BorderColor = Level.BackgroundColor; 
     141        naytto.Color = Level.BackgroundColor; 
     142        Add(naytto); 
     143 
     144        return laskuri; 
     145 
    80146    } 
    81147 
     148    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     149    { 
     150        if (kohde == oikeaReuna) 
     151        { 
     152            pelaajan1pisteet.Value += 1; 
     153        } 
    82154 
     155        else if (kohde == vasenReuna) 
     156        { 
     157            pelaajan2pisteet.Value += 1; 
    83158 
     159        } 
     160    } 
    84161} 
     162    
Note: See TracChangeset for help on using the changeset viewer.