Changeset 6520 for 2015


Ignore:
Timestamp:
2015-06-29 14:47:42 (8 years ago)
Author:
misakana
Message:
 
Location:
2015/27/SamuliS/Pong
Files:
7 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/27/SamuliS/Pong/Pong/Pong/Pong.cs

    r6490 r6520  
    1717    PhysicsObject maila2; 
    1818 
     19    PhysicsObject vasenReuna; 
     20    PhysicsObject oikeaReuna; 
     21 
     22    IntMeter pelaajan1Pisteet; 
     23    IntMeter pelaajan2Pisteet; 
     24 
    1925    public override void Begin() 
    2026    { 
     
    2228        AsetaOhjaimet(); 
    2329        AloitaPeli(); 
    24          
    25          
    26         
     30        LisaaLaskurit(); 
     31 
     32 
     33 
    2734    } 
    2835 
     
    3643        pallo.Restitution = 1.0; 
    3744 
     45        AddCollisionHandler(pallo, KasittelePallonTormays); 
     46 
    3847        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3948        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4049 
    41         Level.CreateBorders(1.0, false); 
     50        vasenReuna = Level.CreateLeftBorder(); 
     51        vasenReuna.Restitution = 1.0; 
     52        vasenReuna.IsVisible = false; 
     53 
     54        oikeaReuna = Level.CreateRightBorder(); 
     55        oikeaReuna.Restitution = 1.0; 
     56        oikeaReuna.IsVisible = false; 
     57 
     58        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     59        alaReuna.Restitution = 1.0; 
     60        alaReuna.IsVisible = false; 
     61 
     62        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     63        yläReuna.Restitution = 1.0; 
     64        yläReuna.IsVisible = false; 
     65 
     66 
    4267        Level.Background.Color = Color.Black; 
    4368 
     
    6691        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    6792        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    68         Keyboard.Listen(Key.Z, ButtonState 
     93        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     94        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     95 
     96        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: liikuta mailaa ylös", maila2, nopeusYlos); 
     97        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     98        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     99        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     100 
     101        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    69102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    70103    } 
     
    72105    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    73106    { 
     107        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     108        { 
     109            maila.Velocity = Vector.Zero; 
     110            return; 
     111        } 
     112        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     113        { 
     114            maila.Velocity = Vector.Zero; 
     115            return; 
     116        } 
     117 
    74118        maila.Velocity = nopeus; 
    75119    } 
    76120 
     121    void LisaaLaskurit() 
     122    { 
     123        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     124        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     125    } 
     126 
     127    IntMeter LuoPisteLaskuri(double x, double y) 
     128    { 
     129        IntMeter laskuri = new IntMeter(0); 
     130        laskuri.MaxValue = 20; 
     131 
     132        Label naytto = new Label(); 
     133        naytto.BindTo(laskuri); 
     134        naytto.X = x; 
     135        naytto.Y = y; 
     136        naytto.TextColor = Color.Green; 
     137        naytto.BorderColor = Level.Background.Color; 
     138        naytto.Color = Level.Background.Color; 
     139        Add(naytto); 
     140 
     141        return laskuri; 
     142    } 
     143 
     144    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     145    { 
     146        if (kohde == oikeaReuna) 
     147        { 
     148            pelaajan1Pisteet.Value += 1; 
     149        } 
     150        else if (kohde == vasenReuna) 
     151        { 
     152            pelaajan2Pisteet.Value += 1; 
     153        } 
     154    } 
    77155} 
Note: See TracChangeset for help on using the changeset viewer.