Changeset 5955 for 2015/24


Ignore:
Timestamp:
2015-06-09 15:07:51 (8 years ago)
Author:
laaljoso
Message:
 
Location:
2015/24/AleksiS
Files:
53 added
8 edited

Legend:

Unmodified
Added
Removed
  • 2015/24/AleksiS/Pong/Pong/Pong/Pong.cs

    r5937 r5955  
    1010{ 
    1111    Vector nopeusYlos = new Vector(0, 200); 
    12     Vector nopeusAlas =new Vector(0, -200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
    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() 
     
    2530    } 
    2631 
    27     void LisaaLaskurit () 
     32    void LisaaLaskurit() 
    2833    { 
    29         // ... 
     34        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     35        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    3036    } 
    3137 
    32     IntMeter LuoPisteLaskuri () 
     38    IntMeter LuoPisteLaskuri(double x, double y) 
    3339    { 
    3440        IntMeter laskuri = new IntMeter(0); 
     
    3743        Label naytto = new Label(); 
    3844        naytto.BindTo(laskuri); 
    39         naytto.X = X; 
    40         naytto.Y = Y; 
     45        naytto.X = x; 
     46        naytto.Y = y; 
    4147        naytto.TextColor = Color.White; 
    4248        naytto.BorderColor = Level.Background.Color; 
     
    4652        return laskuri; 
    4753    } 
    48          
    49          
    50          
    51          
    52          
    53     } 
     54 
     55 
     56 
     57 
     58 
    5459 
    5560    void LuoKentta() 
     
    6065        pallo.Y = 0.0; 
    6166        pallo.Restitution = 1.0; 
     67        pallo.KineticFriction = 0.0; 
     68        pallo.MomentOfInertia = Double.PositiveInfinity; 
    6269        Add(pallo); 
     70        AddCollisionHandler(pallo, KasittelePallonTormays); 
    6371 
    6472        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    6573        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    66          
    6774 
    68          
    6975 
    70         Level.CreateBorders(1.0, false); 
     76 
     77 
     78        vasenReuna = Level.CreateLeftBorder(); 
     79        vasenReuna.Restitution = 1.0; 
     80        vasenReuna.IsVisible = false; 
     81        oikeaReuna = Level.CreateRightBorder(); 
     82        oikeaReuna.Restitution = 1.0; 
     83        oikeaReuna.IsVisible = false; 
     84        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     85        alaReuna.Restitution = 1.0; 
     86        alaReuna.IsVisible = false; 
     87        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     88        ylaReuna.Restitution = 1.0; 
     89        ylaReuna.IsVisible = false; 
    7190        Level.Background.Color = Color.Black; 
    7291        Camera.ZoomToLevel(); 
    7392    } 
    7493 
    75         PhysicsObject LuoMaila(double x, double y) 
     94    PhysicsObject LuoMaila(double x, double y) 
     95    { 
     96        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     97        maila.Shape = Shape.Rectangle; 
     98        maila.X = x; 
     99        maila.Y = y; 
     100        maila.Restitution = 1.0; 
     101        Add(maila); 
     102        return maila; 
     103    } 
     104 
     105 
     106    void AloitaPeli() 
     107    { 
     108        Vector impulssi = new Vector(500.0, 0.0); 
     109        pallo.Hit(impulssi); 
     110 
     111    } 
     112 
     113    void AsetaOhjaimet() 
     114    { 
     115        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     116        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     117        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     118        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     119 
     120        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     121        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     122        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja2: Likkuta mailaa alas", maila2, nopeusAlas); 
     123        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     124 
     125        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     126        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     127    } 
     128 
     129    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     130    { 
     131        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    76132        { 
    77            PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    78            maila.Shape = Shape.Rectangle; 
    79            maila.X = x; 
    80            maila.Y = y; 
    81            maila.Restitution = 1.0; 
    82            Add(maila); 
    83            return maila; 
    84         } 
    85      
    86          
    87         void AloitaPeli() 
    88         { 
    89            Vector impulssi = new Vector(500.0, 0.0); 
    90            pallo.Hit(impulssi); 
    91  
     133            maila.Velocity = Vector.Zero; 
     134            return; 
    92135        } 
    93136 
    94         void AsetaOhjaimet() 
     137        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    95138        { 
    96             Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    97             Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    98             Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
    99             Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    100  
    101             Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
    102             Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    103             Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja2: Likkuta mailaa alas", maila2, nopeusAlas); 
    104             Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    105  
    106             Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    107             Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     139            maila.Velocity = Vector.Zero; 
     140            return; 
    108141        } 
    109142 
    110         void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     143        maila.Velocity = nopeus; 
     144 
     145    } 
     146 
     147    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     148    { 
     149        if (kohde == oikeaReuna) 
    111150        { 
    112             if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    113             { 
    114                 maila.Velocity = Vector.Zero; 
    115                 return; 
    116             } 
    117  
    118             if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    119             { 
    120                 maila.Velocity = Vector.Zero; 
    121                 return; 
    122             } 
    123  
    124                 maila.Velocity = nopeus; 
    125  
     151            pelaajan1Pisteet.Value += 1; 
     152        } 
     153        else if (kohde == vasenReuna) 
     154        { 
     155            pelaajan2Pisteet.Value += 1; 
    126156        } 
    127157 
    128158    } 
     159 
     160} 
Note: See TracChangeset for help on using the changeset viewer.