Changeset 2783


Ignore:
Timestamp:
2012-06-05 09:48:11 (8 years ago)
Author:
osomalab
Message:

Pong peli valmiiksi, neljä mailaa, reset-nappi sun muuta roskaa.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/23/OsamaA/MyTemp/Pong/Pong/Pong/Pong.cs

    r2779 r2783  
    99public class Pong : PhysicsGame 
    1010{ 
    11     Vector nopeusYlos = new Vector(0, 200); 
    12     Vector nopeusAlas = new Vector(0, -200); 
     11    Vector nopeusYlos = new Vector(0, 540); 
     12    Vector nopeusAlas = new Vector(0, -540); 
     13    Vector nopeusVasen = new Vector(-800, 0); 
     14    Vector nopeusOikea = new Vector(800, 0); 
    1315 
    1416    PhysicsObject ball; 
     
    4345        ball.Color = Color.White; 
    4446        ball.X = -200; 
    45         ball.Y = 0; 
     47        ball.Y = -200; 
    4648        ball.Restitution = 1.0; 
    4749        ball.KineticFriction = 0.0; 
     
    4951        Add(ball); 
    5052 
    51         maila1 = LuoMaila ( Level.Left + 20.0, 0.0 ); 
    52         maila2 = LuoMaila ( Level.Right - 20.0, 0.0 ); 
    53         maila3 = LuoMaila2 (Level.Top - 20,0); 
    54         maila4 = LuoMaila2 ( Level.Bottom + 20); 
     53        maila1 = LuoMaila ( Level.Left + 20.0, 0.0, 20.0, 100.0); 
     54        maila2 = LuoMaila ( Level.Right - 20.0, 0.0, 20.0, 100.0 ); 
     55        maila3 = LuoMaila ( 0.0, Level.Bottom + 20.0, 100, 20); 
     56        maila4 = LuoMaila(0.0, Level.Top - 20.0, 100.0, 20.0); 
     57 
     58        maila1.Color = Color.DarkViolet; 
     59        maila2.Color = Color.Yellow; 
     60        maila3.Color = Color.Violet; 
     61        maila4.Color = Color.YellowGreen; 
    5562 
    5663        vasenReuna = Level.CreateLeftBorder(); 
     
    7683    void AloitaPeli () 
    7784    { 
    78         Vector impulssi = new Vector(500.0, 0); 
     85        Vector impulssi = new Vector(250.0, 200.0); 
    7986        ball.Hit(impulssi); 
    8087    } 
    8188 
    82     PhysicsObject LuoMaila( double x, double y ) 
    83     { 
    84         PhysicsObject maila = PhysicsObject.CreateStaticObject(10.0, 100.0); 
     89    PhysicsObject LuoMaila( double x, double y, double z, double xyzo) 
     90    { 
     91        PhysicsObject maila = PhysicsObject.CreateStaticObject(z, xyzo); 
    8592        maila.Shape = Shape.Rectangle; 
    86         maila.Color = Color.White; 
    8793        maila.X = x; 
    8894        maila.Y = y; 
     
    97103        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    98104 
    99         Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "P1:n maila ylös", maila1, nopeusYlos); 
    100         Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    101         Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "P1:n maila alas", maila1, nopeusAlas); 
    102         Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     105        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "P1:n maila ylös", maila1, nopeusYlos); 
     106        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     107        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "P1:n maila alas", maila1, nopeusAlas); 
     108        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     109        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "P1:n maila vasen", maila3, nopeusVasen); 
     110        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila3, Vector.Zero); 
     111        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "P1:n maila oikea", maila3, nopeusOikea); 
     112        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, maila3, Vector.Zero); 
    103113 
    104114        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "P2:n maila ylös", maila2, nopeusYlos); 
     
    106116        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "P2:n maila alas", maila2, nopeusAlas); 
    107117        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     118        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "P2:n maila vasen", maila4, nopeusVasen); 
     119        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila4, Vector.Zero); 
     120        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "P2:n maila oikea", maila4, nopeusOikea); 
     121        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, maila4, Vector.Zero); 
     122        Keyboard.Listen(Key.Enter, ButtonState.Pressed, Reset, null); 
    108123    } 
    109124    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     
    115130        } 
    116131        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     132        { 
     133            maila.Velocity = Vector.Zero; 
     134            return; 
     135        } 
     136        if ((nopeus.X > 0) && (maila.Right > Level.Right)) 
     137        { 
     138            maila.Velocity = Vector.Zero; 
     139            return; 
     140        } 
     141        if ((nopeus.X < 0) && (maila.Left < Level.Left)) 
    117142        { 
    118143            maila.Velocity = Vector.Zero; 
     
    152177            pelaajan2pisteet.Value += 1; 
    153178        } 
    154         if (kohde == oikeaReuna) 
     179        else if (kohde == oikeaReuna) 
    155180        { 
    156181            pelaajan1pisteet.Value += 1; 
    157182        } 
    158         if (kohde == ylaReuna) 
     183        else if (kohde == ylaReuna) 
    159184        { 
    160185            pelaajan1pisteet.Value += 1; 
    161186        } 
    162         if (kohde == alaReuna) 
     187        else if (kohde == alaReuna) 
    163188        { 
    164189            pelaajan2pisteet.Value += 1; 
    165190        } 
     191 
     192        if (pelaajan1pisteet.Value > 9) 
     193        { 
     194            PhysicsEnabled = false; 
     195            MessageDisplay.Add("Pelaaja 1 voitti!"); 
     196             
     197        } 
     198        else if (pelaajan2pisteet.Value > 9) 
     199        { 
     200            PhysicsEnabled = false; 
     201            MessageDisplay.Add("Pelaaja 2 voitti!"); 
     202        } 
     203 
     204    } 
     205    void Reset() 
     206    { 
     207        pelaajan1pisteet.Value = 0; 
     208        pelaajan2pisteet.Value = 0; 
     209        ball.Destroy(); 
     210        ball = new PhysicsObject(20.0, 20.0); 
     211        ball.Shape = Shape.Circle; 
     212        ball.Color = Color.White; 
     213        ball.X = -200; 
     214        ball.Y = -200; 
     215        ball.Restitution = 1.0; 
     216        ball.KineticFriction = 0.0; 
     217        ball.CanRotate = true; 
     218        Add(ball); 
     219        AddCollisionHandler(ball, KasittelePallonTormays); 
     220        PhysicsEnabled = true; 
     221        AloitaPeli(); 
    166222    } 
    167223} 
Note: See TracChangeset for help on using the changeset viewer.