Changeset 7716 for 2016/27


Ignore:
Timestamp:
2016-07-04 14:54:19 (3 years ago)
Author:
karkaite
Message:
 
Location:
2016/27/DanielL/Pong
Files:
6 edited

Legend:

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

    r7689 r7716  
    99public class Pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
    1113    PhysicsObject pallo; 
     14 
     15    PhysicsObject maila1; 
     16    PhysicsObject maila2; 
    1217    public override void Begin() 
    1318    { 
    1419        LuoKentta(); 
    1520        Aloitapeli(); 
     21        AsetaOhjaimet(); 
     22        // TODO: Kirjoita ohjelmakoodisi tähän 
    1623 
    17         // TODO: Kirjoita ohjelmakoodisi tähän 
    18         
    19       
    20        
    2124 
    22         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     25 
     26 
     27    } 
     28    void AsetaOhjaimet() 
     29    { 
     30        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     31        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     32 
    2333        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     34        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     35        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     36 
     37        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     38        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     39        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     40        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     41 
     42        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     43 
    2444    } 
     45 
    2546    void LuoKentta() 
    2647    { 
     
    3152        pallo.Y = 0.0; 
    3253        pallo.Restitution = 1.0; 
     54        pallo.Color = Color.Green; 
    3355 
    34         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    35         maila.Shape = Shape.Rectangle; 
    36         maila.X = Level.Left + 20.0; 
    37         maila.Y = 0.0; 
    38         maila.Restitution = 1.0; 
    39         Add(maila); 
    40         PhysicsObject maila2 = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    41         maila2.Shape = Shape.Rectangle; 
    42         maila2.X = Level.Right + -20.0; 
    43         maila2.Y = 0.0; 
    44         maila2.Restitution = 1.0; 
    45         Add(maila2); 
     56      maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     57      maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4658 
     59        
    4760        Level.CreateBorders(1.0, true); 
    4861        Level.Background.Color = Color.Black; 
     
    5568        Vector impulssi = new Vector(500.0, 0.0); 
    5669        pallo.Hit(impulssi); 
    57      } 
     70    } 
    5871 
    5972 
    6073 
     74 
     75 
     76 
     77    void PysaytaMaila(PhysicsObject maila) 
     78    { 
     79        Vector nopeus = Vector.Zero; 
     80        maila.Velocity = nopeus; 
     81    } 
     82    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     83    { 
     84 
     85 
     86 
     87        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     88        { 
     89            maila.Velocity = Vector.Zero; 
     90            return; 
     91        } 
     92            if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     93            { 
     94                maila.Velocity = Vector.Zero; 
     95                return; 
     96            } 
     97            
     98 
     99        maila.Velocity = nopeus; 
     100    } 
     101    PhysicsObject LuoMaila(double x, double y) 
     102    { 
     103        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     104        maila.Shape = Shape.Rectangle; 
     105        maila.X = x; 
     106        maila.Y = y; 
     107        maila.Restitution = 1.0; 
     108        Add(maila); 
     109        return maila; 
     110    } 
    61111} 
Note: See TracChangeset for help on using the changeset viewer.