Changeset 9074 for 2017


Ignore:
Timestamp:
2017-07-24 15:04:44 (23 months ago)
Author:
npo17_65
Message:
 
Location:
2017/30/LuukasM/Pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2017/30/LuukasM/Pong/Pong/Pong/Pong.cs

    r9045 r9074  
    1010{ 
    1111    PhysicsObject Pallo; 
     12 
     13 
     14    Vector nopeusYlos = new Vector(0, 200); 
     15    Vector nopeusAlas = new Vector(0, -200); 
     16 
     17    PhysicsObject maila1; 
     18    PhysicsObject maila2; 
     19 
     20    IntMeter pelaajan1Pisteet; 
     21    IntMeter pelaajan2Pisteet; 
     22 
    1223    public override void Begin() 
    1324    { 
    1425        LuoKentta(); 
     26        AsetaOhjaimet(); 
     27        LisaaLaskurit(); 
    1528        AloitaPeli(); 
    16         
    17          
     29                       
    1830    } 
    1931 
     
    2133    { 
    2234        Pallo = new PhysicsObject(40.0, 40.0); 
     35        AddCollisionHandler(Pallo, KasittelePallonTormays); 
    2336        Add(Pallo); 
    2437        Pallo.Shape = Shape.Circle; 
     
    2639        Pallo.X = -200.0; 
    2740        Pallo.Y = 0.0; 
    28  
    29         LuoMaila(Level.Left + 20.0, 0.0); 
    30         LuoMaila(Level.Right - 20.0, 0.0); 
    31  
    32          
    33          
    34          
    35  
    36  
    37         Level.CreateBorders(1.0, false); 
    3841        Level.Background.Color = Color.Black; 
    3942        Pallo.Restitution = 1.0; 
    4043        Camera.ZoomToLevel(); 
     44 
     45 
     46        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     47        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     48 
     49    
     50        PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     51        vasenReuna.Restitution = 1.0; 
     52        vasenReuna.IsVisible = false; 
     53         
     54 
     55        PhysicsObject oikeaReuna = Level.CreateRightBorder(); 
     56        oikeaReuna.Restitution = 1.0; 
     57        oikeaReuna.IsVisible = false; 
     58 
     59        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     60        alaReuna.Restitution = 1.0; 
     61        alaReuna.IsVisible = false; 
     62 
     63 
     64        PhysicsObject ylaReuna = Level.CreateTopBorder; 
     65        ylaReuna.Restitution = 1.0; 
     66        ylaReuna.IsVisible = false; 
     67         
    4168 
    4269     
     
    5077    } 
    5178 
    52     void LuoMaila(double x, double y) 
     79    PhysicsObject LuoMaila(double x, double y) 
    5380    { 
    5481        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5885        maila.Restitution = 1.0; 
    5986        Add(maila); 
     87        return maila; 
    6088    } 
     89 
    6190    void AsetaOhjaimet() 
    6291    { 
    63         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     92        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos); 
     93        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     94        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     95        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     96 
     97 
     98        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     99        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     100        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     101        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     102         
     103           
     104            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     105    } 
     106    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     107    { 
     108        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     109        { 
     110            maila.Velocity = Vector.Zero; 
     111            return; 
     112        } 
     113        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     114        { 
     115            maila.Velocity = Vector.Zero; 
     116            return; 
     117        } 
     118         
     119         
     120        maila.Velocity = nopeus; 
    64121    } 
    65122 
     123    void LisaaLaskurit() 
     124    { 
     125        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     126        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     127   
     128    } 
    66129 
     130    IntMeter LuoPisteLaskuri(double x, double y) 
     131    { 
     132        IntMeter laskuri = new IntMeter(0); 
     133        laskuri.MaxValue = 10; 
    67134 
    68      
     135        Label naytto = new Label(); 
     136        naytto.BindTo(laskuri); 
     137        naytto.X = x; 
     138        naytto.Y = y; 
     139        naytto.TextColor = Color.White; 
     140        naytto.BorderColor = Level.Background.Color; 
     141        naytto.Color = Level.Background.Color; 
     142        Add(naytto); 
     143 
     144        return laskuri; 
     145    } 
     146    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde 
     147    { 
     148        if (kohde == oikeaReuna) 
     149        { 
     150            pelaajan1Pisteet.Value += 1; 
     151        } 
     152        else if (kohde == vasenReuna) 
     153        { 
     154            pelaajan2Pisteet.Value += 1; 
     155        } 
     156 
     157    } 
     158 
    69159} 
Note: See TracChangeset for help on using the changeset viewer.