Changeset 1312 for 2010


Ignore:
Timestamp:
2010-07-27 11:27:22 (9 years ago)
Author:
johulkko
Message:

peli valmis

File:
1 edited

Legend:

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

    r1289 r1312  
    66public class Peli : PhysicsGame 
    77{ 
    8     Vector nopeusYlos = new Vector(0, 200); 
    9     Vector nopeusAlas = new Vector(0, -200); 
     8    Vector nopeusYlos = new Vector(0, 400); 
     9    Vector nopeusAlas = new Vector(0,400); 
    1010 
    1111    PhysicsObject pallo;  
     
    1414    PhysicsObject maila2; 
    1515 
     16    PhysicsObject vasenReuna; 
     17    PhysicsObject oikeaReuna; 
     18 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
    1621 
    1722    protected override void Begin() 
     
    2025        LuoKentta(); 
    2126        AsetaOhjaimet(); 
     27        LisaaLaskurit () ; 
    2228        AloitaPeli(); 
    23  
    2429 
    2530    } 
     
    3338        pallo.Restitution = 1.0; 
    3439        Add(pallo); 
     40        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3541 
    36         LuoMaila(Level.Left + 10.0, 0.0); 
    37         LuoMaila(Level.Right - 10.0, 0.0); 
     42        maila1 = LuoMaila(Level.Left + 10.0, 0.0); 
     43        maila2 = LuoMaila(Level.Right - 10.0, 0.0); 
    3844 
    3945 
    4046 
     47        vasenReuna = Level.CreateLeftBorder(); 
     48        vasenReuna.Restitution = 1.0; 
     49        vasenReuna.IsVisible = false; 
     50        oikeaReuna = Level.CreateRightBorder(); 
     51        oikeaReuna.Restitution = 1.0; 
     52        oikeaReuna.IsVisible = false; 
     53        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     54        ylaReuna.Restitution = 1.0; 
     55        ylaReuna.IsVisible = false; 
     56        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     57        alaReuna.Restitution = 1.0; 
     58        alaReuna.IsVisible = false; 
    4159 
    42  
    43         Level.CreateBorders(1.0, false); 
     60        Level.BackgroundColor = Color.Black; 
    4461        Level.BackgroundColor = Color.Black; 
    4562 
    4663        Camera.ZoomToLevel(); 
    47  
    4864 
    4965    } 
     
    5268    { 
    5369        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    54         Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös"); 
    55         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 
     70        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     71        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     72        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     73        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     74 
     75        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     76        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     77        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     78        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     79 
     80        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     81 
    5682        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     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        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     97        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     98        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     99        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     100 
     101        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     102        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     103        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     104        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     105 
     106        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     107        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
    57108 
    58109    } 
    59110 
    60  
    61  
    62     void LuoMaila(double x, double y) 
    63           PhysicsObject LuoMaila( double x, double y ) 
     111    PhysicsObject LuoMaila(double x, double y) 
     112           
    64113    { 
    65114        PhysicsObject maila = PhysicsObject. 
     
    83132    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    84133    { 
    85         maila.Velocity = nopeus; 
     134        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     135        { 
     136            maila.Velocity = Vector.Zero; 
     137            return; 
     138        } 
     139        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     140        { 
     141            maila.Velocity = Vector.Zero; 
     142            return; 
     143        } 
     144 
     145        maila.Velocity = nopeus;    
     146    } 
     147 
     148    void LisaaLaskurit() 
     149    { 
     150        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 400.0, Screen.Top - 300.0); 
     151        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 400.0, Screen.Top - 300.0); 
     152 
     153    } 
     154 
     155    IntMeter LuoPisteLaskuri( double x, double y ) 
     156    { 
     157        IntMeter laskuri = new IntMeter(0); 
     158        laskuri.MaxValue = 15; 
     159        Label naytto = new Label(); 
     160        naytto.BindTo(laskuri); 
     161        naytto.X = x; 
     162        naytto.Y = y; 
     163        naytto.TextColor = Color.White; 
     164        Add(naytto); 
     165        return laskuri; 
     166 
     167    } 
     168 
     169    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     170    { 
     171        if (kohde == oikeaReuna) 
     172        { 
     173            pelaajan1Pisteet.Value += 1; 
     174        } 
     175        else if (kohde == vasenReuna) 
     176        { 
     177            pelaajan2Pisteet.Value += 1; 
     178        } 
    86179    } 
    87180} 
    88  
    89  
    90  
    91  
    92  
    93  
    94  
Note: See TracChangeset for help on using the changeset viewer.