Changeset 7848 for 2016/27


Ignore:
Timestamp:
2016-07-06 10:44:05 (3 years ago)
Author:
karkaite
Message:
 
Location:
2016/27/ValtteriM
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/ValtteriM/Pingpok/Pingpok/Pingpok/Pingpok.cs

    r7715 r7848  
    99public class Pingpok : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
     15 
     16    PhysicsObject maila1; 
     17    PhysicsObject maila2; 
     18 
     19 
     20    PhysicsObject vasenReuna; 
     21    PhysicsObject oikeaReuna; 
     22 
     23 
     24    IntMeter pelaajan1Pisteet; 
     25    IntMeter pelaajan2Pisteet; 
     26 
     27 
    1228    public override void Begin() 
    1329    { 
    1430      LuoKentta(); 
    1531        AsetaOhjaimet(); 
     32        LisaaLaskurit(); 
    1633        AloitaPeli(); 
    17  
    1834       
    1935      
     
    3046        pallo.X = -200.0; 
    3147        pallo.Y = 0.0; 
    32         pallo.Restitution = 1.0; 
     48        pallo.Restitution = 1.0; AddCollisionHandler(pallo, KasittelePallonTormays); 
    3349 
    34         LuoMaila(Level.Left + 20.0, 0.0); 
    35         LuoMaila(Level.Right + 20.0, 0.0); 
    3650 
    37         Level.CreateBorders(1.0, false); 
     51 
     52        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     53 maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     54 
     55         vasenReuna = Level.CreateLeftBorder(); 
     56        vasenReuna.Restitution = 1.0; 
     57        vasenReuna.IsVisible = false; 
     58         oikeaReuna = Level.CreateRightBorder(); 
     59        oikeaReuna.Restitution = 1.0; 
     60        oikeaReuna.IsVisible = false; 
     61        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     62        alaReuna.Restitution = 1.0; 
     63        alaReuna.IsVisible = false; 
     64        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     65        ylaReuna.Restitution = 1.0; 
     66        ylaReuna.IsVisible = false; 
    3867        Level.Background.Color = Color.Gold; 
    3968 
     
    4776    } 
    4877 
    49     void LuoMaila(double x, double y) 
     78    PhysicsObject LuoMaila(double x, double y) 
    5079    { 
    5180        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5584        maila.Restitution = 1.0; 
    5685        Add(maila); 
     86        return maila; 
     87    } 
     88 
     89    void AsetaOhjaimet(){ 
     90        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa Ylös", maila1, nopeusYlos); 
     91        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     92        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     93 
     94        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     95        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     96        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     97        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     98 
     99        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     100 
     101 
     102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     103 
     104 } 
     105       void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     106    { 
     107        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     108        { 
     109            maila.Velocity = Vector.Zero; 
     110            return; 
     111        } 
     112            if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     113            { 
     114                maila.Velocity = Vector.Zero; 
     115                return; 
     116            } 
     117             
     118        maila.Velocity = nopeus; 
     119    } 
     120 
     121    void LisaaLaskurit() 
     122    { 
     123        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     124        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     125 
    57126 
    58127    } 
    59128 
    60     void AsetaOhjaimet(){ 
    61         Keyboard.Listen(Key.A, ButtonState.Down LiikutaMaila1Ylos, "Pelaaja 1: Liikuta mailaa Ylös"); 
    62         Keyboard.Listen 
     129    IntMeter LuoPisteLaskuri(double x, double y) 
     130    { 
     131        IntMeter laskuri = new IntMeter(0); 
     132        laskuri.MaxValue = 10; 
    63133 
    64         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     134        Label naytto = new Label(); 
     135        naytto.BindTo(laskuri); 
     136        naytto.X = x; 
     137        naytto.Y = y; 
     138        naytto.TextColor = Color.White; 
     139        naytto.BorderColor = Level.Background.Color; 
     140        naytto.Color = Level.Background.Color; 
     141        Add(naytto); 
    65142 
     143        return laskuri; 
     144    } 
     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        } 
    66156    } 
    67157} 
Note: See TracChangeset for help on using the changeset viewer.