Changeset 1343 for 2010/30


Ignore:
Timestamp:
2010-07-27 15:01:23 (9 years ago)
Author:
pesosant
Message:

Hauska pelii ds

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/pesosant/Pong/Peli.cs

    r1300 r1343  
    66public class Peli : PhysicsGame 
    77{ 
     8    Vector nopeusYlos = new Vector(0, 200); 
     9    Vector nopeusAlas = new Vector(0, -200); 
     10 
    811    PhysicsObject pallo; 
     12    PhysicsObject maila1; 
     13    PhysicsObject maila2; 
     14     
     15     
     16    IntMeter pelaajan1Pisteet; 
     17    IntMeter pelaajan2Pisteet; 
    918 
    1019    protected override void Begin() 
    1120    { 
     21        LuoKentta(); 
     22        LisaaLaskurit(); 
     23        AsetaOhjaimet(); 
     24        AloitaPeli(); 
    1225 
    13      LuoKentta(); 
    14      AloitaPeli(); 
    15      
     26 
    1627        Vector impulssi = new Vector(500.0, 0.0); 
    1728        pallo.Hit(impulssi); 
     
    2031    void LuoKentta() 
    2132    { 
    22          
    23  
     33        AddCollisionHandler(pallo, KasittelePallonTormays); 
    2434 
    2535        pallo = new PhysicsObject(40.0, 40.0); 
     
    3040        Add(pallo); 
    3141 
    32         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    33         maila.Shape = Shapes.Rectangle; 
    34         maila.X = Level.Left + 20.0; 
    35         maila.Y = 0.0; 
    36         maila.Restitution = 1.0; 
    37         Add(maila); 
     42        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     43        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3844 
    3945 
    40         Level.CreateBorders(1.0, false); 
     46        Level.CreateBorders(1.0, false ); 
    4147        Level.BackgroundColor = Color.Black; 
    4248 
    4349        Camera.ZoomToLevel(); 
     50 
    4451    } 
     52 
     53    PhysicsObject LuoMaila( double x, double y) 
     54    {   
     55        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     56        maila.Shape = Shapes.Rectangle; 
     57        maila.X = x; 
     58        maila.Y = y; 
     59        maila.Restitution = 1.0; 
     60        Add(maila); 
     61        return maila; 
     62     
     63    } 
     64 
    4565 
    4666    void AloitaPeli() 
    4767    { 
     68        Vector impulssi = new Vector(500.0, 0.0); 
     69        pallo.Hit(impulssi); 
    4870    } 
    4971 
     72    void AsetaOhjaimet() 
     73    { 
     74        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     75        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     76         
     77        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     78        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     79         
     80        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     81        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     82         
     83        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     84        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     85         
     86        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     87        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     88 
     89            ControllerOne.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos ); 
     90    ControllerOne.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     91    ControllerOne.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas ); 
     92    ControllerOne.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     93 
     94    ControllerTwo.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos ); 
     95    ControllerTwo.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     96    ControllerTwo.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas ); 
     97    ControllerTwo.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     98 
     99    ControllerOne.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     100    ControllerTwo.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     101      } 
     102 
     103 
     104 
     105 
     106    void LiikutaMailaaYlos(PhysicsObject maila) 
     107    { 
     108        Vector nopeus = new Vector(0, 200); 
     109        maila.Velocity = nopeus; 
     110    } 
     111     
     112 
     113         
     114     
     115     
     116        void PysaytaMaila(PhysicsObject maila) 
     117    { 
     118        maila.Velocity = Vector.Zero; 
     119    } 
     120         
     121     
     122     
     123        void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     124    { 
     125        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     126        { 
     127            maila.Velocity = Vector.Zero; 
     128            return; 
     129        } if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     130        { 
     131            maila.Velocity = Vector.Zero; 
     132            return; 
     133        } 
     134 
     135        maila.Velocity = nopeus; 
     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.White; 
     147           Add(naytto); 
     148           return laskuri; 
     149       } 
     150       void LisaaLaskurit() 
     151       { 
     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       void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     157       { 
     158       } 
     159 
     160 
    50161} 
Note: See TracChangeset for help on using the changeset viewer.