Changeset 2507


Ignore:
Timestamp:
2011-08-02 14:59:43 (8 years ago)
Author:
akjualha
Message:

Talletus.

Location:
2011/31/AkuH
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2011/31/AkuH/Pong/Pong/Peli.cs

    r2474 r2507  
    1010{ 
    1111    PhysicsObject pallo; 
     12    IntMeter Pelaajan1Pisteet; 
     13    IntMeter Pelaajan2Pisteet; 
     14    Vector nopeusYlos = new Vector(0, 200); 
     15    Vector nopeusAlas = new Vector(0, -200); 
    1216 
    13       public override void Begin() 
     17    PhysicsObject maila1; 
     18    PhysicsObject maila2; 
     19 
     20    PhysicsObject vasenreuna; 
     21    PhysicsObject oikeareuna; 
     22 
     23    public override void Begin() 
    1424    { 
    1525        LuoKentta(); 
    1626        AsetaOhjaimet(); 
    17                       // TODO: Kirjoita ohjelmakoodisi tähän 
     27        // TODO: Kirjoita ohjelmakoodisi tähän 
     28 
    1829        AloitaPeli(); 
     30        LisaaLaskurit(); 
    1931 
    20          
    21   
     32 
     33 
     34 
     35 
     36 
    2237    } 
    2338 
     
    3045        pallo.Y = 0.0; 
    3146 
    32         LuoMaila(Level.Left + 20.0, 0.0); 
    33         LuoMaila(Level.Right - 20.0, 0.0); 
     47        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     48        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3449 
    35         Level.CreateBorders(1.0, false); 
     50        vasenreuna = Level.CreateLeftBorder(); 
     51        vasenreuna.Restitution = 1.0; 
     52        vasenreuna.IsVisible = false; 
     53        oikeareuna = Level.CreateRightBorder(); 
     54        oikeareuna.Restitution = 1.0; 
     55        oikeareuna.IsVisible = false; 
     56        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     57        ylaReuna.Restitution = 1.0; 
     58        ylaReuna.IsVisible = false; 
     59        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     60        alaReuna.Restitution = 1.0; 
     61        alaReuna.IsVisible = false; 
    3662        pallo.Restitution = 1.0; 
    37         Level.BackgroundColor = Color.Black; 
     63 
     64        Level.BackgroundColor = Color.DarkRed; 
    3865        Camera.ZoomToLevel(); 
    3966 
    40          
     67        AddCollisionHandler(pallo, KasittelePallonTormays); 
    4168 
    4269    } 
     
    4774        pallo.Hit(impulssi); 
    4875    } 
    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); 
     
    5684        Add(maila); 
    5785 
    58          
     86        return maila; 
    5987    } 
    6088 
    6189    void AsetaOhjaimet() 
    6290    { 
     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.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusAlas); 
     94        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     95 
     96        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     97        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     98        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusAlas); 
     99        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     100 
     101        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "NäytäOhjeet"); 
    63102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    64103 
    65         Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös"); 
     104 
     105    } 
     106    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     107    { 
     108        maila.Velocity = nopeus; 
     109        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     110        { 
     111            maila.Velocity = Vector.Zero; 
     112            return; 
     113        } 
     114        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     115        { 
     116            maila.Velocity = Vector.Zero; 
     117            return; 
     118 
     119        } 
     120 
     121        maila.Velocity = nopeus; 
    66122    } 
    67123 
    68 }    
    69      
    70124 
    71125 
     126 
     127 
     128    IntMeter LuoPisteLaskuri(double x, double y) 
     129    { 
     130        IntMeter laskuri = new IntMeter(0); 
     131        laskuri.MaxValue = 10; 
     132        Label naytto = new Label(); 
     133        naytto.BindTo(laskuri); 
     134        naytto.X = x; 
     135        naytto.Y = y; 
     136        naytto.TextColor = Color.DarkCyan; 
     137        naytto.BorderColor = Level.BackgroundColor; 
     138        naytto.Color = Level.BackgroundColor; 
     139        Add(naytto); 
     140        return laskuri; 
     141    } 
     142    void LisaaLaskurit() 
     143    { 
     144        Pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     145        Pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     146    } 
     147    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     148    { 
     149        if (kohde == oikeareuna) 
     150            Pelaajan1Pisteet.Value += 1; 
     151 
     152        else if (kohde == vasenreuna) 
     153            Pelaajan2Pisteet.Value += 1; 
     154    } 
     155} 
Note: See TracChangeset for help on using the changeset viewer.