Changeset 1568 for 2010/31


Ignore:
Timestamp:
2010-08-03 14:55:21 (13 years ago)
Author:
paaaanro
Message:

PELIT

Location:
2010/31/jumijoky
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/31/jumijoky/PONG/Peli.cs

    r1528 r1568  
    66public class Peli : PhysicsGame 
    77{ 
     8    Vector nopeusYlos = new Vector(0, 200); 
     9    Vector nopeusAlas = new Vector(0, -200); 
     10    PhysicsObject maila1; 
     11    PhysicsObject maila2; 
     12 
    813    PhysicsObject pallo; 
     14    IntMeter pelaajan1Pisteet; 
     15    IntMeter pelaajan2Pisteet; 
     16    PhysicsObject vasenReuna; 
     17        PhysicsObject oikeaReuna; 
    918 
    1019    protected override void Begin() 
    1120    { 
    1221        LuoKentta(); 
     22        AsetaOhjaimet(); 
    1323        AloitaPeli(); 
     24        LisaaLaskurit(); 
     25 
    1426 
    1527        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     
    2436        pallo.Shape = Shapes.Circle; 
    2537        Add(pallo); 
    26          
    27         LuoMaila(Level.Left + 20.0, 0.0); 
    28         LuoMaila(Level.Right - 20.0, 0.0); 
     38        pallo.Color = Color.Magenta; 
     39 
     40 
     41        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     42        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     43        maila1.Color = Color.Fuchsia; 
     44        maila2.Color = Color.Cyan; 
    2945 
    3046        pallo.X = -200.0; 
    3147        pallo.Y = 0.0; 
    32         Level.CreateBorders(1.0, false); 
    33         pallo.Restitution = 1.2; 
     48        vasenReuna = Level.CreateLeftBorder(); 
     49        vasenReuna.Restitution = 1.0; 
     50        vasenReuna.IsVisible = false; 
     51        oikeaReuna = Level.CreateRightBorder(); 
     52        oikeaReuna.Restitution = 1.0; 
     53        oikeaReuna.IsVisible = false; 
     54        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     55        alaReuna.Restitution = 1.0; 
     56        alaReuna.IsVisible = false; 
     57        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     58        yläReuna.Restitution = 1.0; 
     59        yläReuna.IsVisible = false; 
     60 
     61 
     62 
     63 
     64        pallo.Restitution = 1.011; 
    3465        Level.BackgroundColor = Color.Purple; 
    3566        Camera.ZoomToLevel(); 
    36         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    37         maila.Shape = Shapes.Rectangle; 
    38         maila.X = Level.Left + 20.0; 
    39         maila.Y = 0.0; 
    40         maila.Restitution = 1.0; 
    41         Add(maila); 
     67        
     68        AddCollisionHandler(pallo, KasittelePallonTormays); 
     69 
    4270    } 
    4371    void AloitaPeli() 
    4472    { 
    45         Vector impulssi = new Vector(500.0, 43.0); 
     73        Vector impulssi = new Vector(500.0, 0.0); 
    4674        pallo.Hit(impulssi); 
    4775    } 
    48      
    49     void LuoMaila(double x, double y) 
     76 
     77    PhysicsObject LuoMaila(double x, double y) 
    5078    { 
    5179        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5583        maila.Restitution = 1.0; 
    5684        Add(maila); 
    57         
     85        return maila; 
     86         
    5887    } 
    5988 
     89    void AsetaOhjaimet() 
     90    { 
     91        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     92        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     93        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     94        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     95        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     96 
     97        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     98        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     99        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     100        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     101 
     102        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     103 
     104        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     105        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     106        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     107        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     108 
     109        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     110        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     111        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     112        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     113 
     114        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     115        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     116 
     117 
     118    } 
     119 
     120    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     121    { 
     122        maila.Velocity = nopeus; 
     123 
     124 
     125        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     126        { 
     127            maila.Velocity = Vector.Zero; 
     128            return; 
     129        } 
     130        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     131        { 
     132            maila.Velocity = Vector.Zero; 
     133            return; 
     134 
     135        } 
     136 
     137    } 
     138 
     139    void LisaaLaskurit() 
     140    { 
     141        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     142        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     143    } 
     144 
     145    IntMeter LuoPisteLaskuri(double x, double y) 
     146    { 
     147        IntMeter laskuri = new IntMeter(0); 
     148        laskuri.MaxValue = 10; 
     149        Label naytto = new Label(); 
     150        naytto.X = x; 
     151        naytto.Y = y; 
     152        naytto.TextColor = Color.White; 
     153        naytto.BindTo(laskuri); 
     154        Add(naytto); 
     155        return laskuri; 
     156    } 
     157 
     158 
     159 
     160    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     161    { 
     162        if (kohde == oikeaReuna) 
     163        { 
     164            pelaajan1Pisteet.Value += 1; 
     165        } 
     166        else if (kohde == vasenReuna) 
     167        { 
     168            pelaajan2Pisteet.Value += 1; 
     169        } 
     170 
     171 
     172 
     173    } 
    60174} 
     175 
     176 
     177   
     178     
     179 
     180 
    61181 
    62182         
Note: See TracChangeset for help on using the changeset viewer.