Changeset 4336 for 2013


Ignore:
Timestamp:
2013-07-01 14:42:29 (10 years ago)
Author:
juronnbe
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/27/JuhanaR/pong/pong/pong/pong.cs

    r4332 r4336  
    99public class pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
     15    PhysicsObject maila1; 
     16    PhysicsObject maila2; 
     17    PhysicsObject vasenReuna; 
     18    PhysicsObject oikeaReuna; 
     19 
     20    IntMeter pelaajan1Pisteet; 
     21    IntMeter pelaajan2Pisteet; 
    1222 
    1323    public override void Begin() 
    1424    { 
    1525        LuoKentta(); 
     26        AsetaOhjaimet(); 
     27        LisaaLaskurit(); 
    1628        AloitaPeli(); 
    1729         
    18         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    1930    } 
     31 
     32    void LisaaLaskurit() 
     33{ 
     34    pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     35    pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     36} 
     37    IntMeter LuoPisteLaskuri(double x, double y) 
     38    { 
     39        IntMeter laskuri = new IntMeter(0); 
     40        laskuri.MaxValue = 10; 
     41 
     42        Label naytto = new Label(); 
     43        naytto.BindTo(laskuri); 
     44        naytto.X = x; 
     45        naytto.Y = y; 
     46        naytto.TextColor = Color.White; 
     47        naytto.BorderColor = Level.BackgroundColor; 
     48        naytto.Color = Level.BackgroundColor; 
     49        Add(naytto); 
     50 
     51        return laskuri; 
     52    } 
     53 
    2054    void AsetaOhjaimet() 
    2155    { 
     56 
     57        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     58        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     59        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     60        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     61 
     62        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     63        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     64        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     65        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     66 
     67        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    2268        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     69         
     70         ControllerOne.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos ); 
     71         ControllerOne.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     72         ControllerOne.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas ); 
     73         ControllerOne.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     74 
     75         ControllerTwo.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos ); 
     76         ControllerTwo.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     77         ControllerTwo.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas ); 
     78         ControllerTwo.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     79 
     80         ControllerOne.Listen( Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli" ); 
     81         ControllerTwo.Listen( Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli" ); 
     82     
    2383    } 
    24  
     84    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     85    { 
     86        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     87        { 
     88            maila.Velocity = Vector.Zero; 
     89            return; 
     90        } 
     91        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     92         
     93        { 
     94            maila.Velocity = Vector.Zero; 
     95            return; 
     96        } 
     97        maila.Velocity = nopeus; 
     98    } 
    2599    void LuoKentta() 
    26100    { 
     
    32106        Add(pallo); 
    33107 
    34         LuoMaila(Level.Left + 20.0, 0.0); 
    35         LuoMaila(Level.Right - 20.0, 0.0); 
     108        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     109        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    36110 
    37         Level.CreateBorders(1.0, false); 
     111        vasenReuna = Level.CreateLeftBorder(); 
     112        vasenReuna.Restitution = 1.0; 
     113        vasenReuna.IsVisible = false; 
     114        oikeaReuna = Level.CreateRightBorder(); 
     115        oikeaReuna.Restitution = 1.0; 
     116        oikeaReuna.IsVisible = false; 
     117        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     118        alaReuna.Restitution = 1.0; 
     119        alaReuna.IsVisible = false; 
     120        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     121        ylaReuna.Restitution = 1.0; 
     122        ylaReuna.IsVisible = false; 
    38123        Level.BackgroundColor = Color.Black; 
    39124 
    40125        Camera.ZoomToLevel(); 
     126         
     127        AddCollisionHandler(pallo, KasittelePallonTormays);     
     128     
    41129    } 
    42     void LuoMaila(double x, double y) 
     130    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     131    { 
     132        if (kohde == oikeaReuna) 
     133        { 
     134            pelaajan1Pisteet.Value += 1; 
     135        } 
     136        else if (kohde == vasenReuna) 
     137        { 
     138            pelaajan2Pisteet.Value += 1; 
     139        } 
     140    } 
     141 
     142    PhysicsObject LuoMaila(double x, double y) 
    43143    { 
    44144     PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    47147        maila.Y = y; 
    48148        maila.Restitution = 1.0; 
    49         Add(maila);   
     149        Add(maila); 
     150        return maila; 
    50151    } 
    51152 
Note: See TracChangeset for help on using the changeset viewer.