Changeset 2940 for 2012/24/EemeliKo


Ignore:
Timestamp:
2012-06-12 12:00:32 (8 years ago)
Author:
juiitamm
Message:

Talletus.

Location:
2012/24/EemeliKo/pong
Files:
6 edited

Legend:

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

    r2933 r2940  
    1 using System; 
     1using System; 
    22using System.Collections.Generic; 
     3using System.Linq; 
     4using System.Text; 
    35using Jypeli; 
    46using Jypeli.Assets; 
     
    911public class pong : PhysicsGame 
    1012{ 
    11     Vector nopeusYlos = new Vector( 0, 200 ); 
    12     Vector nopeusAlas = new Vector( 0, -200 ); 
     13    Vector nopeusYlos = new Vector(0, 200); 
     14    Vector nopeusAlas = new Vector(0, -200); 
     15 
     16    PhysicsObject pallo; 
    1317    PhysicsObject maila1; 
    1418    PhysicsObject maila2; 
    15     PhysicsObject pallo; 
     19 
     20    PhysicsObject vasenReuna; 
     21    PhysicsObject oikeaReuna; 
     22 
     23    IntMeter pelaajan1Pisteet; 
     24    IntMeter pelaajan2Pisteet; 
    1625 
    1726    public override void Begin() 
     27    { 
     28        LuoKentta(); 
     29        AsetaOhjaimet(); 
     30        LisaaLaskurit(); 
     31        AloitaPeli(); 
     32    } 
    1833 
    19     { 
    20  
    21  LuoKentta(); 
    22  AsetaOhjaimet(); 
    23     } 
    24       void LuoKentta() 
     34    void LuoKentta() 
    2535    { 
    2636        pallo = new PhysicsObject(40.0, 40.0); 
    27         Add(pallo); 
    2837        pallo.Shape = Shape.Circle; 
    2938        pallo.X = -200.0; 
    3039        pallo.Y = 0.0; 
    3140        pallo.Restitution = 1.0; 
     41        pallo.KineticFriction = 0.0; 
     42        pallo.MomentOfInertia = Double.PositiveInfinity; 
     43        Add(pallo); 
     44        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3245 
     46        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     47        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3348 
    34         Level.CreateBorders(); 
    35         Level.CreateBorders(1.0, false); 
    36         Level.BackgroundColor = Color.Green; ; 
     49        vasenReuna = Level.CreateLeftBorder(); 
     50        vasenReuna.Restitution = 1.0; 
     51        vasenReuna.KineticFriction = 0.0; 
     52        vasenReuna.IsVisible = false; 
     53        oikeaReuna = Level.CreateRightBorder(); 
     54        oikeaReuna.Restitution = 1.0; 
     55        oikeaReuna.KineticFriction = 0.0; 
     56        oikeaReuna.IsVisible = false; 
     57        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     58        ylaReuna.Restitution = 1.0; 
     59        ylaReuna.KineticFriction = 0.0; 
     60        ylaReuna.IsVisible = false; 
     61        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     62        alaReuna.Restitution = 1.0; 
     63        alaReuna.IsVisible = false; 
     64        alaReuna.KineticFriction = 0.0; 
     65 
     66        Level.BackgroundColor = Color.Black; 
     67 
    3768        Camera.ZoomToLevel(); 
     69    } 
     70 
     71    PhysicsObject LuoMaila(double x, double y) 
     72    { 
     73        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     74        maila.Shape = Shape.Rectangle; 
     75        maila.X = x; 
     76        maila.Y = y; 
     77        maila.Restitution = 1.0; 
     78        maila.KineticFriction = 0.0; 
     79        Add(maila); 
     80        return maila; 
     81    } 
     82 
     83    void LisaaLaskurit() 
     84    { 
     85        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     86        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     87    } 
     88 
     89    IntMeter LuoPisteLaskuri(double x, double y) 
     90    { 
     91        IntMeter laskuri = new IntMeter(0); 
     92        laskuri.MaxValue = 10; 
     93        Label naytto = new Label(); 
     94        naytto.BindTo(laskuri); 
     95        naytto.X = x; 
     96        naytto.Y = y; 
     97        naytto.TextColor = Color.White; 
     98        naytto.BorderColor = Level.BackgroundColor; 
     99        naytto.Color = Level.BackgroundColor; 
     100        Add(naytto); 
     101        return laskuri; 
     102    } 
     103 
     104    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     105    { 
     106        if (kohde == oikeaReuna) 
     107        { 
     108            pelaajan1Pisteet.Value += 1; 
     109        } 
     110        else if (kohde == vasenReuna) 
     111        { 
     112            pelaajan2Pisteet.Value += 1; 
     113        } 
     114    } 
     115 
     116    void AloitaPeli() 
     117    { 
    38118        Vector impulssi = new Vector(500.0, 0.0); 
    39119        pallo.Hit(impulssi); 
    40         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    41         maila.Shape = Shape.Rectangle; 
    42         maila.X = Level.Left + 20.0; 
    43         maila.Y = 0.0; 
    44         maila.Restitution = 1.0; 
    45         Add(maila); 
    46         maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    47         maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    48          
     120    } 
    49121 
    50        
     122    void AsetaOhjaimet() 
     123    { 
     124        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     125        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     126        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     127        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    51128 
     129        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     130        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     131        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     132        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    52133 
     134        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    53135        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     136 
     137        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     138        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     139        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     140        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     141 
     142        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     143        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     144        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     145        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     146 
     147        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     148        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    54149    } 
    55       void AloitaPeli() 
    56       { 
    57         Vector impulssi = new Vector(500.0, 0.0); 
    58         pallo.Hit(impulssi); 
    59        
    60150 
    61       } 
    62       PhysicsObject LuoMaila(double x, double y) 
    63       { 
    64           PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
    65           maila.Shape = Shape.Rectangle; 
    66           maila.X = x; 
    67           maila.Y = y; 
    68           maila.Restitution = 1.0; 
    69           Add(maila); 
     151    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     152    { 
     153        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     154        { 
     155            maila.Velocity = Vector.Zero; 
     156            return; 
     157        } 
     158        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     159        { 
     160            maila.Velocity = Vector.Zero; 
     161            return; 
     162        } 
    70163 
    71           return maila; 
    72       } 
    73       void AsetaOhjaimet() 
    74       { 
    75           Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    76           Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null,maila1,Vector.Zero); 
    77  
    78           Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    79       } 
    80       void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    81       { 
    82           maila.Velocity = nopeus; 
    83       } 
    84  
    85  
    86       } 
    87         // TODO:!?!?!?!?!?MOI!!?!?!?!?!?!?!?! 
    88  
    89          
    90      
    91  
     164        maila.Velocity = nopeus; 
     165    } 
     166} 
Note: See TracChangeset for help on using the changeset viewer.