Changeset 2957 for 2012/24


Ignore:
Timestamp:
2012-06-12 14:39:45 (7 years ago)
Author:
juiitamm
Message:

Talletus.

Location:
2012/24/EemeliKu/Pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/EemeliKu/Pong/Pong/Pong/Pong.cs

    r2932 r2957  
    99public class Pong : PhysicsGame 
    1010{ 
     11 
     12 
     13 
     14    Vector NopeusYlos = new Vector(0, 25); 
     15    Vector NopeusAlas = new Vector(0, -25); 
     16    Vector NopeusVasen = new Vector(-50, 0); 
     17    Vector NopeusOikea = new Vector(50, 0); 
     18 
     19    double MaksimiNopeus = 200; 
     20 
    1121    PhysicsObject pallo; 
    12        Vector nopeusYlos = new Vector( 0, 200 ); 
    13     Vector nopeusAlas = new Vector( 0, -200 ); 
    14   
    15     PhysicsObject pallo; 
    16  
    17      PhysicsObject maila1; 
     22 
     23    PhysicsObject maila1; 
    1824    PhysicsObject maila2; 
    1925 
     26    IntMeter pelaajan1Pisteet; 
     27    IntMeter pelaajan2Pisteet; 
     28 
     29    PhysicsObject vasenReuna; 
     30    PhysicsObject oikeaReuna; 
     31 
    2032    public override void Begin() 
    21     {    
     33    { 
    2234 
    2335 
     
    2537        LuoKentta(); 
    2638        AloitaPeli(); 
     39        LisaaLaskurit(); 
    2740        AsetaOhjaimet(); 
    28     
     41 
    2942 
    3043 
     
    4053        pallo.Y = 0; 
    4154        pallo.Restitution = (1); 
    42         Level.CreateBorders(1.0, false); 
     55        pallo.Color = Color.White; 
     56        vasenReuna = Level.CreateLeftBorder(); 
     57        vasenReuna.Restitution = 1.0; 
     58        vasenReuna.IsVisible = false; 
     59        oikeaReuna = Level.CreateRightBorder(); 
     60        oikeaReuna.Restitution = 1.0; 
     61        oikeaReuna.IsVisible = false; 
     62        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     63        yläReuna.Restitution = 1.0; 
     64        yläReuna.IsVisible = false; 
     65        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     66        alaReuna.Restitution = 1.0; 
     67        alaReuna.IsVisible = false; 
    4368        Level.BackgroundColor = Color.Black; 
    4469        Camera.ZoomToLevel(); 
    45         Maila1(Level.Left + 20, 0); 
    46         Maila2(Level.Right - 20, 0); 
    47  
    48  
    49     } 
    50  
     70        maila1 = LuoMaila(Level.Left + 20, 0); 
     71        maila2 = LuoMaila(Level.Right - 20, 0); 
     72        MessageDisplay.TextColor = Color.Blue; 
     73        AddCollisionHandler(pallo, KasittelePallonTormays); 
     74 
     75    } 
     76 
     77         
    5178    void AloitaPeli() 
    5279    { 
     
    5582    } 
    5683 
    57     void LuoMaila(double x, double y) 
    58     { 
    59         PhysicsObject maila = PhysicsObject.CreateStaticObject(20, 100); 
     84    PhysicsObject LuoMaila(double x, double y) 
     85    { 
     86        PhysicsObject maila = new PhysicsObject(20, 100); 
    6087        maila.Shape = Shape.Rectangle; 
    6188        maila.X = x; 
    6289        maila.Y = y; 
    6390        maila.Restitution = 1; 
     91        maila.CanRotate = false; 
    6492        Add(maila); 
     93        maila.Color = Color.White; 
     94 
     95        return maila; 
    6596 
    6697    } 
     
    69100    { 
    70101        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    71         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    72         Keyboard.Listen(Key.A, ButtonState.Pressed, LiikutaMailaaYlos, " Liikuta Mailaa Ylös"); 
    73         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 
    74     } 
    75     void AsetaNopeus() (PhysicsObject maila, Vector nopeus) 
    76     { 
    77     maila.Velocity = nopeus; 
    78     } 
     102        Keyboard.Listen(Key.Escape, ButtonState.Down, ConfirmExit, "Lopeta peli"); 
     103        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, " Liikuta Mailaa Ylös", maila1, NopeusYlos); 
     104        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     105        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, NopeusAlas); 
     106        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     107        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, " Liikuta Mailaa Vasemalle", maila1, NopeusVasen); 
     108        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     109        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, " Liikuta Mailaa Oikealle", maila1, NopeusOikea); 
     110        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     111 
     112        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, NopeusYlos); 
     113        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     114        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, NopeusAlas); 
     115        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     116        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa vasemmalle", maila2, NopeusVasen); 
     117        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     118        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa oikealle", maila2, NopeusOikea); 
     119        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     120         
     121         
     122        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     123 
     124        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, NopeusYlos); 
     125        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     126        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, NopeusAlas); 
     127        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     128        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, AsetaNopeus, "Liikuta mailaa vasemmalle", maila1, NopeusVasen); 
     129        ControllerOne.Listen(Button.DPadLeft, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     130        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, AsetaNopeus, "Liikuta mailaa oikealle", maila1, NopeusOikea); 
     131        ControllerOne.Listen(Button.DPadRight, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     132 
     133        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, NopeusYlos); 
     134        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     135        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, NopeusAlas); 
     136        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     137        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, AsetaNopeus, "Liikuta mailaa vasemmalle", maila2, NopeusVasen); 
     138        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     139        ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, AsetaNopeus, "Liikuta mailaa oikealle", maila2, NopeusOikea); 
     140        ControllerTwo.Listen(Button.DPadRight, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     141 
     142        ControllerOne.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     143        ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     144        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     145        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     146        Keyboard.Listen(Key.F10, ButtonState.Pressed, PallonOhjaus, null, Color.Yellow); 
     147        Keyboard.Listen(Key.F11, ButtonState.Pressed, PallonOhjaus, null, Color.Green); 
     148 
     149 
     150    } 
     151    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     152    { 
     153        /* 
     154        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     155        { 
     156            maila.Velocity = Vector.Zero; 
     157            return; 
     158        } 
     159        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     160        { 
     161            maila.Velocity = Vector.Zero; 
     162            return; 
     163        } 
     164         */ 
     165 
     166        maila.ApplyTorque(1000); 
     167 
     168        maila.Velocity = maila1.Velocity+ nopeus; 
     169 
     170        if (maila.Velocity.MagnitudeSquared > MaksimiNopeus) 
     171        { 
     172            maila.Velocity = maila.Velocity.Normalize() * MaksimiNopeus; 
     173        } 
     174    } 
     175 
     176    void LisaaLaskurit() 
     177    { 
     178        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     179        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     180    } 
     181 
     182    IntMeter LuoPisteLaskuri(double x, double y) 
     183    { 
     184        IntMeter laskuri = new IntMeter(0); 
     185        laskuri.MaxValue = 10; 
     186        Label naytto = new Label(); 
     187        naytto.BindTo(laskuri); 
     188        naytto.X = x; 
     189        naytto.Y = y; 
     190        naytto.TextColor = Color.White; 
     191        naytto.BorderColor = Level.BackgroundColor; 
     192        naytto.Color = Level.BackgroundColor; 
     193        Add(naytto); 
     194        return laskuri; 
     195 
     196    } 
     197 
     198    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     199    { 
     200        if (kohde == oikeaReuna) 
     201        { 
     202            pelaajan1Pisteet.Value += 1; 
     203        } 
     204        else if (kohde == vasenReuna) 
     205        { 
     206            pelaajan2Pisteet.Value += 1; 
     207        } 
     208        else if (kohde == maila1) 
     209        { 
     210            pallo.Color = Color.Red; 
     211            pallo.Velocity = pallo.Velocity * 1.25; 
     212        } 
     213        else if (kohde == maila2) 
     214        { 
     215            pallo.Color = Color.Blue; 
     216            pallo.Velocity = pallo.Velocity * 1.25; 
     217 
     218        } 
     219 
     220    } 
     221 
     222 
     223 
     224    void PallonOhjaus(Color vari) 
     225    { 
     226        pallo.Color = vari; 
     227    } 
     228 
     229 
     230    void Pysayta() 
     231 { 
     232     maila1.Velocity = Vector.Zero; 
    79233} 
     234 
     235 
     236 
     237 
     238} 
Note: See TracChangeset for help on using the changeset viewer.