Changeset 3480


Ignore:
Timestamp:
2012-07-03 14:15:10 (8 years ago)
Author:
Lenatri
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/27/LeeviN/pong/pong/pong/pong.cs

    r3455 r3480  
    88 
    99public class pong : PhysicsGame 
    10 { Vector nopeusYlos = new Vector(0, 200); 
    11     Vector nopeusAlas = new Vector(0, -200); 
     10{ 
     11    Vector nopeusYlos = new Vector(0, 500); 
     12    Vector nopeusAlas = new Vector(0, -500); 
    1213 
    1314    PhysicsObject pallo; 
    14      PhysicsObject maila1; 
     15    PhysicsObject maila1; 
    1516    PhysicsObject maila2; 
    16   
     17    PhysicsObject vasenReuna; 
     18    PhysicsObject oikeaReuna; 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
     21 
    1722 
    1823    public override void Begin() 
     
    2126        AsetaOhjaimet(); 
    2227        Aloitapeli(); 
    23          
    24          
    25  
    26          
    27  
    28  
    29  
    30  
    31  
    32  
    33  
    34  
    35  
    36         // TODO: Kirjoita ohjelmakoodisi tähän 
    37  
    38          
    39          
     28        LisaaLaskurit(); 
    4029    } 
    4130    void LuoKentta() 
     
    4736        pallo.Restitution = 1.0; 
    4837        Add(pallo); 
    49         Level.CreateBorders(1.0, false); 
     38         vasenReuna = Level.CreateLeftBorder(); 
     39        vasenReuna.Restitution = 1.0; 
     40        vasenReuna.IsVisible = false; 
     41         oikeaReuna = Level.CreateRightBorder(); 
     42        oikeaReuna.Restitution = 1.0; 
     43        oikeaReuna.IsVisible = false; 
    5044        Level.BackgroundColor = Color.Green; 
     45        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     46        ylaReuna.Restitution = 1.0; 
     47        ylaReuna.KineticFriction = 0.0; 
     48        ylaReuna.IsVisible = false; 
    5149 
    52          
    53         LuoMaila(Level.Left + 20.0, 0.0); 
    54         LuoMaila(Level.Right - 20.0, 0.0); 
    55          
     50        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     51        alaReuna.Restitution = 1.0; 
     52        alaReuna.IsVisible = false; 
     53        alaReuna.KineticFriction = 0.0; 
     54 
     55 
     56 
     57        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     58        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     59        AddCollisionHandler(pallo, KasittelePallonTormays); 
    5660 
    5761 
     
    6468        pallo.Hit(impulssi); 
    6569    } 
    66         void LuoMaila(double x, double y) 
    67         { 
     70    PhysicsObject LuoMaila(double x, double y) 
     71    { 
    6872        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    6973        maila.Shape = Shape.Rectangle; 
     
    7175        maila.Y = y; 
    7276        maila.Restitution = 1.0; 
    73         Add(maila); 
     77        Add(maila); return maila; 
    7478    } 
    75        void AsetaOhjaimet() 
     79    void AsetaOhjaimet() 
     80    { 
     81        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     82        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     83        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     84        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     85        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     86        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     87        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     88        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     89 
     90        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     91        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     92        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     93        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     94        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     95 
     96        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     97        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     98        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     99        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     100 
     101        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     102        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     103 
     104 
     105 
     106 
     107        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     108    } 
     109    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     110    { 
     111        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    76112        { 
    77             Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMaila1Ylos, "Pelaaja 1: Liikuta mailaa ylös"); 
    78             Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila1, null); 
     113            maila.Velocity = Vector.Zero; 
     114            return; 
     115        } if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     116        { 
     117            maila.Velocity = Vector.Zero; 
     118            return; 
     119        } 
    79120 
    80 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    81        } 
    82        void Asetanopeus(PhysicsObject maila, Vector nopeus) 
    83         { 
    84             maila.Velocity = nopeus; 
    85         } 
     121        maila.Velocity = nopeus; 
     122    } 
     123    void LisaaLaskurit() 
     124    { 
     125        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     126        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     127 
     128        // ... 
     129    } 
     130    IntMeter LuoPisteLaskuri(double x, double y) 
     131    { 
     132        IntMeter laskuri = new IntMeter(0); 
     133        laskuri.MaxValue = 10; 
     134        Label naytto = new Label(); 
     135        naytto.BindTo(laskuri); 
     136        naytto.X = x; 
     137        naytto.Y = y; 
     138        naytto.TextColor = Color.White; 
     139        naytto.BorderColor = Level.BackgroundColor; 
     140        naytto.Color = Level.BackgroundColor; 
     141        Add(naytto); 
     142 
     143        return laskuri; 
     144 
     145    } 
     146    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     147    { if (kohde == oikeaReuna) 
     148    { 
     149        pelaajan1Pisteet.Value += 1; 
     150    } 
     151    else if (kohde == vasenReuna) 
     152    { 
     153        pelaajan2Pisteet.Value += 1; 
     154    } 
     155 
     156    } 
    86157} 
Note: See TracChangeset for help on using the changeset viewer.