Changeset 5579 for 2014/30/EevaS


Ignore:
Timestamp:
2014-07-23 12:36:58 (5 years ago)
Author:
eemalisa
Message:
 
Location:
2014/30/EevaS
Files:
44 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2014/30/EevaS/Pong/Pong/Pong/Pong.cs

    r5506 r5579  
    1313     
    1414    PhysicsObject pallo; 
    15  
    1615    PhysicsObject maila1; 
    1716    PhysicsObject maila2; 
     17 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20     
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
    1823 
    1924    public override void Begin() 
     
    2126        LuoKentta(); 
    2227        AsetaOhjaimet(); 
     28        LisaaLaskurit(); 
    2329        AloitaPeli(); 
    2430    } 
     
    3440        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3541         
    36         Level.CreateBorders(1.0, false); 
     42        vasenReuna = Level.CreateLeftBorder(); 
     43        vasenReuna.Restitution = 1.0; 
     44        vasenReuna.IsVisible = false; 
     45 
     46        oikeaReuna = Level.CreateRightBorder(); 
     47        oikeaReuna.Restitution = 1.0; 
     48        oikeaReuna.IsVisible = false; 
     49 
     50        PhysicsObject alareuna = Level.CreateBottomBorder(); 
     51        alareuna.Restitution = 1.0; 
     52        alareuna.IsVisible = false; 
     53 
     54        PhysicsObject ylareuna = Level.CreateTopBorder(); 
     55        ylareuna.Restitution = 1.0; 
     56        ylareuna.IsVisible = false; 
     57 
    3758        Level.Background.Color = Color.Black; 
    3859         
    3960        Camera.ZoomToLevel(); 
     61 
     62        AddCollisionHandler(pallo, KasittelePallonTormays); 
    4063    } 
    4164 
     
    7194        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    7295        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     96 
     97        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     98        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     99        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     100        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     101 
     102        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     103        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     104        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     105        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     106 
     107        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     108        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    73109    } 
    74110 
    75111    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    76112    { 
    77         if (maila.Top > Level.Top) 
     113        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     114        { 
     115            maila.Velocity = Vector.Zero; 
     116            return; 
     117        } 
     118         
     119        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    78120        { 
    79121            maila.Velocity = Vector.Zero; 
     
    84126    } 
    85127 
     128    void LisaaLaskurit() 
     129    { 
     130        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     131        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     132    } 
    86133 
     134    IntMeter LuoPisteLaskuri(double x, double y) 
     135    { 
     136        IntMeter laskuri = new IntMeter(0); 
     137        laskuri.MaxValue = 10; 
     138        Label naytto = new Label(); 
     139        naytto.BindTo(laskuri); 
     140        naytto.X = x; 
     141        naytto.Y = y; 
     142        naytto.TextColor = Color.White; 
     143        naytto.BorderColor = Level.Background.Color; 
     144        Add(naytto); 
     145         
     146        return laskuri; 
     147    } 
    87148 
     149    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     150    { 
     151        if (kohde == oikeaReuna) 
     152        { 
     153            pelaajan1Pisteet.Value += 1; 
     154        } 
     155        else if (kohde == vasenReuna) 
     156        { 
     157            pelaajan2Pisteet.Value += 1; 
     158        } 
     159    } 
    88160 
    89161} 
Note: See TracChangeset for help on using the changeset viewer.