Changeset 1351 for 2010/30


Ignore:
Timestamp:
2010-07-28 10:24:32 (9 years ago)
Author:
jyniinin
Message:

jotakin

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/jyniinin/pong/Peli.cs

    r1335 r1351  
    66public class Peli : PhysicsGame 
    77{ 
    8     Vector nopeusYlos = new Vector( 0, 400 ); 
    9     Vector nopeusAlas = new Vector( 0, -400 ); 
     8    Vector nopeusYlos = new Vector(0, 200); 
     9    Vector nopeusAlas = new Vector(0, -200); 
    1010 
    11      
    1211    PhysicsObject pallo; 
    1312    PhysicsObject maila1; 
     
    3837        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3938 
    40       maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    41       maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     39        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     40        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4241 
    43  
    44       vasenReuna = Level.CreateLeftBorder(); 
    45       vasenReuna.Restitution = 1.0; 
    46       vasenReuna.IsVisible = false; 
    47       oikeaReuna = Level.CreateRightBorder(); 
    48       oikeaReuna.Restitution = 1.0; 
    49       oikeaReuna.IsVisible = false; 
    50       PhysicsObject ylaReuna = Level.CreateTopBorder(); 
    51       ylaReuna.Restitution = 1.0; 
    52       ylaReuna.IsVisible = false; 
    53       PhysicsObject alaReuna = Level.CreateBottomBorder(); 
    54       alaReuna.Restitution = 1.0; 
    55       alaReuna.IsVisible = false; 
    56  
     42        vasenReuna = Level.CreateLeftBorder(); 
     43        vasenReuna.Restitution = 1.0; 
     44        vasenReuna.IsVisible = false; 
     45        oikeaReuna = Level.CreateRightBorder(); 
     46        oikeaReuna.Restitution = 1.0; 
     47        oikeaReuna.IsVisible = false; 
     48        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     49        ylaReuna.Restitution = 1.0; 
     50        ylaReuna.IsVisible = false; 
     51        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     52        alaReuna.Restitution = 1.0; 
     53        alaReuna.IsVisible = false; 
    5754 
    5855        Level.BackgroundColor = Color.Black; 
    5956 
    6057        Camera.ZoomToLevel(); 
    61         } 
    62          PhysicsObject LuoMaila(double x, double y) 
    63         { 
     58    } 
     59 
     60    PhysicsObject LuoMaila(double x, double y) 
     61    { 
    6462        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    6563        maila.Shape = Shapes.Rectangle; 
     
    6967        Add(maila); 
    7068        return maila; 
     69    } 
     70 
     71    void LisaaLaskurit() 
     72    { 
     73        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     74        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     75    } 
     76 
     77    IntMeter LuoPisteLaskuri(double x, double y) 
     78    { 
     79        IntMeter laskuri = new IntMeter(0); 
     80        laskuri.MaxValue = 10; 
     81        Label naytto = new Label(); 
     82        naytto.BindTo(laskuri); 
     83        naytto.X = x; 
     84        naytto.Y = y; 
     85        naytto.TextColor = Color.White; 
     86        Add(naytto); 
     87        return laskuri; 
     88    } 
     89 
     90    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     91    { 
     92        if (kohde == oikeaReuna) 
     93        { 
     94            pelaajan1Pisteet.Value += 1; 
     95        } 
     96        else if (kohde == vasenReuna) 
     97        { 
     98            pelaajan2Pisteet.Value += 1; 
     99        } 
     100    } 
     101 
     102    void AloitaPeli() 
     103    { 
     104        Vector impulssi = new Vector(500.0, 0.0); 
     105        pallo.Hit(impulssi); 
     106    } 
     107 
     108    void AsetaOhjaimet() 
     109    { 
     110        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     111        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     112        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     113        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     114 
     115        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     116        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     117        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     118        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     119 
     120        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     121        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     122 
     123        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     124        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     125        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     126        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     127 
     128        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     129        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     130        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     131        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     132 
     133        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     134        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     135    } 
     136 
     137    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     138    { 
     139        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     140        { 
     141            maila.Velocity = Vector.Zero; 
     142            return; 
     143        } 
     144        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     145        { 
     146            maila.Velocity = Vector.Zero; 
     147            return; 
    71148        } 
    72149 
    73          void LisaaLaskurit() 
    74          { 
    75              pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
    76              pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    77   
    78          } 
    79  
    80          IntMeter LuoPisteLaskuri(double x, double y) 
    81          { 
    82              IntMeter laskuri = new IntMeter(0); 
    83              laskuri.MaxValue = 10; 
    84              Label naytto = new Label(); 
    85              naytto.BindTo(laskuri); 
    86              naytto.X = x; 
    87              naytto.Y = y; 
    88              naytto.TextColor = Color.White; 
    89              Add(naytto); 
    90              return laskuri; 
    91          } 
    92          void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
    93          { 
    94           if (kohde == oikeaReuna) 
    95           { 
    96               pelaajan1Pisteet.Value += 1;                  
    97           } 
    98           else if (kohde == vasenReuna) 
    99           { 
    100                  pelaajan2Pisteet.Value += 1; 
    101           }    
    102  
    103          } 
    104  
    105  
    106         void AloitaPeli() 
    107         { 
    108              
    109             Vector impulssi = new Vector(500.0, 100.0); 
    110         pallo.Hit(impulssi); 
    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, "Pelaaja 2: Liikuta 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, Exit, "Poistu"); 
    127  
    128             ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
    129             ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    130             ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
    131             ControllerOne.Listen(Button.DPadDown, 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  
    138             ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
    139             ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
    140  
    141             ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    142             ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    143  
    144             MessageDisplay.TextColor = Color.White; 
    145         } 
    146  
    147  
    148       const double pallonNopeus = 500; 
    149  
    150     protected override void Update( Time time ) 
    151     { 
    152         if ( pallo != null && Math.Abs( pallo.Velocity.X ) < pallonNopeus ) 
    153         { 
    154             pallo.Velocity = new Vector( pallo.Velocity.X * 1.1, pallo.Velocity.Y ); 
    155         } 
    156         base.Update( time ); 
     150        maila.Velocity = nopeus; 
    157151    } 
    158  
    159     void AsetaNopeus( PhysicsObject maila, Vector nopeus ) 
    160 { 
    161  
    162     if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    163     { 
    164         maila.Velocity = Vector.Zero; 
    165         return; 
    166     } 
    167  
    168         if ( (nopeus.Y > 0) && (maila.Top > Level.Top) ) 
    169        {    
    170         maila.Velocity = Vector.Zero; 
    171         return; 
    172        } 
    173  
    174           maila.Velocity = nopeus; 
    175152} 
    176  
    177  
    178 }    
Note: See TracChangeset for help on using the changeset viewer.