Changeset 7303


Ignore:
Timestamp:
2016-06-14 14:59:00 (3 years ago)
Author:
paerjuko
Message:
 
Location:
2016/24/PanuK
Files:
49 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/24/PanuK/Pong/Pong/Pong/Pong.cs

    r7268 r7303  
    1010{ 
    1111    PhysicsObject Pallo; 
     12 
     13    Vector nopeusYlos = new Vector(0, 200); 
     14    Vector nopeusAlas = new Vector(0, -200); 
     15 
     16    PhysicsObject maila1; 
     17    PhysicsObject maila2; 
     18 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
     21    private PhysicsObject vasenReuna; 
     22    private PhysicsObject oikeaReuna; 
     23 
     24    
     25 
    1226    public override void Begin() 
    1327    { 
    1428        LuoKentta(); 
     29        AsetaOhjaimet(); 
     30        LisaaLaskurit(); 
    1531        AloitaPeli(); 
     32    } 
     33    void AsetaOhjaimet() 
     34    { 
     35        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     36        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     37        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     38        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    1639 
     40        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     41        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     42        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     43        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     44 
     45        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    1746        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     47        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     48        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     49        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     50        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     51 
     52        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     53        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     54        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     55        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     56 
     57        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     58        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     59 
    1860    } 
     61 
     62    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     63    { 
     64        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     65        { 
     66            maila.Velocity = Vector.Zero; 
     67            return; 
     68        } 
     69        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     70        { 
     71            maila.Velocity = Vector.Zero; 
     72            return; 
     73        } 
     74        maila.Velocity = nopeus; 
     75    } 
     76 
    1977    void LuoKentta() 
    2078    { 
     
    2684        Add(Pallo); 
    2785 
    28         LuoMaila(Level.Left + 20.0, 0.0); 
    29         LuoMaila(Level.Right - 20.0, 0.0); 
     86        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     87        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3088 
    31         Level.CreateBorders(1.0, false); 
    3289        Level.Background.Color = Color.ForestGreen; 
     90        PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     91        vasenReuna.Restitution = 1.0; 
     92        vasenReuna.IsVisible = false; 
     93 
     94        PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
     95        oikeaReuna.Restitution = 1.0; 
     96        oikeaReuna.IsVisible = false; 
     97 
     98        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     99        ylaReuna.Restitution = 1.0; 
     100        ylaReuna.IsVisible = false; 
     101 
     102        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     103        alaReuna.Restitution = 1.0; 
     104        alaReuna.IsVisible = false; 
    33105 
    34106        Camera.ZoomToLevel(1.0); 
     107 
     108        AddCollisionHandler(Pallo, KasittelePallonTormays); 
     109 
     110 
    35111    } 
    36112 
     
    41117    } 
    42118 
    43     void LuoMaila(double x, double y) 
     119    PhysicsObject LuoMaila(double x, double y) 
    44120    { 
    45121        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    49125        maila.Restitution = 1.0; 
    50126        Add(maila); 
     127        return maila; 
     128    } 
     129    void LisaaLaskurit() 
     130    { 
     131        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     132        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     133    } 
     134 
     135    IntMeter LuoPisteLaskuri(double x, double y) 
     136    { 
     137        IntMeter laskuri = new IntMeter(0); 
     138        laskuri.MaxValue = 10; 
     139 
     140        Label naytto = new Label(); 
     141        naytto.BindTo(laskuri); 
     142        naytto.X = x; 
     143        naytto.Y = y; 
     144        naytto.TextColor = Color.White; 
     145        naytto.BorderColor = Level.Background.Color; 
     146        naytto.Color = Level.Background.Color; 
     147        Add(naytto); 
     148 
     149        return laskuri; 
     150    } 
     151 
     152    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     153    { 
     154        if (kohde == oikeaReuna) 
     155        { 
     156            pelaajan1Pisteet.Value += 1; 
     157        } 
     158        else if (kohde == vasenReuna) 
     159        { 
     160            pelaajan2Pisteet.Value += 1; 
     161        } 
    51162    } 
    52163} 
Note: See TracChangeset for help on using the changeset viewer.