Changeset 1336 for 2010/30


Ignore:
Timestamp:
2010-07-27 14:58:47 (9 years ago)
Author:
paaaanro
Message:
 
File:
1 edited

Legend:

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

    r1316 r1336  
    55 
    66public class Peli : PhysicsGame 
    7 {PhysicsObject pallo; 
     7{ 
     8    Vector nopeusylos = new Vector(0, 200); 
     9    Vector nopeusalas = new Vector(0, -200); 
     10     
     11    PhysicsObject pallo; 
     12    PhysicsObject maila1; 
     13    PhysicsObject maila2; 
     14 
     15    IntMeter pelaajan1pisteet; 
     16    IntMeter pelaajan2pisteet; 
     17 
     18 
    819    protected override void Begin() 
    920    { 
     
    1122        AsetaOhjaimet(); 
    1223        AloitaPeli(); 
     24        LisaaLaskurit(); 
    1325    } 
    14      
     26 
    1527 
    1628    void Luokentta() 
     
    2234        pallo.Y = 0.0; 
    2335 
    24         LuoMaila(Level.Left + 20.0, 0.0); 
    25         LuoMaila(Level.Right - 20.0, 0.0); 
    26          
     36        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     37        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     38 
    2739        Level.CreateBorders(1.0, false); 
    2840        pallo.Restitution = 1.0; 
     
    3143        Camera.ZoomToLevel(); 
    3244 
    33          
    34          
     45 
     46 
    3547    } 
    3648    void AloitaPeli() 
    37     {   
     49    { 
    3850 
    3951        Vector impulssi = new Vector(500.0, 0.0); 
    4052        pallo.Hit(impulssi); 
    4153    } 
    42     void LuoMaila(double x, double y) 
     54    PhysicsObject LuoMaila(double x, double y) 
    4355    { 
    4456        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    4860        maila.Restitution = 1.0; 
    4961        Add(maila); 
     62        return maila; 
    5063    } 
    5164 
     
    5366    { 
    5467        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "poistu"); 
    55         Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta Mailaa Ylos"); 
    56         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 
     68        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta Mailaa Ylos", maila1, nopeusylos); 
     69        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     70        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusalas); 
     71        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     72 
     73        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusylos); 
     74        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     75        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusalas); 
     76        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     77 
     78        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     79 
     80    } 
     81    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     82 
     83    { 
     84        if ( ( nopeus.Y < 0) && (maila.Bottom < Level.Bottom) ) 
     85        { 
     86            maila.Velocity = Vector.Zero; 
     87            return; 
     88        } 
     89        if( (nopeus.Y > 0) && (maila.Top > Level.Top) )  
     90        { 
     91            maila.Velocity = Vector.Zero; 
     92            return; 
     93        } 
     94 
     95        maila.Velocity = nopeus; 
     96    } 
     97 
     98    void LisaaLaskurit() 
     99    { 
     100        pelaajan1pisteet = LuoPistelaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     101        pelaajan2pisteet = LuoPistelaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     102    } 
     103 
     104    IntMeter LuoPistelaskuri(double x, double y) 
     105    { 
     106        IntMeter laskuri = new IntMeter(0); 
     107        laskuri.MaxValue = 10; 
     108        Label naytto = new Label(); 
     109        naytto.BindTo(laskuri); 
     110        naytto.X = x; 
     111        naytto.Y = y; 
     112        naytto.TextColor = Color.White; 
     113        Add(naytto); 
     114        return laskuri; 
    57115 
    58116    } 
Note: See TracChangeset for help on using the changeset viewer.