Changeset 1091 for 2010/27


Ignore:
Timestamp:
2010-07-06 14:23:12 (9 years ago)
Author:
paaaanro
Message:

pomg on valmis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/viaawipi/pong/Peli.cs

    r1064 r1091  
    66public class Peli : PhysicsGame 
    77{ 
     8    Vector nopeusylos = new Vector(0.0, 500.0); 
     9    Vector nopeusalas = new Vector(0.0, -500.0); 
     10     
     11    PhysicsObject vasenreuna; 
     12    PhysicsObject oikeareuna; 
     13 
    814    PhysicsObject pallo; 
     15    PhysicsObject maila1; 
     16    PhysicsObject maila2; 
    917 
     18    IntMeter pelaajan1pisteet; 
     19    IntMeter pelaajan2pisteet; 
    1020    protected override void Begin() 
    1121    { 
    1222        //TODO: Alusta peli tässä 
    1323        LuoKentta(); 
     24        asetaohjaimet(); 
     25        lisaalaskurit(); 
    1426        aloitapeli(); 
    15          
    16         
    1727    } 
    1828 
     
    2636        pallo.Restitution = 1.0; 
    2737 
    28         luomaila(Level.Left + 50.0,0); 
    29         luomaila(Level.Right - 50.0,0); 
     38        maila1 = luomaila(Level.Left + 50.0, 0, Angle.Degrees(270)); 
     39        maila2 = luomaila(Level.Right - 50.0, 0, Angle.Degrees(90)); 
     40 
     41        vasenreuna = Level.CreateLeftBorder(); 
     42        vasenreuna.Restitution = 1.0; 
     43        vasenreuna.IsVisible = false; 
     44        PhysicsObject ylareuna = Level.CreateTopBorder(); 
     45        ylareuna.Restitution = 1.0; 
     46        ylareuna.IsVisible = false; 
     47        PhysicsObject alareuna = Level.CreateBottomBorder(); 
     48        alareuna.Restitution = 1.0; 
     49        alareuna.IsVisible = false; 
     50        oikeareuna = Level.CreateRightBorder(); 
     51        oikeareuna.Restitution = 1.0; 
     52        oikeareuna.IsVisible = false; 
    3053         
    31  
    32         Level.CreateBorders(1.0, false); 
    3354        Level.BackgroundColor = Color.Red; 
    3455 
    3556        Camera.ZoomToLevel(); 
     57        AddCollisionHandler(pallo, kasittelepallontormaus); 
    3658    } 
    37     void aloitapeli () 
     59    void aloitapeli() 
    3860    { 
    3961        Vector impullssi = new Vector(500.0, 1.0); 
    4062        pallo.Hit(impullssi); 
    41  
    42  
    43  
    4463    } 
    4564 
    46     void luomaila(double x, double y) 
     65    PhysicsObject luomaila(double x, double y, Angle ankle) 
    4766    { 
    48         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    49         maila.Shape = Shapes.Circle; 
     67        PhysicsObject maila = PhysicsObject.CreateStaticObject(100.0, 100.0); 
     68        maila.Shape = Shapes.Triangle; 
    5069        maila.X = x; 
    5170        maila.Y = y; 
    5271        maila.Restitution = 1.0; 
     72        maila.Angle = ankle; 
    5373        Add(maila); 
    5474 
    55      
     75        return maila; 
     76 
     77    } 
     78    void asetaohjaimet() 
     79    { 
     80        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "poistu"); 
     81 
     82        Keyboard.Listen(Key.W, ButtonState.Down, asetanopeus, "liikutamaila ylös", maila1, nopeusylos); 
     83        Keyboard.Listen(Key.W, ButtonState.Released, asetanopeus, null, maila1, Vector.Zero); 
     84        Keyboard.Listen(Key.S, ButtonState.Down, asetanopeus, "liikutamaila alas", maila1, nopeusalas); 
     85        Keyboard.Listen(Key.S, ButtonState.Released, asetanopeus, null, maila1,Vector.Zero); 
     86 
     87        Keyboard.Listen(Key.Up, ButtonState.Down, asetanopeus, "liikutamaila ylos", maila2, nopeusylos); 
     88        Keyboard.Listen(Key.Up, ButtonState.Released, asetanopeus, null, maila2,Vector.Zero); 
     89        Keyboard.Listen(Key.Down, ButtonState.Down, asetanopeus, "liikutamaila alas", maila2, nopeusalas); 
     90        Keyboard.Listen(Key.Down, ButtonState.Released, asetanopeus, null, maila2,Vector.Zero); 
    5691    } 
    5792 
    58      
     93    void asetanopeus(PhysicsObject maila, Vector nopeus) 
     94    { 
     95        if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     96        { 
     97            maila.Velocity = Vector.Zero; 
     98            return; 
     99        } 
     100        if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     101        { 
     102            maila.Velocity = Vector.Zero; 
     103            return; 
     104        } 
     105        maila.Velocity = nopeus; 
     106    } 
     107    void lisaalaskurit() 
     108    { 
     109        pelaajan1pisteet = luopistelaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     110        pelaajan2pisteet = luopistelaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     111    } 
     112 
     113    IntMeter luopistelaskuri (double x, double y) 
     114    { 
     115        IntMeter laskuri = new IntMeter ( 0 ); 
     116        laskuri.MaxValue = 10; 
     117        Label naytto = new Label(); 
     118        naytto.BindTo(laskuri); 
     119        naytto.X = x; 
     120        naytto.Y = y; 
     121        naytto.TextColor = Color.White; 
     122        Add(naytto); 
     123        return laskuri; 
     124    } 
     125    void kasittelepallontormaus(PhysicsObject pallo, PhysicsObject kohde) 
     126    { 
     127        if  ( kohde == vasenreuna ) 
     128            pelaajan2pisteet.Value ++; 
     129         
     130        else if ( kohde == oikeareuna ) 
     131            pelaajan1pisteet.Value ++; 
     132    } 
    59133} 
Note: See TracChangeset for help on using the changeset viewer.