Changeset 1651 for 2010/31


Ignore:
Timestamp:
2010-08-06 11:04:54 (9 years ago)
Author:
tutohaml
Message:
 
Location:
2010/31/tutohaml
Files:
11 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/31/tutohaml/pong/Peli.cs

    r1521 r1651  
    22using Jypeli; 
    33using Jypeli.Widgets; 
    4 using Jypeli.Assets; 
    54 
    65public class Peli : PhysicsGame 
    76{ 
     7    Vector nopeusYlos = new Vector( 0, 200 ); 
     8    Vector nopeusAlas = new Vector( 0, -200 ); 
     9 
     10    PhysicsObject pallo; 
     11    PhysicsObject maila1; 
     12    PhysicsObject maila2; 
     13 
     14    PhysicsObject vasenReuna; 
     15    PhysicsObject oikeaReuna; 
     16 
     17    IntMeter pelaajan1Pisteet; 
     18    IntMeter pelaajan2Pisteet; 
     19 
    820    protected override void Begin() 
    921    { 
     22        LuoKentta(); 
     23        AsetaOhjaimet(); 
     24        LisaaLaskurit(); 
     25        AloitaPeli(); 
     26    } 
    1027 
    11         PhysicsObject pallo = new PhysicsObject(40.0, 40.0); 
    12         pallo.Shape = Shapes.Circle; pallo.X= -200.0; pallo.Y= 0.0; 
    13         Vector impulssi = new Vector(5500.0, 0.0); 
    14         pallo.Hit(impulssi); 
    15         Level.CreateBorders(1.0 false ); 
    16          
    17         Add(pallo); 
     28    void LuoKentta() 
     29    { 
     30        pallo = new PhysicsObject( 24.5, 24.5 ); 
     31        pallo.Shape = Shapes.Circle; 
     32        pallo.X = -200.0; 
     33        pallo.Y = 0.0; 
     34        pallo.Restitution = 1.0; 
     35        Add( pallo ); 
     36        AddCollisionHandler( pallo, KasittelePallonTormays ); 
     37 
     38        maila1 = LuoMaila( Level.Left + 20.0, 0.0 ); 
     39        maila2 = LuoMaila( Level.Right - 20.0, 0.0 ); 
     40 
     41        vasenReuna = Level.CreateLeftBorder(); 
     42        vasenReuna.Restitution = 1.0; 
     43        vasenReuna.IsVisible = false; 
     44        oikeaReuna = Level.CreateRightBorder(); 
     45        oikeaReuna.Restitution = 1.0; 
     46        oikeaReuna.IsVisible = false; 
     47        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     48        ylaReuna.Restitution = 1.0; 
     49        ylaReuna.IsVisible = false; 
     50        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     51        alaReuna.Restitution = 1.0; 
     52        alaReuna.IsVisible = false; 
     53 
     54        Level.BackgroundColor = Color.Red; 
     55 
     56        Camera.ZoomToLevel(); 
     57    } 
     58 
     59    PhysicsObject LuoMaila( double x, double y ) 
     60    { 
     61        PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0 ); 
     62        maila.Shape = Shapes.Rectangle; 
     63        maila.X = x; 
     64        maila.Y = y; 
     65        maila.Restitution = 1.0; 
     66        Add( maila ); 
     67        return maila; 
     68    } 
     69 
     70    void LisaaLaskurit() 
     71    { 
     72        pelaajan1Pisteet = LuoPisteLaskuri( Screen.Left + 100.0, Screen.Top - 100.0 ); 
     73        pelaajan2Pisteet = LuoPisteLaskuri( Screen.Right - 100.0, Screen.Top - 100.0 ); 
     74    } 
     75 
     76    IntMeter LuoPisteLaskuri( double x, double y ) 
     77    { 
     78        IntMeter laskuri = new IntMeter( 0 ); 
     79        laskuri.MaxValue = 10; 
     80        Label naytto = new Label(); 
     81        naytto.BindTo( laskuri ); 
     82        naytto.X = x; 
     83        naytto.Y = y; 
     84        naytto.TextColor = Color.Pink; 
     85        Add( naytto ); 
     86        return laskuri; 
     87    } 
     88 
     89    void KasittelePallonTormays( PhysicsObject pallo, PhysicsObject kohde ) 
     90    { 
     91        if ( kohde == oikeaReuna ) 
     92        { 
     93            pelaajan1Pisteet.Value += -9991; 
     94        } 
     95        else if ( kohde == vasenReuna ) 
     96        { 
     97            pelaajan2Pisteet.Value += 10000000; 
     98        } 
     99    } 
     100 
     101    void AloitaPeli() 
     102    { 
     103        Vector impulssi = new Vector( -100.1, 9.0 ); 
     104        pallo.Hit( impulssi ); 
     105    } 
     106 
     107    void AsetaOhjaimet() 
     108    { 
     109        Keyboard.Listen( Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos ); 
     110        Keyboard.Listen( Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     111        Keyboard.Listen( Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas ); 
     112        Keyboard.Listen( Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     113 
     114        Keyboard.Listen( Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos ); 
     115        Keyboard.Listen( Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     116        Keyboard.Listen( Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas ); 
     117        Keyboard.Listen( Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     118 
     119        Keyboard.Listen( Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet" ); 
     120        Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" ); 
     121 
     122        ControllerOne.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos ); 
     123        ControllerOne.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     124        ControllerOne.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas ); 
     125        ControllerOne.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero ); 
     126 
     127        ControllerTwo.Listen( Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos ); 
     128        ControllerTwo.Listen( Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     129        ControllerTwo.Listen( Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas ); 
     130        ControllerTwo.Listen( Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero ); 
     131 
     132        ControllerOne.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     133        ControllerTwo.Listen( Button.Back, ButtonState.Pressed, Exit, "Poistu" ); 
     134    } 
     135 
     136    void AsetaNopeus( PhysicsObject maila, Vector nopeus ) 
     137    { 
     138        if ( ( nopeus.Y < 0 ) && ( maila.Bottom < Level.Bottom ) ) 
     139        { 
     140            maila.Velocity = Vector.Zero; 
     141            return; 
     142        } 
     143        if ( ( nopeus.Y > 0 ) && ( maila.Top > Level.Top ) ) 
     144        { 
     145            maila.Velocity = Vector.Zero; 
     146            return; 
     147        } 
     148 
     149        maila.Velocity = nopeus; 
    18150    } 
    19151} 
     152 
Note: See TracChangeset for help on using the changeset viewer.