Changeset 4249 for 2013


Ignore:
Timestamp:
2013-06-26 15:01:36 (10 years ago)
Author:
juiitamm
Message:
 
Location:
2013/26/LeeviK
Files:
118 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/26/LeeviK/Pong/Pong/Pong/Pong.cs

    r4202 r4249  
    99public class Pong : PhysicsGame 
    1010{ 
    11     Vector nopeusYlös = new Vector(0, 200); 
    12     Vector nopeusAlas = new Vector(0, 200); 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
    1313 
    1414    PhysicsObject maila1; 
    1515    PhysicsObject maila2; 
    1616    PhysicsObject pallo; 
     17    PhysicsObject vasenReuna; 
     18    PhysicsObject oikeaReuna; 
     19 
     20    IntMeter pelaajan1Pisteet; 
     21    IntMeter pelaajan2Pisteet; 
     22 
    1723    public override void Begin() 
    18     {  
     24    { 
     25        
    1926        LuoKentta(); 
     27        AloitaPeli(); 
    2028        AsetaOhjaimet(); 
    2129        AloitaPeli(); 
     30        LisaaLaskurit(); 
    2231        // TODO: Kirjoita ohjelmakoodisi tähän 
    2332 
    2433 
    25         
     34 
    2635    } 
    2736    void LuoKentta() 
     
    3039        pallo.Shape = Shape.Circle; 
    3140        pallo.X = -200; 
    32         pallo.Restitution = 1.0; 
     41        pallo.Restitution = 2.5; 
    3342        Add(pallo); 
    34         LuoMaila(Level.Left + 20.0, 0.0); 
    35         LuoMaila(Level.Right - 20.0, 0.0); 
     43        AddCollisionHandler(pallo, KasittelePallonTormays); 
     44        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     45        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3646 
    37         Level.CreateBorders(1.0, false); 
     47        vasenReuna = Level.CreateLeftBorder(); 
     48        vasenReuna.Restitution = 1.0; 
     49        vasenReuna.IsVisible = false; 
     50        oikeaReuna = Level.CreateRightBorder(); 
     51        oikeaReuna.Restitution = 1.5; 
     52        oikeaReuna.IsVisible = false; 
     53        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     54        alaReuna.Restitution = 1.0; 
     55        alaReuna.IsVisible = false; 
     56        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     57        yläReuna.Restitution = 1.0; 
     58        yläReuna.IsVisible = false; 
    3859        Level.BackgroundColor = Color.Black; 
    3960        Camera.ZoomToLevel(); 
    4061 
    41     }void AloitaPeli() 
    42     {  Vector impulssi = new Vector(500.0, 200.0); 
     62    } 
     63    void AloitaPeli() 
     64    { 
     65        Vector impulssi = new Vector(500.0, 200.0); 
    4366        pallo.Hit(impulssi); 
    4467    } 
    45     void LuoMaila(double x, double y) 
     68 
     69    PhysicsObject LuoMaila(double x, double y) 
    4670    { 
    4771        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5175        maila.Restitution = 1.0; 
    5276        Add(maila); 
     77        return maila; 
    5378    } 
    5479    void AsetaOhjaimet() 
    5580    { 
    56         Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMaila1Ylos, Pelaaja1: "Liikuta mailaa ylös"); 
    57         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila1, null); 
     81        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     82        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     83        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     84        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    5885 
     86        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     87        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     88        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     89        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     90 
     91        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    5992        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     93 
     94    } 
     95    IntMeter LuoPisteLaskuri(double x, double y) 
     96    { 
     97        IntMeter laskuri = new IntMeter(0); 
     98        laskuri.MaxValue = 10; 
     99         
     100        Label naytto = new Label(); 
     101        naytto.BindTo(laskuri); 
     102        naytto.X = x; 
     103        naytto.Y = y; 
     104        naytto.TextColor = Color.White; 
     105        naytto.BorderColor = Level.BackgroundColor; 
     106        naytto.Color = Level.BackgroundColor; 
     107        Add(naytto); 
     108        
     109        return laskuri; 
     110    } 
     111    void LisaaLaskurit() 
     112    {  
     113    pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     114    pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     115    } 
    60116   
    61     } 
    62     void Asetanopeus(PhysicsObject maila, Vector nopeus) 
     117    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    63118    { 
     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        } 
     129 
    64130        maila.Velocity = nopeus; 
    65131    } 
     132    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     133    { 
     134        if (kohde == oikeaReuna) 
     135            pelaajan1Pisteet.Value += 1; 
     136 
     137        else if (kohde == vasenReuna) 
     138            pelaajan2Pisteet.Value += 1; 
     139           
     140    } 
     141    
     142    
    66143} 
     144 
Note: See TracChangeset for help on using the changeset viewer.