Changeset 1344 for 2010/30/lesejuku


Ignore:
Timestamp:
2010-07-27 15:04:02 (9 years ago)
Author:
paaaanro
Message:
 
Location:
2010/30/lesejuku
Files:
14 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/lesejuku/Pong/Peli.cs

    r1288 r1344  
    1010 
    1111    PhysicsObject pallo; 
    12  
    1312    PhysicsObject maila1; 
    1413    PhysicsObject maila2; 
    1514 
    16     void AloitaPeli() 
     15    PhysicsObject vasenReuna; 
     16    PhysicsObject oikeaReuna; 
     17 
     18    IntMeter pelaajan1Pisteet; 
     19    IntMeter pelaajan2Pisteet; 
     20 
     21    protected override void Begin() 
    1722    { 
    18          
    19  
    20         Vector impulssi = new Vector(500.0, 0.0); 
    21         pallo.Hit(impulssi); 
     23        LuoKentta(); 
     24        AsetaOhjaimet(); 
     25        LisaaLaskurit(); 
     26        AloitaPeli(); 
    2227    } 
    2328 
    2429    void LuoKentta() 
    2530    { 
    26          
    2731        pallo = new PhysicsObject(40.0, 40.0); 
    2832        pallo.Shape = Shapes.Circle; 
     
    3135        pallo.Restitution = 1.0; 
    3236        Add(pallo); 
    33  
     37        AddCollisionHandler(pallo, KasittelePallonTormays); 
     38        pallo.Color = Color.YellowGreen; 
    3439        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3540        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3641 
    37    
     42        vasenReuna = Level.CreateLeftBorder(); 
     43        vasenReuna.Restitution = 1.0; 
     44        vasenReuna.IsVisible = false; 
     45        oikeaReuna = Level.CreateRightBorder(); 
     46        oikeaReuna.Restitution = 1.0; 
     47        oikeaReuna.IsVisible = false; 
     48        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     49        ylaReuna.Restitution = 1.0; 
     50        ylaReuna.IsVisible = false; 
     51        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     52        alaReuna.Restitution = 1.0; 
     53        alaReuna.IsVisible = false; 
     54 
    3855        Level.BackgroundColor = Color.Black; 
    39         Level.CreateBorders(1.0, false); 
    4056 
    4157        Camera.ZoomToLevel(); 
     
    4460    PhysicsObject LuoMaila(double x, double y) 
    4561    { 
    46            
    47          
    48         PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0 ); 
     62        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    4963        maila.Shape = Shapes.Rectangle; 
    5064        maila.X = x; 
    5165        maila.Y = y; 
    5266        maila.Restitution = 1.0; 
    53         Add( maila ); 
     67        Add(maila); 
     68        return maila; 
     69    }    
    5470 
    55         return maila; 
    56  
     71    void LisaaLaskurit() 
     72    { 
     73        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     74        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    5775    } 
    5876 
     77    IntMeter LuoPisteLaskuri(double x, double y) 
     78    { 
     79        IntMeter laskuri = new IntMeter(0); 
     80        laskuri.MaxValue = 10; 
     81        Label naytto = new Label(); 
     82        naytto.BindTo(laskuri); 
     83        naytto.X = x; 
     84        naytto.Y = y; 
     85        naytto.TextColor = Color.Red 
     86            ; 
     87        Add(naytto); 
     88        return laskuri; 
     89    } 
    5990 
     91    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     92    { 
     93        if (kohde == oikeaReuna) 
     94        { 
     95            pelaajan1Pisteet.Value += 1; 
     96        } 
     97        else if (kohde == vasenReuna) 
     98        { 
     99            pelaajan2Pisteet.Value += 1; 
     100        } 
     101    } 
    60102 
    61          
    62      
    63  
    64     protected override void Begin() 
     103    void AloitaPeli() 
    65104    { 
    66         LuoKentta(); 
    67         AsetaOhjaimet(); 
    68         AloitaPeli(); 
     105        Vector impulssi = new Vector(500.0, 0.0); 
     106        pallo.Hit(impulssi); 
    69107    } 
    70108 
     
    73111        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    74112        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     113        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     114        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    75115 
     116        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     117        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     118        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     119        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     120 
     121        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    76122        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     123 
     124        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     125        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     126        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     127        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     128 
     129        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     130        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     131        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     132        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     133 
     134        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     135        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
    77136    } 
    78137 
    79138    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    80139    { 
     140        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     141        { 
     142            maila.Velocity = Vector.Zero; 
     143            return; 
     144        } 
     145        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     146 
     147        { 
     148            maila.Velocity = Vector.Zero; 
     149            return; 
     150        } 
     151 
    81152        maila.Velocity = nopeus; 
    82153    } 
    83  
    84      
    85          
    86  
    87      
    88154} 
Note: See TracChangeset for help on using the changeset viewer.