Ignore:
Timestamp:
2013-07-23 14:57:58 (10 years ago)
Author:
novaanan
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/NoelV/pong/pong/pong/pong.cs

    r4527 r4582  
    99public class pong : PhysicsGame 
    1010{ 
    11     
    1211 
    13     Vector nopeusYlos = new Vector(0, 200); 
    14     Vector nopeusAlas = new Vector(0, -200); 
     12 
     13    Vector nopeusYlos = new Vector(0, 500); 
     14    Vector nopeusAlas = new Vector(0, -500); 
    1515 
    1616    PhysicsObject pallo; 
     17 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
    1721    PhysicsObject maila1; 
    1822    PhysicsObject maila2; 
     23 
     24    IntMeter pelaajan1Pisteet; 
     25    IntMeter pelaajan2Pisteet; 
    1926 
    2027    public override void Begin() 
     
    2229        LuoKentta(); 
    2330        AsetaOhjaimet(); 
     31        LisaaLaskurit(); 
    2432        AloitaPeli(); 
    2533 
    26          
     34 
    2735 
    2836    } 
     
    3846        pallo.Y = 0.0; 
    3947 
     48        vasenReuna = Level.CreateLeftBorder(); 
     49        vasenReuna.Restitution = 1.1; 
     50        vasenReuna.IsVisible = false; 
    4051 
    41         Level.CreateBorders(1.0, false); 
    42         pallo.Restitution = 1.0; 
     52        oikeaReuna = Level.CreateRightBorder(); 
     53        oikeaReuna.Restitution = 1.1; 
     54        oikeaReuna.IsVisible = false; 
     55 
     56        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     57        ylaReuna.Restitution = 1.1; 
     58        ylaReuna.IsVisible = false; 
     59 
     60        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     61        alaReuna.Restitution = 1.1; 
     62        alaReuna.IsVisible = false; 
     63 
     64        pallo.Restitution = 1.1; 
    4365        Level.BackgroundColor = Color.Black; 
    4466        pallo.Color = Color.Red; 
    4567 
    46         maila1 = LuoMaila(Level.Left +20.0, 0.0); 
    47         maila2 = LuoMaila(Level.Right -20.0, 0.0); 
     68 
     69 
     70        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     71        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4872 
    4973 
    5074        Camera.ZoomToLevel(); 
     75 
     76        AddCollisionHandler(pallo, KasittelePallonTormays); 
    5177 
    5278    } 
     
    76102        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: liikuta mailaa ylös", maila1, nopeusYlos); 
    77103        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     104        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     105        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    78106 
     107        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: liikuta mailaa ylös", maila2, nopeusYlos); 
     108        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     109        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: liikuta mailaa alas", maila2, nopeusAlas); 
     110        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     111 
     112 
     113        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    79114        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     115 
     116        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     117        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     118        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     119        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     120 
     121        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     122        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     123        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     124        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     125 
     126        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     127        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    80128 
    81129    } 
    82130    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    83131    { 
     132        if ((nopeus.Y > 0) && maila.Top > Level.Top) 
     133        { 
     134            maila.Velocity = Vector.Zero; 
     135            return; 
     136        } 
     137        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     138        { 
     139            maila.Velocity = Vector.Zero; 
     140            return; 
     141        } 
    84142        maila.Velocity = nopeus; 
    85143    } 
     144    void LisaaLaskurit() 
     145    { 
     146        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     147        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    86148 
     149    } 
     150    IntMeter LuoPisteLaskuri(double x, double y) 
     151    { 
     152 
     153        IntMeter laskuri = new IntMeter(0); 
     154        laskuri.MaxValue = 10; 
     155 
     156        Label naytto = new Label(); 
     157        naytto.BindTo(laskuri); 
     158        naytto.X = x; 
     159        naytto.Y = y; 
     160        naytto.TextColor = Color.White; 
     161        naytto.BorderColor = Level.BackgroundColor; 
     162        naytto.Color = Level.BackgroundColor; 
     163        Add(naytto); 
     164 
     165        return laskuri; 
     166    } 
     167 
     168 
     169    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     170    { 
     171        if (kohde == oikeaReuna) 
     172        { 
     173            pelaajan1Pisteet.Value += 1; 
     174        } 
     175        else if (kohde == vasenReuna) 
     176        { 
     177            pelaajan2Pisteet.Value += 1; 
     178        } 
     179    } 
    87180} 
Note: See TracChangeset for help on using the changeset viewer.