Changeset 3109 for 2012/24


Ignore:
Timestamp:
2012-06-15 12:13:28 (7 years ago)
Author:
lasaarel
Message:

Talletus.

Location:
2012/24/LauriS
Files:
55 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/LauriS/PongPong/PongPong/PongPong/PongPong.cs

    r2913 r3109  
    99public class PongPong : PhysicsGame 
    1010{ 
    11     Vector nopeusYlos = new Vector(0, 200); 
    12     Vector nopeusAlas = new Vector(0, -200); 
     11    Vector nopeusYlos = new Vector(0, 400); 
     12    Vector nopeusAlas = new Vector(0, -400); 
    1313 
    1414    PhysicsObject pallo; 
     
    1616    PhysicsObject maila2; 
    1717 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
     23 
     24 
    1825    public override void Begin() 
    1926    { 
    20         // TODO: Kirjoita ohjelmakoodisi tähän 
     27 
    2128        LuoKentta(); 
    2229        AsetaOhjaimet(); 
     30        LisaaLaskurit(); 
    2331        AloitaPeli(); 
    2432 
     
    2836    void LuoKentta() 
    2937    { 
     38         
     39 
     40 
    3041 
    3142        pallo = new PhysicsObject(40.0, 40.0); 
     
    3849        Add(pallo); 
    3950 
    40         maila1=LuoMaila(Level.Left + 20.0, 0.0); 
    41         maila2=LuoMaila(Level.Right - 20.0, 0.0); 
     51        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     52        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     53        AddCollisionHandler(pallo, KasittelePallonTormays); 
    4254 
    4355 
    44         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        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     63        ylaReuna.Restitution = 1.0; 
     64        ylaReuna.IsVisible = false; 
     65        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     66        alaReuna.Restitution = 1.0; 
     67        alaReuna.IsVisible = false; 
     68 
     69 
    4570        Level.BackgroundColor = Color.Green; 
    4671        Camera.ZoomToLevel(); 
    4772    } 
    4873 
    49     void AloitaPeli() 
    50     { 
    51         Vector impulssi = new Vector(500.0, 0.0); 
    52         pallo.Hit(impulssi); 
    53     } 
     74 
     75 
     76 
     77 
     78 
     79 
     80 
    5481 
    5582    PhysicsObject LuoMaila(double x, double y) 
     
    6491    } 
    6592 
     93    void LisaaLaskurit() 
     94    { 
     95        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     96        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    6697 
     98    } 
     99    IntMeter LuoPisteLaskuri(double x, double y) 
     100    { 
     101        IntMeter laskuri = new IntMeter(0); 
     102        laskuri.MaxValue = 10; 
     103        Label naytto = new Label(); 
     104        naytto.BindTo(laskuri); 
     105        naytto.X = x; 
     106        naytto.Y = y; 
     107        naytto.TextColor = Color.Black; 
     108        naytto.BorderColor = Level.BackgroundColor; 
     109        naytto.Color = Level.BackgroundColor; 
     110        Add(naytto); 
     111        return laskuri; 
     112    } 
     113 
     114 
     115 
     116    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     117    { 
     118        if (kohde == oikeaReuna) 
     119        { 
     120            pelaajan1Pisteet.Value += 1; 
     121        } 
     122        else if (kohde == vasenReuna) 
     123        { 
     124            pelaajan2Pisteet.Value += 1; 
     125 
     126        } 
     127 
     128    } 
     129 
     130 
     131    void AloitaPeli() 
     132    { 
     133        Vector impulssi = new Vector(700.0, 0.0); 
     134        pallo.Hit(impulssi); 
     135    } 
    67136 
    68137    void AsetaOhjaimet() 
     
    78147        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    79148 
     149        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     150        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    80151 
    81         Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     152        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     153        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     154        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     155        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    82156 
     157        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     158        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     159        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     160        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    83161 
    84         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    85         
    86  
    87     } 
    88  
    89     void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    90     { 
    91         maila.Velocity = nopeus; 
     162        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     163        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    92164    } 
    93165 
    94166 
    95167 
     168 
     169 
     170 
     171    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     172    { 
     173        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     174        { 
     175            maila.Velocity = Vector.Zero; 
     176            return; 
     177        } 
     178 
     179        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     180        { 
     181            maila.Velocity = Vector.Zero; 
     182            return; 
     183        } 
     184        maila.Velocity = nopeus; 
     185 
     186    } 
     187 
     188 
    96189} 
    97190 
     191 
     192 
Note: See TracChangeset for help on using the changeset viewer.