Changeset 3110 for 2012/24


Ignore:
Timestamp:
2012-06-15 12:14:02 (7 years ago)
Author:
toalsuur
Message:

Talletus.

Location:
2012/24/TommiS
Files:
163 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/TommiS/pong/pong/pong/pong.cs

    r2914 r3110  
    44using Jypeli.Assets; 
    55using Jypeli.Controls; 
    6 using Jypeli.Effects;  
     6using Jypeli.Effects; 
    77using Jypeli.Widgets; 
    88 
    99public class pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
    1113    PhysicsObject pallo; 
     14    PhysicsObject maila1; 
     15    PhysicsObject maila2; 
     16    PhysicsObject vasenReuna; 
     17    PhysicsObject oikeaReuna; 
     18    IntMeter pelaajan1Pisteet; 
     19    IntMeter pelaajan2Pisteet; 
     20 
    1221    public override void Begin() 
    1322    { 
     23        LisaaLaskurit(); 
    1424        LuoKentta(); 
     25        AsetaOhjaimet(); 
    1526        AloitaPeli(); 
    1627        // TODO: Kirjoita ohjelmakoodisi tähän 
    17         
     28 
    1829        new Vector(10.0, 20.0); 
    1930        Vector impulssi = new Vector(500.0, 100.0); 
    2031        pallo.Hit(impulssi); 
    21          
    22         
     32    } 
     33    void AsetaOhjaimet() 
     34    { 
     35        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     36        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     37        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     38        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     39        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     40        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     41        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     42        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     43 
     44        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     45 
     46 
    2347        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    2448        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    3357        pallo.X = -400.0; 
    3458        pallo.Y = 0.0; 
    35         Level.CreateBorders(1.0, false); 
     59        vasenReuna = Level.CreateLeftBorder(); 
     60        vasenReuna.Restitution = 1.0; 
     61        vasenReuna.IsVisible = false; 
     62        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     63        ylaReuna.Restitution = 1.0; 
     64        ylaReuna.IsVisible = false; 
     65        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     66        alaReuna.Restitution = 1.0; 
     67        alaReuna.IsVisible = false; 
     68 
     69           
    3670        Camera.ZoomToLevel(); 
    37          LuoMaila( Level.Left + 20.0, 0.0 ); 
    38         LuoMaila( Level.Right - 20.0, 0.0 ); 
     71        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     72        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     73        oikeaReuna = Level.CreateRightBorder(); 
     74        oikeaReuna.Restitution = 1.0; 
     75        AddCollisionHandler(pallo, KasittelePallonTormays); 
     76     
    3977 
    4078        pallo.Restitution = 1.0; 
    4179        Level.BackgroundColor = Color.Blue; 
     80    } 
     81    PhysicsObject LuoMaila(double x, double y) 
     82    { 
    4283        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    43         maila.Shape = Shape.Rectangle; 
    44         maila.X = Level.Left + 20.0; 
    45         maila.Y = 0.0; 
    46         maila.Restitution = 1.0; 
    47         Add(maila); 
    48     } 
    49     void AloitaPeli() 
    50     { 
    51         Vector impulssi = new Vector(500.0, 0.0); 
    52         pallo.Hit(impulssi); 
    53  
    54     } 
    55          
    56         void LuoMaila( double x, double y ) 
    57  PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0 ); 
    5884        maila.Shape = Shape.Rectangle; 
    5985        maila.X = x; 
    6086        maila.Y = y; 
    6187        maila.Restitution = 1.0; 
    62         Add( maila); 
     88        Add(maila); 
     89        return maila; 
    6390 
    64 { 
    65   
     91    } 
     92    void AloitaPeli() 
     93    { 
     94        Vector impulssi = new Vector(300.0, 0.0); 
     95        pallo.Hit(impulssi); 
     96 
     97    } 
     98 
     99    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     100    { 
     101        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     102        { 
     103            maila.Velocity = Vector.Zero; 
     104            return; 
     105        } 
     106 
     107        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     108        { 
     109            maila.Velocity = Vector.Zero; 
     110            return; 
     111        } 
     112        maila.Velocity = nopeus; 
     113    } 
     114                
     115    void LisaaLaskurit() 
     116    { 
     117 
     118        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     119        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     120    } 
     121 
     122    IntMeter LuoPisteLaskuri(double x, double y) 
     123    { 
     124        IntMeter laskuri = new IntMeter(0); 
     125        laskuri.MaxValue = 10; 
     126        Label naytto = new Label(); 
     127        naytto.BindTo(laskuri); 
     128        naytto.X = x; 
     129        naytto.Y = y; 
     130 
     131        naytto.TextColor = Color.White; 
     132        naytto.BorderColor = Level.BackgroundColor; 
     133        naytto.Color = Level.BackgroundColor; 
     134        Add(naytto); 
     135        return laskuri; 
     136    } 
     137    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     138    {     
     139        if (kohde == oikeaReuna) 
     140        { 
     141            if (kohde == vasenReuna) 
     142                pelaajan1Pisteet.Value = 1; 
     143        } 
     144        else if (kohde == vasenReuna) 
     145        { 
     146            pelaajan2Pisteet.Value += 1; 
     147        } 
     148 
     149    } 
     150 
     151} 
    66152 
    67153 
    68      
    69 } 
     154 
Note: See TracChangeset for help on using the changeset viewer.