Changeset 3448


Ignore:
Timestamp:
2012-07-02 14:56:34 (8 years ago)
Author:
henmatma
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/27/HenriM/Pong/Pong/Pong/Pong.cs

    r3428 r3448  
    99public class Pong : PhysicsGame 
    1010{ 
     11 
     12    Vector nopeusYlos = new Vector(0, 200); 
     13    Vector nopeusAlas = new Vector(0, -200); 
     14 
    1115    PhysicsObject pallo; 
     16    PhysicsObject maila1; 
     17    PhysicsObject maila2; 
     18 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
    1221 
    1322    public override void Begin() 
    1423    { 
    1524        LuoKentta(); 
     25        AsetaOhjaimet(); 
     26        LisaaLaskurit(); 
    1627        AloitaPeli(); 
    17  
    18  
    19         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    2028    } 
    2129 
     
    3038    Add(pallo); 
    3139 
    32     PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    33     maila.Shape = Shape.Rectangle; 
    34     maila.X = Level.Left + 20.0; 
    35     maila.Y = 0.0; 
    36     maila.Restitution = 1.0; 
    37     Add(maila); 
     40    maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     41    maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3842 
    39     Level.CreateBorders(1.0, false); 
     43    PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     44    vasenReuna.Restitution = 1.0; 
     45    vasenReuna.IsVisible = false; 
     46 
     47    PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
     48    oikeaReuna.Restitution = 1.0; 
     49    oikeaReuna.IsVisible = false; 
     50 
    4051    Level.BackgroundColor = Color.Black; 
    4152    Camera.ZoomToLevel(); 
     53    AddCollisionHandler(pallo, KasittelePallonTormays); 
    4254 
    43  
    44     Add(pallo); 
    4555} 
    4656 
     
    5161    } 
    5262 
     63    PhysicsObject LuoMaila(double x, double y) 
     64    { 
     65        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     66        maila.Shape = Shape.Rectangle; 
     67        maila.X = x; 
     68        maila.Y = y; 
     69        maila.Restitution = 1.0; 
     70        Add(maila); 
     71        return maila; 
     72    } 
     73 
     74    void AsetaOhjaimet() 
     75    { 
     76        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     77        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     78        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     79        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     80 
     81        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     82        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     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, ConfirmExit, "Lopeta peli"); 
     88    } 
     89 
     90    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     91    { 
     92        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     93        { 
     94            maila.Velocity = Vector.Zero; 
     95            return; 
     96        } 
     97 
     98        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     99        { 
     100            maila.Velocity = Vector.Zero; 
     101            return; 
     102        } 
     103 
     104        maila.Velocity = nopeus; 
     105    } 
     106 
     107    void LisaaLaskurit() 
     108    { 
     109        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     110        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     111    } 
     112 
     113    IntMeter LuoPisteLaskuri(double x, double y) 
     114    { 
     115        IntMeter laskuri = new IntMeter(0); 
     116        laskuri.MaxValue = 10; 
     117 
     118        Label naytto = new Label(); 
     119        naytto.BindTo(laskuri); 
     120        naytto.X = x; 
     121        naytto.Y = y; 
     122        naytto.TextColor = Color.White; 
     123        naytto.BorderColor = Level.BackgroundColor; 
     124        naytto.Color = Level.BackgroundColor; 
     125        Add(naytto); 
     126 
     127        return laskuri; 
     128    } 
     129 
     130    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     131    { 
     132 
     133    } 
     134 
    53135} 
Note: See TracChangeset for help on using the changeset viewer.