Changeset 7300 for 2016/24


Ignore:
Timestamp:
2016-06-14 14:58:05 (7 years ago)
Author:
tesatapa
Message:
 
Location:
2016/24/MikoA
Files:
64 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/24/MikoA/PONG/PONG/PONG/PONG.cs

    r7275 r7300  
    88 
    99public class PONG : PhysicsGame 
    10     { 
    11     Vector nopeusYlos = new Vector(0, 200); 
    12     Vector nopeusAlas = new Vector(0, -200); 
     10{ 
     11    Vector nopeusYlos = new Vector(0, 500); 
     12    Vector nopeusAlas = new Vector(0, -500); 
    1313 
    1414    PhysicsObject pallo; 
    15  
    1615    PhysicsObject maila1; 
    1716    PhysicsObject maila2; 
    1817 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21    IntMeter Pelaajan1Pisteet; 
     22    IntMeter Pelaajan2Pisteet; 
    1923    public override void Begin() 
    2024    { 
     
    2226        LuoKentta(); 
    2327        AsetaOhjaimet(); 
     28        LisaaLaskurit(); 
    2429        AloitaPeli(); 
    2530 
     
    2732    } 
    2833    void LuoKentta() 
     34 
    2935    { 
     36         
    3037 
    3138        Level.Width = Screen.Width; 
     
    3845        pallo.Y = 0.0; 
    3946 
    40        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    41        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     47        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     48        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4249 
     50        AddCollisionHandler(pallo, KasittelePallonTormays); 
    4351 
    44         Level.CreateBorders(1.0, false); 
     52        vasenReuna = Level.CreateLeftBorder(); 
     53        vasenReuna.Restitution = 1.0; 
     54        vasenReuna.KineticFriction = 0.0; 
     55        vasenReuna.IsVisible = false; 
     56 
     57        oikeaReuna = Level.CreateRightBorder(); 
     58        oikeaReuna.Restitution = 1.0; 
     59        oikeaReuna.KineticFriction = 0.0; 
     60        oikeaReuna.IsVisible = false; 
     61 
     62        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     63        ylaReuna.Restitution = 1.0; 
     64        ylaReuna.KineticFriction = 0.0; 
     65        ylaReuna.IsVisible = false; 
     66 
     67        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     68        alaReuna.Restitution = 1.0; 
     69        alaReuna.IsVisible = false; 
     70        alaReuna.KineticFriction = 0.0; 
     71 
    4572        Level.Background.Color = Color.Orange; 
    4673        Camera.ZoomToLevel(); 
    4774        pallo.Restitution = 1.0; 
     75 
    4876 
    4977    } 
     
    5179    void AloitaPeli() 
    5280    { 
    53         Vector impulssi = new Vector(400.0, 400.0); 
     81        Vector impulssi = new Vector(800.0, 800.0); 
    5482        pallo.Hit(impulssi); 
    5583    } 
     
    6896    void AsetaOhjaimet() 
    6997    { 
    70         Keyboard.Listen(Key.A,     ButtonState.Down,    AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos); 
    71         Keyboard.Listen(Key.A,     ButtonState.Released, AsetaNopeus, null,                            maila1, Vector.Zero); 
    72         Keyboard.Listen(Key.Z,     ButtonState.Down,    AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusAlas); 
    73         Keyboard.Listen(Key.Z,     ButtonState.Released, AsetaNopeus, null,                            maila1, Vector.Zero); 
     98        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusYlos); 
     99        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     100        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylos", maila1, nopeusAlas); 
     101        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    74102 
    75         Keyboard.Listen(Key.Up,    ButtonState.Down,    AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylos", maila2, nopeusYlos); 
    76         Keyboard.Listen(Key.Up,    ButtonState.Released, AsetaNopeus, null,                            maila2, Vector.Zero); 
    77         Keyboard.Listen(Key.Down,  ButtonState.Down,    AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
    78         Keyboard.Listen(Key.Down,  ButtonState.Released, AsetaNopeus, null,                            maila2, Vector.Zero); 
     103        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylos", maila2, nopeusYlos); 
     104        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     105        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     106        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
    79107 
    80         Keyboard.Listen(Key.F1,    ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     108        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    81109        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    82110 
    83111 
    84112        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    85         Keyboard.Listen(Key.Escape,ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     113        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    86114 
    87115    } 
     
    89117    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    90118    { 
     119        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     120 
     121        { 
     122            maila.Velocity = Vector.Zero; 
     123            return; 
     124 
     125        } 
     126        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     127        { 
     128            maila.Velocity = Vector.Zero; 
     129            return; 
     130 
     131        } 
    91132        maila.Velocity = nopeus; 
     133    } 
     134    void LisaaLaskurit() 
     135    { 
     136        Pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     137        Pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     138    } 
     139    IntMeter LuoPisteLaskuri(double x, double y) 
     140    { 
     141        IntMeter laskuri = new IntMeter(0); 
     142        laskuri.MaxValue = 10; 
     143 
     144        Label naytto = new Label(); 
     145        naytto.BindTo(laskuri); 
     146        naytto.X = x; 
     147        naytto.Y = y; 
     148        naytto.TextColor = Color.White; 
     149        naytto.BorderColor = Level.Background.Color; 
     150        naytto.Color = Level.Background.Color; 
     151        Add(naytto); 
     152 
     153        return laskuri; 
     154    } 
     155    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     156    { 
     157        if (kohde == oikeaReuna) 
     158        { 
     159            Pelaajan1Pisteet.Value += 1; 
     160        } 
     161        else if (kohde == vasenReuna) 
     162        { 
     163            Pelaajan2Pisteet.Value += 1; 
     164        } 
     165    } 
     166} 
    92167 
    93168 
    94     } 
    95     } 
    96169 
    97  
    98      
    99  
    100      
Note: See TracChangeset for help on using the changeset viewer.