Changeset 4221 for 2013


Ignore:
Timestamp:
2013-06-25 14:55:04 (10 years ago)
Author:
juskovan
Message:

Talletus.

Location:
2013/26/JustusK
Files:
19 added
1 edited

Legend:

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

    r4189 r4221  
    1313 
    1414    PhysicsObject pallo; 
    15  
    1615    PhysicsObject maila1; 
    1716    PhysicsObject maila2; 
     17    PhysicsObject vasenReuna; 
     18    PhysicsObject oikeaReuna; 
     19 
     20    IntMeter pelaajan1Pisteet; 
     21    IntMeter pelaajan2Pisteet; 
    1822 
    1923    public override void Begin() 
    2024       { 
    2125        LuoKentta(); 
    22         AsetaOhjaimet();   
     26        AsetaOhjaimet(); 
     27        LisaaLaskurit(); 
    2328        AloitaPeli(); 
    24  
    25            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    2629       } 
    27     void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    28         { 
    29         maila.Velocity = nopeus; 
    30         } 
    3130    void LuoKentta() 
    3231    { 
     
    3635        pallo.Y = 0.0; 
    3736        pallo.Restitution = 1.0; 
     37        pallo.KineticFriction = 0.0; 
     38        pallo.MomentOfInertia = Double.PositiveInfinity; 
    3839        Add(pallo); 
     40        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3941 
    4042        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    4143        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4244 
    43         Level.CreateBorders(1.0, false); 
     45        vasenReuna = Level.CreateLeftBorder(); 
     46        vasenReuna.Restitution = 1.0; 
     47        vasenReuna.IsVisible = false; 
     48        oikeaReuna = Level.CreateRightBorder(); 
     49        oikeaReuna.Restitution = 1.0; 
     50        oikeaReuna.IsVisible = false; 
     51        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     52        alaReuna.Restitution = 1.0; 
     53        alaReuna.IsVisible = false; 
     54        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     55        ylaReuna.Restitution = 1.0; 
     56        ylaReuna.IsVisible = false; 
    4457        Level.BackgroundColor = Color.Black; 
    4558 
    4659        Camera.ZoomToLevel(); 
    4760     } 
    48  
    49     void AsetaOhjaimet() 
    50     { 
    51         Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    52         Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    53      
    54         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    55     } 
    56          
    5761        PhysicsObject LuoMaila(double x, double y) 
    5862        { 
     
    6468          Add(maila); 
    6569          return maila; 
    66     } 
    67         
     70        } 
    6871    void AloitaPeli() 
    6972    { 
    7073            Vector impulssi = new Vector(500.0, 0.0); 
    7174            pallo.Hit(impulssi); 
    72      
    7375    } 
     76    void AsetaOhjaimet() 
     77    { 
     78        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     79        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     80        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusAlas); 
     81        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    7482 
     83        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     84        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     85        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusAlas); 
     86        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     87 
     88        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     89        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     90       } 
     91 
     92    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     93    { 
     94      if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     95        { 
     96           maila.Velocity = Vector.Zero; 
     97          return; 
     98        } 
     99        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     100     { 
     101         maila.Velocity = Vector.Zero; 
     102         return; 
     103     } 
     104        maila.Velocity = nopeus; 
     105    } 
     106    void LisaaLaskurit() 
     107        { 
     108        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     109        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     110        } 
     111    IntMeter LuoPisteLaskuri (double x, double y) 
     112        { 
     113        IntMeter laskuri = new IntMeter(0); 
     114        laskuri.MaxValue = 10; 
     115 
     116        Label naytto = new Label(); 
     117        naytto.BindTo(laskuri); 
     118        naytto.X = x; 
     119        naytto.Y = y; 
     120        naytto.TextColor = Color.Blue; 
     121        naytto.BorderColor = Level.BackgroundColor; 
     122        naytto.Color = Level.BackgroundColor; 
     123        Add(naytto); 
     124        return laskuri; 
     125        } 
     126    void KasittelePallonTormays (PhysicsObject pallo, PhysicsObject kohde) 
     127   { 
     128   if (kohde == oikeaReuna) 
     129   { 
     130       pelaajan1Pisteet.Value +=1; 
     131   } 
     132   else if (kohde == vasenReuna) 
     133       { 
     134           pelaajan2Pisteet.Value += 1; 
     135   }     
     136 
     137  } 
    75138} 
Note: See TracChangeset for help on using the changeset viewer.