Changeset 1303 for 2010


Ignore:
Timestamp:
2010-07-27 11:24:41 (13 years ago)
Author:
alsiseoi
Message:

Mailat toimivat ja eivät mene reunojen yli.

File:
1 edited

Legend:

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

    r1284 r1303  
    66public class Peli : PhysicsGame 
    77{ 
     8    Vector NopeusYlos = new Vector( 0, 200); 
     9    Vector NopeusAlas = new Vector(0, -200); 
     10     
    811    PhysicsObject pallo; 
     12 
     13    PhysicsObject maila1; 
     14    PhysicsObject maila2; 
    915     
    1016    protected override void Begin() 
    1117    { 
    1218        LuoKentta(); 
     19        AsetaOhjaimet(); 
     20        LisaaLaskurit(); 
    1321        AloitaPeli(); 
    1422        Vector impulssi = new Vector(500.0, 0.0); 
    1523        pallo.Hit(impulssi); 
    16         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    17         maila.Shape = Shapes.Rectangle; 
    18         maila.X = Level.Left + 20.0; 
    19         maila.Y = 0.0; 
    20         maila.Restitution = 1.0; 
    21         Add(maila); 
    2224    } 
    2325 
     
    3335        Level.BackgroundColor = Color.Black; 
    3436        Camera.ZoomToLevel(); 
     37 
     38        maila1 = LuoMaila( Level.Left + 20.0, 0.0); 
     39        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3540    } 
    3641    void AloitaPeli() 
     
    4045    } 
    4146 
    42     void LuoMaila( double x, double y ) 
     47    PhysicsObject LuoMaila( double x, double y ) 
    4348    { 
     49        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     50        maila.Shape = Shapes.Rectangle; 
     51        maila.X = x; 
     52        maila.Y = y; 
     53        maila.Restitution = 1.0; 
     54        Add(maila); 
     55 
     56        return maila; 
     57    } 
     58 
     59    void AsetaOhjaimet() 
     60    { 
     61        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, NopeusYlos ); 
     62        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     63        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, NopeusAlas ); 
     64        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     65 
     66        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, NopeusYlos); 
     67        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     68        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, NopeusAlas); 
     69        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     70 
     71        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     72        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     73    } 
     74 
     75    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     76    { 
     77        if ( (nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     78        { 
     79            maila.Velocity = Vector.Zero; 
     80            return; 
     81        } 
     82                       
     83        if ( (nopeus.Y > 0) && (maila.Top > Level.Top) ) 
     84        { 
     85            maila.Velocity = Vector.Zero; 
     86            return; 
     87        } 
     88 
     89        maila.Velocity = nopeus; 
     90    } 
     91 
     92    void LisaaLaskurit() 
     93    { 
     94        //... 
     95    } 
     96 
     97    IntMeter LuoPisteLaskuri( double x, double y ) 
     98 
     99    { 
     100        IntMeter laskuri = new IntMeter(0); 
     101        laskuri.MaxValue = 10; 
     102        Label naytto = new Label(); 
     103         
     104         
     105         
     106        return laskuri; 
    44107    } 
    45108 
Note: See TracChangeset for help on using the changeset viewer.