Changeset 849 for 2010/24


Ignore:
Timestamp:
2010-06-15 11:33:17 (9 years ago)
Author:
kaosmaja
Message:

Parantelen vaihe 7:a

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/kaosmaja/pong/Peli.cs

    r813 r849  
    22using Jypeli; 
    33using Jypeli.ScreenObjects; 
    4 using Jypeli.Assets; 
    54 
    65public class Peli : PhysicsGame 
    76{ 
    8      PhysicsObject pallo; 
     7    Vector NopeusYlos = new Vector(0, 200); 
     8    Vector NopeusAlas = new Vector(0, -200); 
    99 
    10      protected override void Begin() 
    11      { 
    12          LuoKentta(); 
    13          AsetaOhjaimet(); 
    14          AloitaPeli();          
    15           
     10    PhysicsObject pallo; 
     11    PhysicsObject maila1; 
     12    PhysicsObject maila2; 
     13 
     14    IntMeter pelaajan1Pisteet; 
     15    IntMeter pelaajan2Pisteet; 
     16 
     17    protected override void Begin() 
     18    { 
     19        LuoKentta(); 
     20        AsetaOhjaimet(); 
     21        LisaaLaskurit(); 
     22        AloitaPeli(); 
     23    } 
     24 
     25    void LuoKentta() 
     26    { 
     27        pallo = new PhysicsObject(19, 19); 
     28        pallo.Shape = Shapes.Circle; 
     29        pallo.Color = Color.Red; 
     30        pallo.X = -200; 
     31        pallo.Y = 30; 
     32        pallo.Restitution = 1.0; 
     33        Add(pallo); 
     34 
     35        AddCollisionHandler(pallo, KasittelePallonTormays); 
     36 
     37 
     38        maila1 = LuoMaila( Level.Left + 20.0, 0.0 ); 
     39        maila2 = LuoMaila( Level.Right - 20.0, 0.0 ); 
     40 
     41        Level.CreateBorders(1.0, false); 
     42        Level.BackgroundColor = Color.Green; 
     43 
     44        Camera.ZoomToLevel(); 
     45    } 
     46    void AloitaPeli() 
     47    { 
     48        Vector impulse = new Vector(500.0, 0.0); 
     49        pallo.Hit(impulse); 
     50    } 
     51 
     52    PhysicsObject LuoMaila(Double x, double y) 
     53    { 
     54        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     55        maila.Shape = Shapes.Rectangle; 
     56        maila.X = x; 
     57        maila.Y = y; 
     58        maila.Restitution = 1.0; 
     59        Add(maila); 
     60 
     61        return maila; 
     62    } 
     63    void AsetaOhjaimet() 
     64    { 
     65        Keyboard.Listen( Key.A, ButtonState.Pressed, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, NopeusYlos ); 
     66        Keyboard.Listen( Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     67        Keyboard.Listen( Key.Z, ButtonState.Pressed, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, NopeusAlas ); 
     68        Keyboard.Listen( Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     69 
     70        Keyboard.Listen( Key.Up, ButtonState.Pressed, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila2, NopeusYlos ); 
     71        Keyboard.Listen( Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     72        Keyboard.Listen( Key.Down, ButtonState.Pressed, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila2, NopeusAlas ); 
     73        Keyboard.Listen( Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     74 
     75        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet" ); 
     76        Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" ); 
     77 
     78        ControllerOne.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, NopeusYlos ); 
     79        ControllerOne.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     80        ControllerOne.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, NopeusAlas ); 
     81        ControllerOne.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     82 
     83        ControllerTwo.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, NopeusYlos ); 
     84        ControllerTwo.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     85        ControllerTwo.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, NopeusAlas ); 
     86        ControllerTwo.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     87 
     88        ControllerOne.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     89        ControllerTwo.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     90    } 
     91    void LiikutaMailaaYlos(PhysicsObject maila) 
     92    { 
     93        if (maila.Y > Level.Top) 
     94        { 
     95            maila.Velocity = Vector.Zero; 
     96            return; 
     97        } 
     98 
     99 
     100        Vector nopeus = new Vector(0, 200); 
     101        maila.Velocity = nopeus; 
     102    } 
     103    void PysäytäMaila(PhysicsObject maila) 
     104    { 
     105        maila.Velocity = Vector.Zero; 
     106    } 
     107    void LiikutaMailaaAlas(PhysicsObject maila) 
     108    { 
     109        Vector nopeus = new Vector(0, -200); 
     110        maila.Velocity = nopeus; 
     111    } 
     112  
     113    void AsetaNopeus( PhysicsObject maila, Vector nopeus ) 
     114    { 
     115            if ( (nopeus.Y < 0) && (maila.Y < Level.Bottom) ) 
     116         { 
     117                maila.Velocity = Vector.Zero; 
     118                return; 
     119         } 
     120            if ( (nopeus.Y > 0) && (maila.Y > Level.Top) ) 
     121         { 
     122                maila.Velocity = Vector.Zero; 
     123                return; 
     124         } 
     125 
     126            maila.Velocity = nopeus; 
     127 
    16128     } 
    17129 
    18      void LuoKentta () 
     130     IntMeter LuoPisteLaskuri( double x, double y ) 
    19131     { 
    20          pallo = new PhysicsObject(19, 19); 
    21          pallo.Shape = Shapes.Circle; 
    22          pallo.Color = Color.Red; 
    23          pallo.X = -200; 
    24          pallo.Y = 30; 
    25          pallo.Restitution = 1.0; 
    26          Add(pallo); 
    27  
    28          LuoMaila(Level.Left + 20.0, 0.0); 
    29          LuoMaila(Level.Right - 20.0, 0.0); 
    30  
    31          Level.CreateBorders(1.0, false); 
    32          Level.BackgroundColor = Color.Green; 
    33  
    34          Camera.ZoomToLevel(); 
    35      } 
    36      void AloitaPeli() 
    37      { 
    38          Vector impulse = new Vector(500.0, 0.0); 
    39          pallo.Hit(impulse); 
     132        IntMeter laskuri = new IntMeter(0); 
     133        laskuri.MaxValue = 10; 
     134        ValueDisplay naytto = new ValueDisplay(); 
     135        naytto.BindTo(laskuri); 
     136        naytto.X = x; 
     137        naytto.Y = y; 
     138        naytto.ValueColor = Color.White; 
     139        Add(naytto); 
     140        return laskuri; 
    40141     } 
    41142 
    42     void LuoMaila( Double x, double y) 
    43     { 
    44         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    45             maila.Shape = Shapes.Rectangle; 
    46             maila.X = x; 
    47             maila.Y = y; 
    48             maila.Restitution = 1.0; 
    49             Add(maila); 
     143     void LisaaLaskurit() 
     144     { 
     145         pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     146         pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    50147     } 
    51     void AsetaOhjaimet() 
    52     { 
    53         Keyboard.Listen( Key.A, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös" ); 
    54         Keyboard.Listen(Key.A, ButtonState.Released, PysäytäMaila, null); 
     148    
    55149 
    56         Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
    57     } 
    58         //TODO: Alusta peli tässä 
    59  
    60  } 
     150     //TODO: Alusta peli tässä 
     151} 
Note: See TracChangeset for help on using the changeset viewer.