Changeset 1317 for 2010/30/pyryl/pong


Ignore:
Timestamp:
2010-07-27 11:29:01 (13 years ago)
Author:
paaaanro
Message:

pomg toimiipp

File:
1 edited

Legend:

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

    r1276 r1317  
    66public class Peli : PhysicsGame 
    77{ 
    8     Vector NopeusYlos = new Vector (200.0); 
    9     Vector NopeusAlas = new Vector (-200.0); 
     8    Vector nopeusYlos = new Vector(0, 800); 
     9    Vector nopeusAlas = new Vector(0, -800); 
    1010 
    1111    PhysicsObject pallo; 
     12    PhysicsObject maila1; 
     13    PhysicsObject maila2; 
     14    PhysicsObject oikeareuna; 
     15    PhysicsObject vasenreuna; 
     16 
     17 
     18    IntMeter pelaajan1Pisteet; 
     19    IntMeter pelaajan2Pisteet; 
    1220 
    1321    protected override void Begin() 
     
    1624        AsetaOhjaimet(); 
    1725        AloitaPeli(); 
     26        LisaaLaskurit(); 
    1827        //TODO: Alusta peli tässä 
    1928       // LuoKentta(); 
     
    3140        pallo.Y = 0.0; 
    3241 
    33         Level.CreateBorders(1.0, false); 
    34         pallo.Restitution = 1.0; 
     42 
     43        AddCollisionHandler(pallo, KasittelePallonTormays); 
     44 
     45        vasenreuna = Level.CreateLeftBorder(); 
     46        PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     47        vasenReuna.Restitution = 1.0; 
     48        vasenReuna.IsVisible = false; 
     49        oikeareuna = Level.CreateRightBorder(); 
     50        PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
     51        vasenReuna.Restitution = 1.0; 
     52        vasenReuna.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; 
     59 
     60 
     61        pallo.Restitution = 3.0; 
    3562        pallo.KineticFriction = 0; 
    3663        Level.BackgroundColor = Color.Black; 
    3764        Camera.ZoomToLevel(); 
    38         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    39         maila.Shape = Shapes.Rectangle; 
    40         maila.X = Level.Left + 20.0; 
    41         maila.Y = 0.0; 
    42         maila.Restitution = 1.0; 
    43         Add(maila); 
     65 
     66 
    4467        maila1 = LuoMaila (Level.Left + 20.0, 0.0); 
    4568        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     
    4770    void AloitaPeli() 
    4871    { 
    49         Vector impulssi = new Vector(500.0, 0.0); 
     72        Vector impulssi = new Vector(500.0, 30.0); 
    5073        pallo.Hit(impulssi); 
    5174    } 
     
    6285    void AsetaOhjaimet() 
    6386    { 
     87        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos); 
     88        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     89        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     90        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     91 
     92        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     93        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     94        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     95        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     96 
     97        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     98 
    6499        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    65         Keyboard.Listen (Key.A ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta Mailaa Ylos"); 
    66         Keyboard.Listen (Key.A ButtonState.Released PysaytaMaila, Null); 
     100 
     101 
     102        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     103        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     104        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     105        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     106 
     107        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     108        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     109        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     110        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     111 
     112        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     113        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     114 
    67115    } 
    68 {void AsetaNopeus ( PhysicsObject maila, Vector nopeus ) 
    69 { 
     116 
     117    void AsetaNopeus ( PhysicsObject maila, Vector nopeus ) 
     118    { 
     119        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     120        { 
     121            maila.Velocity = Vector.Zero; 
     122            return; 
     123        } 
     124        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     125        { 
     126            maila.Velocity = Vector.Zero; 
     127            return; 
     128        } 
    70129   maila.Velocity = nopeus; 
    71130 
     131    } 
     132    void LisaaLaskurit() 
     133    { 
     134        pelaajan1Pisteet = LuoPisteLaskuri ( Screen.Left + 100.0, Screen.Top -100.0); 
     135        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     136    } 
     137 
     138    IntMeter LuoPisteLaskuri(double x, double y) 
     139    { 
     140        IntMeter laskuri = new IntMeter(0); 
     141        laskuri.MaxValue = 10; 
     142        Label Naytto = new Label(); 
     143        Naytto.BindTo(laskuri); 
     144        Naytto.X = x; 
     145        Naytto.Y = y; 
     146        Naytto.TextColor = Color.Red; 
     147        Add(Naytto); 
     148        return laskuri; 
     149    } 
     150    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     151    { 
     152        if (kohde == oikeareuna) 
     153        { 
     154            pelaajan1Pisteet.Value += 1; 
     155 
     156        } 
     157        else if (kohde == vasenreuna) 
     158        { 
     159            pelaajan2Pisteet.Value += 1; 
     160        } 
     161    } 
     162 
    72163} 
    73 } 
Note: See TracChangeset for help on using the changeset viewer.