Changeset 2942


Ignore:
Timestamp:
2012-06-12 12:31:00 (11 years ago)
Author:
nieekrva
Message:

Talletus.

Location:
2012/24/NikiV/pong
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/NikiV/pong/pong/pong/pong.cs

    r2925 r2942  
    1919    PhysicsObject maila2; 
    2020 
     21    PhysicsObject vasenReuna; 
     22    PhysicsObject oikeaReuna; 
     23 
     24    IntMeter pelaajan1Pisteet; 
     25    IntMeter pelaajan2Pisteet; 
     26 
    2127    public override void Begin() 
    2228    { 
     
    2531        LuoKentta(); 
    2632        AsetaOhjaimet(); 
     33        LisaaLaskurit(); 
    2734        AloitaPeli(); 
    2835 
     
    4451        pallo = new PhysicsObject(40, 40); 
    4552        pallo.Shape = Shape.Circle; 
     53        pallo.Color = Color.Blue; 
    4654        pallo.X = -200.0; 
    4755        pallo.Y = 0.0; 
    4856        pallo.Restitution = 1.0; 
     57        pallo.MomentOfInertia = Double.PositiveInfinity; 
    4958        Add(pallo); 
    5059 
    5160        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    52         maila1 = LuoMaila(Level.Right - 20.0, 0.0); 
    53  
    54         Level.CreateBorders(1.0, false); 
     61        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     62        maila1.Color = Color.Green; 
     63        maila2.Color = Color.Green; 
     64 
     65 
     66        vasenReuna = Level.CreateLeftBorder(); 
     67        vasenReuna.Restitution = 1.0; 
     68        vasenReuna.IsVisible = false; 
     69 
     70        oikeaReuna = Level.CreateRightBorder(); 
     71        oikeaReuna.Restitution = 1.0; 
     72        oikeaReuna.IsVisible = false; 
     73 
     74        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     75        alaReuna.Restitution = 1.0; 
     76        alaReuna.IsVisible = false; 
     77 
     78        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     79        ylaReuna.Restitution = 1.0; 
     80        ylaReuna.IsVisible = false; 
     81 
    5582        Level.BackgroundColor = Color.Black; 
    5683 
    5784        Camera.ZoomToLevel(); 
     85        AddCollisionHandler(pallo, KasittelePallonTormays); 
     86        alaReuna.KineticFriction = 0.0; 
     87        vasenReuna.KineticFriction = 0.0; 
     88        oikeaReuna.KineticFriction = 0.0; 
     89        ylaReuna.KineticFriction = 0.0; 
     90 
    5891    } 
    5992 
     
    79112        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    80113        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     114        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     115        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     116 
     117        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     118        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     119        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     120        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     121 
     122        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     123        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     124        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     125        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     126 
     127        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     128        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     129        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     130        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     131 
     132        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     133        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     134 
     135        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    81136        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    82137    } 
    83138    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    84139    { 
     140        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     141        { 
     142            maila.Velocity = Vector.Zero; 
     143            return; 
     144        } 
     145        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     146        { 
     147            maila.Velocity = Vector.Zero; 
     148            return; 
     149        } 
     150 
    85151        maila.Velocity = nopeus; 
    86     } 
     152 
     153 
     154 
     155    } 
     156    void LisaaLaskurit() 
     157    { 
     158        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     159        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     160 
     161    } 
     162    IntMeter LuoPisteLaskuri(double x, double y) 
     163    { 
     164        IntMeter laskuri = new IntMeter(0); 
     165        laskuri.MaxValue = 10; 
     166        laskuri.UpperLimit += laskuriYlarajassa; 
     167        Label naytto = new Label(); 
     168        naytto.BindTo(laskuri); 
     169        naytto.X = x; 
     170        naytto.Y = y; 
     171        naytto.TextColor = Color.White; 
     172        naytto.BorderColor = Level.BackgroundColor; 
     173        naytto.Color = Level.BackgroundColor; 
     174        Add(naytto); 
     175        return laskuri; 
     176 
     177 
     178    } 
     179    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     180    { 
     181        if (kohde == oikeaReuna) 
     182        { 
     183            pelaajan1Pisteet.Value += 1; 
     184 
     185            if (pelaajan1Pisteet.Value == 10) 
     186            { 
     187                MessageDisplay.Add("Pelaaja 1 voitti pelin."); 
     188            } 
     189 
     190 
     191        } 
     192        else if (kohde == vasenReuna) 
     193        { 
     194            pelaajan2Pisteet.Value += 1; 
     195 
     196            if (pelaajan2Pisteet.Value == 10) 
     197            { 
     198                MessageDisplay.Add("Pelaaja 2 voitti pelin."); 
     199            } 
     200        } 
     201 
     202    } 
     203    void laskuriYlarajassa(int arvo) 
     204    { 
     205        MessageDisplay.TextColor = Color.White; 
     206        MessageDisplay.Add("Pelaaja 1 voitti pelin."); 
     207 
     208       
     209    } 
     210 
    87211} 
Note: See TracChangeset for help on using the changeset viewer.