Changeset 8543 for 2017/24/MatiasK


Ignore:
Timestamp:
2017-06-12 15:04:32 (2 years ago)
Author:
npo17_7
Message:
 
Location:
2017/24/MatiasK/Pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2017/24/MatiasK/Pong/Pong/Pong/Pong.cs

    r8503 r8543  
    99public class Pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
     15    PhysicsObject maila1; 
     16    PhysicsObject maila2; 
     17 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
     23     
    1224    public override void Begin() 
    1325    { 
    1426        LuoKentta(); 
    1527        AloitaPeli(); 
     28        AsetaOhjaimet(); 
     29        LisaaLaskurit(); 
    1630 
    1731        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    2943        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3044 
     45        vasenReuna = Level.CreateLeftBorder(); 
     46        vasenReuna.Restitution = 1.0; 
     47        vasenReuna.KineticFriction = 0.0; 
     48        vasenReuna.IsVisible = false; 
    3149 
    32         Level.CreateBorders(1.0, false); 
    33         Level.Background.Color = Color.Crimson; 
     50        oikeaReuna = Level.CreateRightBorder(); 
     51        oikeaReuna.Restitution = 1.0; 
     52        oikeaReuna.KineticFriction = 0.0; 
     53        oikeaReuna.IsVisible = false; 
     54 
     55        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     56        ylaReuna.Restitution = 1.0; 
     57        ylaReuna.KineticFriction = 0.0; 
     58        ylaReuna.IsVisible = false; 
     59 
     60        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     61        alaReuna.Restitution = 1.0; 
     62        alaReuna.IsVisible = false; 
     63        alaReuna.KineticFriction = 0.0; 
     64                         
     65        Level.Background.Color = Color.DarkOrange; 
    3466 
    3567 
     
    4678        return maila; 
    4779    } 
     80 
     81    void LisaaLaskurit() 
     82    { 
     83        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     84        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     85    } 
     86 
     87    IntMeter LuoPisteLaskuri(double x, double y) 
     88    { 
     89        IntMeter laskuri = new IntMeter(0); 
     90        laskuri.MaxValue = 10; 
     91 
     92        Label naytto = new Label(); 
     93        naytto.BindTo(laskuri); 
     94        naytto.X = x; 
     95        naytto.Y = y; 
     96        naytto.TextColor = Color.Blue; 
     97        naytto.BorderColor = Level.BackgroundColor; 
     98        naytto.Color = Level.BackgroundColor; 
     99        Add(naytto); 
     100 
     101        return laskuri; 
     102    } 
     103 
     104    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     105    { 
     106        if (kohde == oikeaReuna) 
     107        { 
     108            pelaajan1Pisteet.Value += 1; 
     109        } 
     110        else if (kohde == vasenReuna) 
     111        { 
     112            pelaajan2Pisteet.Value += 1; 
     113        } 
     114    } 
     115 
     116 
    48117    void AloitaPeli() 
    49118    { 
     
    56125        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja1: Liikuta mailaa ylos", maila1, nopeusYlos); 
    57126        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    58         Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja1: Liikuta maiolaa alas", maila1, nopeusAlas); 
     127        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja1: Liikuta mailaa alas", maila1, nopeusAlas); 
    59128        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    60129 
    61130        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja2: Liikuta mailaa ylos", maila2, nopeusYlos); 
    62131        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    63         Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja2: Liikuta mailaa alas"), maila2, nopeusYlos); 
     132        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja2: Liikuta mailaa alas", maila2, nopeusAlas); 
    64133        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    65134 
     
    70139    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    71140    { 
     141        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     142        { 
     143            maila.Velocity = Vector.Zero; 
     144            return; 
     145        } 
     146        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     147        { 
     148            maila.Velocity = Vector.Zero; 
     149            return; 
     150        } 
     151 
    72152        maila.Velocity = nopeus; 
    73153    } 
Note: See TracChangeset for help on using the changeset viewer.