Changeset 1101 for 2010/27


Ignore:
Timestamp:
2010-07-06 14:57:12 (9 years ago)
Author:
akrauhan
Message:

Jippii.

Location:
2010/27/akrauhan
Files:
33 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/akrauhan/Ultimate Hardcore Pong Tournament/Peli.cs

    r1068 r1101  
    1212    PhysicsObject maila1; 
    1313    PhysicsObject maila2; 
     14     
     15    PhysicsObject vasenReuna; 
     16    PhysicsObject oikeaReuna; 
     17 
     18 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
    1421 
    1522    protected override void Begin() 
    1623    { 
    1724        LuoKentta(); 
    18         AsetaOhjaimet();' 
    19         LisaaLaskurit (); 
    20         AloitaPeli (); 
     25        AsetaOhjaimet(); 
     26        LisaaLaskurit(); 
     27        AloitaPeli(); 
    2128        Vector impulssi = new Vector(500.0, 0.0); 
    2229        pallo.Hit(impulssi); 
    2330 
    24          
     31 
    2532    } 
    26      void LuoKentta() 
    27      { 
     33    void LuoKentta() 
     34    { 
    2835        //TODO: Alusta peli tässä 
    2936        pallo = new PhysicsObject(40.0, 40.0); 
    30          
     37 
    3138        pallo.Shape = Shapes.Circle; 
    3239        pallo.X = -200.0; 
    33         pallo.Y = 0.0;  
    34         Level.CreateBorders( 1.0, false ); 
    35         pallo.Restitution = 1.05; 
     40        pallo.Y = 0.0; 
     41        vasenReuna = Level.CreateLeftBorder (); 
     42        vasenReuna.Restitution = 1.0; 
     43        vasenReuna.IsVisible = false; 
     44        oikeaReuna = Level.CreateRightBorder (); 
     45        oikeaReuna.Restitution = 1.0; 
     46        oikeaReuna.IsVisible = false; 
     47        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     48        alaReuna.Restitution = 1.0; 
     49        alaReuna.IsVisible = false; 
     50        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     51        yläReuna.Restitution = 1.0; 
     52        alaReuna.IsVisible = false; 
     53        pallo.Restitution = 1.0; 
    3654        Level.BackgroundColor = Color.Black; 
    3755        Camera.ZoomToLevel(); 
    3856        Add(pallo); 
    3957 
    40         maila1 = LuoMaila (Level.Left + 20.0, 0.0); 
    41         maila2 = LuoMaila (Level.Right - 20.0, 0.0); 
    42      }    
    43         void AloitaPeli () 
     58        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     59        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     60 
     61        AddCollisionHandler(pallo, KasittelePallonTormays); 
     62    } 
     63    void AloitaPeli() 
     64    { 
     65        Vector impulssi = new Vector(500.0, 0.0); 
     66        pallo.Hit(impulssi); 
     67    } 
     68    PhysicsObject LuoMaila(double x, double y) 
     69    { 
     70        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     71        maila.Shape = Shapes.Rectangle; 
     72        maila.X = x; 
     73        maila.Y = y; 
     74        maila.Restitution = 1.0; 
     75        Add(maila); 
     76 
     77        return (maila); 
     78    } 
     79 
     80 
     81    void AsetaOhjaimet() 
     82    { 
     83        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     84        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     85        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     86        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     87 
     88        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     89        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     90        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     91        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     92 
     93        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     95    } 
     96    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     97    { 
     98        if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
    4499        { 
    45              Vector impulssi = new Vector ( 500.0, 0.0); 
    46             pallo.Hit ( impulssi ); 
     100            maila.Velocity = Vector.Zero; 
     101            return; 
    47102        } 
    48         PhysicsObject LuoMaila(double x, double y) 
     103        if ((nopeus.Y > 0 && (maila.Y > Level.Top))) 
    49104        { 
    50             PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    51             maila.Shape = Shapes.Rectangle; 
    52             maila.X = x; 
    53             maila.Y = y; 
    54             maila.Restitution = 1.0; 
    55             Add(maila); 
    56  
    57             return (maila); 
    58         } 
    59             
    60          
    61        void AsetaOhjaimet() 
    62         { 
    63             Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    64             Keyboard.Listen(Key.A, ButtonState.Released,AsetaNopeus, null, maila1, Vector.Zero); 
    65             Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
    66             Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    67  
    68             Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
    69             Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    70             Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
    71             Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    72  
    73             Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    74             Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    75         } 
    76         void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    77         { 
    78             if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
    79             { 
    80                 maila.Velocity = Vector.Zero; 
    81                 return; 
    82             } 
    83             if ( (nopeus.Y > 0 && (maila.Y > Level.Top) )) 
    84             { 
    85                 maila.Velocity = Vector.Zero; 
    86                 return; 
    87             } 
    88  
    89             maila.Velocity = nopeus; 
    90  
    91         } 
    92         void LisaaLaskurit() 
    93         { 
     105            maila.Velocity = Vector.Zero; 
     106            return; 
    94107        } 
    95108 
    96  
     109        maila.Velocity = nopeus; 
    97110 
    98111    } 
    99  
     112    void LisaaLaskurit() 
     113    { 
     114        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     115        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     116    } 
     117    IntMeter LuoPisteLaskuri(double x, double y) 
     118    { 
     119        IntMeter laskuri = new IntMeter(0); 
     120        laskuri.MaxValue = 10; 
     121        Label naytto = new Label(); 
     122        naytto.BindTo(laskuri); 
     123        naytto.X = x; 
     124        naytto.Y = y; 
     125        naytto.TextColor = Color.White; 
     126        Add(naytto); 
     127        return laskuri; 
     128    } 
     129    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     130    { 
     131         if ( kohde == oikeaReuna ) 
     132         { 
     133               pelaajan1Pisteet.Value += 1; 
     134         } 
     135         else if ( kohde == vasenReuna ) 
     136         { 
     137               pelaajan2Pisteet.Value +=1; 
     138         }  
     139    } 
     140} 
Note: See TracChangeset for help on using the changeset viewer.