Changeset 824


Ignore:
Timestamp:
2010-06-14 15:38:38 (13 years ago)
Author:
vilvaini
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/Vilvaini/Pongi/Peli.cs

    r804 r824  
    22using Jypeli; 
    33using Jypeli.ScreenObjects; 
    4 using Jypeli.Assets; 
    54 
    65public class Peli : PhysicsGame 
    76{ 
     7    Vector nopeusYlos = new Vector(0, 400); 
     8    Vector nopeusAlas = new Vector(0, -400); 
     9 
    810    PhysicsObject pallo; 
    911    PhysicsObject maila1; 
    1012    PhysicsObject maila2; 
    1113 
     14    PhysicsObject vasenReuna; 
     15    PhysicsObject oikeaReuna; 
     16 
     17    IntMeter pelaajan1Pisteet; 
     18    IntMeter pelaajan2Pisteet; 
     19 
    1220    protected override void Begin() 
    1321    { 
    14         //TODO: Alusta peli tässä 
    15          
    1622        LuoKentta(); 
     23        AsetaOhjaimet(); 
     24        LisaaLaskurit(); 
    1725        AloitaPeli(); 
    18         AsetaOhjaimet(); 
    19          
    2026    } 
    21      
    22     void AsetaOhjaimet() 
     27 
     28    void LuoKentta() 
    2329    { 
    24         Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     30        pallo = new PhysicsObject(40.0, 40.0); 
     31        pallo.CanRotate = false; 
     32        pallo.Shape = Shapes.Circle; 
     33        pallo.X = -200.0; 
     34        pallo.Y = 0.0; 
    2535 
    26         Keyboard.Listen(Key.A, ButtonState.Pressed, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1); 
    27         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null, maila1); 
     36        pallo.Restitution = 1.0; 
     37        Add(pallo); 
     38        AddCollisionHandler(pallo, KasittelePallonTormays); 
    2839 
     40        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     41        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     42 
     43        vasenReuna = Level.CreateLeftBorder(); 
     44        vasenReuna.Restitution = 1.0; 
     45        vasenReuna.IsVisible = false; 
     46        oikeaReuna = Level.CreateRightBorder(); 
     47        oikeaReuna.Restitution = 1.0; 
     48        oikeaReuna.IsVisible = false; 
     49        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     50        ylaReuna.Restitution = 1.0; 
     51        ylaReuna.IsVisible = false; 
     52        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     53        alaReuna.Restitution = 1.0; 
     54        alaReuna.IsVisible = false; 
     55 
     56        Level.BackgroundColor = Color.Black; 
     57 
     58        Camera.ZoomToLevel(); 
    2959    } 
    30      
     60 
    3161    PhysicsObject LuoMaila(double x, double y) 
    3262    { 
     
    3767        maila.Restitution = 1.0; 
    3868        Add(maila); 
    39  
    4069        return maila; 
    4170    } 
    42     void LiikutaMailaaYlos(PhysicsObject maila) 
     71 
     72    void LisaaLaskurit() 
    4373    { 
    44         Vector nopeus = new Vector(0, 200); 
     74        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     75        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     76    } 
     77 
     78    IntMeter LuoPisteLaskuri(double x, double y) 
     79    { 
     80        IntMeter laskuri = new IntMeter(0); 
     81        laskuri.MaxValue = 10; 
     82        ValueDisplay naytto = new ValueDisplay(); 
     83        naytto.BindTo(laskuri); 
     84        naytto.X = x; 
     85        naytto.Y = y; 
     86        naytto.ValueColor = Color.White; 
     87        Add(naytto); 
     88        return laskuri; 
     89    } 
     90 
     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    } 
     102 
     103    void AloitaPeli() 
     104    { 
     105        Vector impulssi = new Vector(500.0, 0.0); 
     106        pallo.Hit(impulssi); 
     107    } 
     108 
     109    void AsetaOhjaimet() 
     110    { 
     111        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     112        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); 
     115 
     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"); 
     122        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"); 
     136    } 
     137 
     138    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     139    { 
     140        if ((nopeus.Y < 0) && (maila.Y < Level.Bottom)) 
     141        { 
     142            maila.Velocity = Vector.Zero; 
     143            return; 
     144        } 
     145        if ((nopeus.Y > 0) && (maila.Y > Level.Top)) 
     146        { 
     147            maila.Velocity = Vector.Zero; 
     148            return; 
     149        } 
     150 
    45151        maila.Velocity = nopeus; 
    46152    } 
    47  
    48     void PysaytaMaila(PhysicsObject maila) 
    49     { 
    50         maila.Velocity = Vector.Zero; 
    51     } 
    52  
    53     void LuoKentta() 
    54     { 
    55         pallo = new PhysicsObject(40.0, 40.0); 
    56         pallo.Shape = Shapes.Circle; 
    57         pallo.X = -200.0; 
    58         pallo.Y = 20.0; 
    59         Add(pallo); 
    60  
    61         maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    62         maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    63  
    64         Level.CreateBorders(); 
    65         Level.BackgroundColor = Color.Black; 
    66  
    67         Camera.ZoomToLevel(); 
    68     } 
    69         void AloitaPeli() 
    70  
    71         { 
    72         new Vector(10.0, 10.0); 
    73         Vector impulssi = new Vector(-500.0, -40.0); 
    74         pallo.Hit(impulssi); 
    75         } 
    76  
    77     } 
    78  
    79  
     153} 
Note: See TracChangeset for help on using the changeset viewer.