Changeset 2502 for 2011


Ignore:
Timestamp:
2011-08-02 14:58:01 (8 years ago)
Author:
tolinnav
Message:

Talletus.

Location:
2011/31/TommiL
Files:
40 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2011/31/TommiL/pong/pong/pong/Peli.cs

    r2481 r2502  
    1313 
    1414    PhysicsObject pallo; 
    15  
    1615    PhysicsObject maila1; 
    1716    PhysicsObject maila2; 
    1817 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
    1923 
    2024    public override void Begin() 
     
    2226        luodakentta(); 
    2327        AsetaOhjaimet(); 
     28        LisaaLaskurit(); 
    2429        AloitaPeli(); 
    2530 
     
    2934    void luodakentta() 
    3035    { 
    31          pallo = new PhysicsObject(40.0, 40.0); 
     36        pallo = new PhysicsObject(40.0, 40.0); 
    3237        pallo.Shape = Shape.Circle; 
    3338        Add(pallo); 
    3439        pallo.Restitution = 1.0; 
     40         
    3541 
    36        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    37        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     42        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     43        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     44 
     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 ylaReuna = Level.CreateTopBorder(); 
     52        ylaReuna.Restitution = 1.0; 
     53        ylaReuna.IsVisible = false; 
     54        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     55        alaReuna.Restitution = 1.0; 
     56        alaReuna.IsVisible = false; 
    3857 
    3958 
    40         Level.CreateBorders(1.0, false); 
     59 
    4160        Level.BackgroundColor = Color.Black; 
    4261 
    4362        Camera.ZoomToLevel(); 
     63        MessageDisplay.TextColor = Color.White; 
    4464    } 
    4565    void AloitaPeli() 
     
    4767        Vector impulssi = new Vector(500.0, 0.0); 
    4868        pallo.Hit(impulssi); 
     69        AddCollisionHandler(pallo, KasittelePallonTormays); 
    4970 
    5071    } 
     
    6586    void AsetaOhjaimet() 
    6687    { 
    67         Keyboard.Listen(Key.A, ButtonState.Down, liikutamailaaylos, "Pelaaja 1: Liikuta mailaa ylös"); 
    68         Keyboard.Listen(Key.A, ButtonState.Released, pysautamaila, null); 
     88        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     89        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     90        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     91        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    6992 
     93        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     94        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     95        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     96        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     97 
     98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    7099        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     100 
     101    } 
     102    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     103    { 
     104        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     105        { 
     106            maila.Velocity = Vector.Zero; 
     107            return; 
     108        } 
     109        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     110        { 
     111            maila.Velocity = Vector.Zero; 
     112            return; 
     113        } 
     114 
     115        maila.Velocity = nopeus; 
     116    } 
     117    void LisaaLaskurit() 
     118    { 
     119        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     120        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    71121    } 
    72122 
    73     void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     123    IntMeter LuoPisteLaskuri(double x, double y) 
    74124    { 
    75         maila.Velocity = nopeus; 
     125        IntMeter laskuri = new IntMeter(0); 
     126        laskuri.MaxValue = 10; 
     127        Label naytto = new Label(); 
     128        naytto.BindTo(laskuri); 
     129        naytto.X = x; 
     130        naytto.Y = y; 
     131        naytto.TextColor = Color.White; 
     132        naytto.BorderColor = Level.BackgroundColor; 
     133        naytto.Color = Level.BackgroundColor; 
     134        Add(naytto); 
     135        return laskuri; 
    76136    } 
    77137 
    78 }  
     138 
     139    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     140    { 
     141        if (kohde == oikeaReuna) 
     142        { 
     143            pelaajan1Pisteet.Value += 1; 
     144        } 
     145        else if (kohde == vasenReuna) 
     146        { 
     147            pelaajan2Pisteet.Value += 1; 
     148        } 
     149 
     150    } 
     151} 
     152 
     153 
     154     
     155  
Note: See TracChangeset for help on using the changeset viewer.