Changeset 7763 for 2016/27/TuukkaH


Ignore:
Timestamp:
2016-07-05 11:27:59 (3 years ago)
Author:
karkaite
Message:
 
Location:
2016/27/TuukkaH/Pong
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/TuukkaH/Pong/Pong/Pong/Pong.cs

    r7722 r7763  
    1010     
    1111{ 
     12    Vector nopeusYlos = new Vector(0, 200); 
     13    Vector nopeusAlas = new Vector(0, -200); 
     14 
    1215    PhysicsObject pallo; 
     16 
     17    PhysicsObject maila1; 
     18    PhysicsObject maila2; 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
     21 
     22 
    1323    public override void Begin() 
    14         { 
     24    { 
    1525        LuoKentta(); 
     26        AsetaOhjaimet(); 
     27        LisaaLaskurit(); 
    1628        AloitaPeli(); 
    17         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");  
    18          
    19          
    20  
    2129    } 
    2230 
    2331 
    2432    void LuoKentta() 
     33     
    2534    { 
     35        maila1=LuoMaila(Level.Left + 20.0, 0.0); 
     36        maila2=LuoMaila(Level.Right -20.0, 0.0); 
    2637        pallo = new PhysicsObject(40.0, 40.0); 
    2738        Add(pallo); 
    2839        pallo.X = -0.0; 
    2940        pallo.Y = 0.0; 
    30          
    31          
    32         Level.CreateBorders(1.0, false); 
     41        AddCollisionHandler(pallo, KasittelePallonTormays); 
     42 
     43        PhysicsObject vasenReuna = Level.CreateLeftBorder(); 
     44        vasenReuna.Restitution = 1.0; 
     45        vasenReuna.IsVisible = false; 
     46        PhysicsObject 
    3347        pallo.Restitution = 1.0; 
    3448        Level.Background.Color = Color.Blue; 
     
    3650        Camera.ZoomToLevel(); 
    3751        // TODO: Kirjoita ohjelmakoodisi tähän 
    38         pallo.Shape = Shape.Circle; 
     52        pallo.Shape = Shape.Star; 
    3953        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    40         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    41         maila.Shape = Shape.Rectangle; 
    42         maila.X = Level.Left + 20.0; 
    43         maila.Y = 0.0; 
    44         maila.Restitution = 1.0; 
    45         Add(maila); 
    46         maila.Color = Color.Aqua; 
    47         maila.Y = -0.0; 
    48        maila.X = Level.Left-20.0; 
    49  
     54         
     55         
    5056 
    5157 
     
    5864    } 
    5965 
     66    PhysicsObject LuoMaila(double x, double y) 
     67    { 
     68        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     69        maila.Shape = Shape.Rectangle; 
     70        maila.X = x; 
     71        maila.Y = y; 
     72        maila.Restitution = 1.0; 
     73        Add(maila); 
     74        maila.Color = Color.Aqua; 
     75        return maila; 
     76 
     77 
     78    } 
     79 
     80    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     81    { 
     82        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     83        { 
     84            maila.Velocity = Vector.Zero; 
     85            return; 
     86        } 
     87        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     88        { 
     89            maila.Velocity = Vector.Zero; 
     90            return; 
     91        } 
     92 
     93        maila.Velocity = nopeus; 
     94    } 
     95 
     96    void AsetaOhjaimet() 
     97    { 
     98        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     99        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     100        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     101        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     102 
     103        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     104        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     105        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     106        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     107 
     108        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     109        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     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    } 
     116    IntMeter LuoPisteLaskuri(double x, double y) 
     117    { 
     118        IntMeter laskuri = new IntMeter(0); 
     119        laskuri.MaxValue = 10; 
     120 
     121        Label naytto = new Label(); 
     122        naytto.BindTo(laskuri); 
     123        naytto.X = x; 
     124        naytto.Y = y; 
     125        naytto.TextColor = Color.Aqua; 
     126        naytto.BorderColor = Level.Background.Color; 
     127        naytto.Color = Level.Background.Color; 
     128        Add(naytto); 
     129 
     130        return laskuri; 
     131 
     132        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     133{ 
     134 
     135} 
     136    } 
    60137} 
    61138 
Note: See TracChangeset for help on using the changeset viewer.