Changeset 1092


Ignore:
Timestamp:
2010-07-06 14:50:22 (9 years ago)
Author:
paaaanro
Message:

uusi bog peli

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/jakasalm/pong/Peli.cs

    r1075 r1092  
    77{ 
    88    PhysicsObject pallo; 
    9     
     9    PhysicsObject maila1; 
     10    PhysicsObject maila2; 
    1011 
     12    Vector nopeusYlos = new Vector(0, 200); 
     13    Vector nopeusAlas = new Vector(0, -200); 
    1114 
     15    IntMeter pelaajan1Pisteet; 
     16    IntMeter pelaajan2Pisteet; 
     17 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
    1220 
    1321    protected override void Begin() 
    1422    { 
    1523        LuoKentta(); 
    16         Vector impulssi = new Vector(500.0, 0.0); 
    17         pallo.Hit(impulssi); 
     24        AloitaPeli(); 
     25        Asetaohjaimet(); 
     26        LisaaLaskurit(); 
     27 
    1828    } 
    1929 
     
    2636        pallo.Restitution = 1.0; 
    2737        Add(pallo); 
     38        AddCollisionHandler(pallo, KasittelePallonTormays); 
     39         
     40 
     41        maila1 = luomaila(Level.Left + 20.0, 0.0); 
     42        maila2 = luomaila(Level.Right - 20.0, 0.0); 
     43 
     44 
     45        Level.BackgroundColor = Color.Black; 
     46 
     47        Camera.ZoomToLevel(); 
     48 
     49 
     50        vasenReuna = Level.CreateLeftBorder(); 
     51        vasenReuna.Restitution = 1.0; 
     52        vasenReuna.IsVisible = false; 
     53 
     54        oikeaReuna = Level.CreateRightBorder(); 
     55        oikeaReuna.Restitution = 1.0; 
     56        oikeaReuna.IsVisible = false; 
     57 
     58        PhysicsObject alareunaReuna = Level.CreateBottomBorder(); 
     59        alareunaReuna.Restitution = 1.0; 
     60        alareunaReuna.IsVisible = false; 
     61 
     62        PhysicsObject ylareunaReuna = Level.CreateTopBorder(); 
     63        ylareunaReuna.Restitution = 1.0; 
     64        ylareunaReuna.IsVisible = false; 
     65     
     66     
     67     
     68    } 
     69     
     70 
     71    PhysicsObject luomaila(double x, double y) 
     72    { 
     73     
    2874 
    2975        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    3076        maila.Shape = Shapes.Rectangle; 
    31         maila.X = Level.Left + 20.0; 
    32         maila.Y = 0.0; 
     77        maila.X = x; 
     78        maila.Y = y; 
    3379        maila.Restitution = 1.0; 
    3480        Add(maila); 
     81        return (maila); 
     82 
     83         
     84    } 
     85    void AloitaPeli() 
     86    { 
     87 
     88        Vector impulssi = new Vector(500.0, 0.0); 
     89        pallo.Hit(impulssi);   
     90     
     91     
     92    } 
     93    void Asetaohjaimet() 
     94    { 
     95 
     96    Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     97    Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     98    Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     99    Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     100 
     101    Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     102    Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     103    Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     104    Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     105 
     106    Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     107    Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     108 
     109    ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     110    ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     111    ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     112    ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     113 
     114    ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     115    ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     116    ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     117    ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     118 
     119    ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     120    ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     121     
     122    } 
     123     
     124     
     125 
     126    void PysaytaMaila(PhysicsObject maila) 
     127    { 
     128    maila.Velocity = Vector.Zero; 
     129 
     130    } 
    35131 
    36132 
    37         Level.CreateBorders(1.0, false); 
    38         Level.BackgroundColor = Color.Black; 
     133    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     134    { 
     135        if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     136        { 
     137            maila.Velocity = Vector.Zero; 
     138            return; 
     139        } 
     140        if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     141        { 
     142            maila.Velocity = Vector.Zero; 
     143            return; 
     144        } 
    39145 
    40         Camera.ZoomToLevel(); 
     146        maila.Velocity = nopeus; 
    41147    } 
    42     
    43      
    44     void AloitaPeli() 
     148 
     149 
     150    void LisaaLaskurit() 
    45151    { 
     152        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     153        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     154 
     155    } 
     156 
     157    IntMeter LuoPisteLaskuri(double x, double y) 
     158    { 
     159        IntMeter laskuri = new IntMeter(0); 
     160        laskuri.MaxValue = 10; 
     161         
     162        Label naytto = new Label(); 
     163        naytto.BindTo(laskuri); 
     164        naytto.X = x; 
     165        naytto.Y = y; 
     166        naytto.TextColor = Color.White; 
     167        Add(naytto); 
     168        return laskuri; 
     169 
     170    } 
     171 
     172    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     173    { 
     174        if (kohde == oikeaReuna) 
     175        { 
     176            pelaajan1Pisteet.Value += 1; 
     177        } 
     178        else if (kohde == vasenReuna) 
     179        { 
     180            pelaajan2Pisteet.Value += 1; 
     181        } 
    46182    } 
    47183 
     
    49185 
    50186 
     187 
    51188}  
Note: See TracChangeset for help on using the changeset viewer.