Changeset 8117 for 2016/30


Ignore:
Timestamp:
2016-07-26 14:55:55 (3 years ago)
Author:
sieerinn
Message:
 
Location:
2016/30/TaavettiV
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/30/TaavettiV/pong/pong/pong/pong.cs

    r8090 r8117  
    88 
    99public class pong : PhysicsGame 
    10 { Vector nopeusYlos = new Vector(0, 200); 
    11     Vector nopeusAlas = new Vector(0, -200); 
     10{   Vector nopeusYlos = new Vector(0, 2000); 
     11    Vector nopeusAlas = new Vector(0, -2000); 
     12   Vector nopeusVasen = new Vector(-1090, 0 ); 
     13    Vector nopeusoikea = new Vector(1090, 0); 
     14 
     15 
    1216    PhysicsObject pallo; 
    13      PhysicsObject maila1; 
     17    PhysicsObject maila1; 
    1418    PhysicsObject maila2; 
     19 
     20    PhysicsObject vasenReuna; 
     21    PhysicsObject oikeaReuna; 
     22 
     23    IntMeter pelaajan1Pisteet; 
     24    IntMeter pelaajan2Pisteet; 
     25 
    1526public override void Begin() 
    1627    { 
    1728        LuoKentta(); 
    1829        AsetaOhjaimet(); 
     30        LisaaLaskurit(); 
    1931        AloitaPeli(); 
    2032         
    2133        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    2234    } 
    23  
    2435    void LuoKentta() 
    2536    { 
    26         pallo = new PhysicsObject(40.0, 40.0); 
     37        pallo = new PhysicsObject(20.0, 20.0); 
    2738        pallo.Shape = Shape.Circle; 
     39        pallo.Color = Color.YellowGreen; 
    2840        pallo.X = -0.0; 
    2941        pallo.Y = 300.0; 
    3042        Add(pallo); 
     43AddCollisionHandler(pallo, KasittelePallonTormays); 
     44  maila1= LuoMaila(Level.Left + 20.0, 0.0); 
     45  maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     46        maila1.Color = Color.Orange; 
     47        maila2.Color = Color.Orange; 
    3148 
    32 LuoMaila(Level.Left + 20.0, 0.0); 
    33     LuoMaila(Level.Right - 20.0, 0.0); 
     49        vasenReuna = Level.CreateLeftBorder(); 
     50vasenReuna.Restitution = 1.0; 
     51vasenReuna.IsVisible = false; 
    3452 
    35         Level.CreateBorders(1.0, false); 
     53         oikeaReuna = Level.CreateRightBorder(); 
     54        oikeaReuna.Restitution = 1.0; 
     55        oikeaReuna.IsVisible = false; 
     56 
     57        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     58        alaReuna.Restitution = 1.0; 
     59        alaReuna.IsVisible = false; 
     60 
     61        PhysicsObject YläReuna = Level.CreateTopBorder(); 
     62        YläReuna.Restitution = 1.0; 
     63        YläReuna.IsVisible = false; 
     64 
    3665 
    3766        pallo.Restitution = 1.0; 
     
    4776    } 
    4877 
    49     void LuoMaila(double x, double y) 
     78   PhysicsObject LuoMaila(double x, double y) 
    5079    { 
    51         PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     80        PhysicsObject maila = PhysicsObject.CreateStaticObject(16.0, 111.0); 
    5281        maila.Shape = Shape.Rectangle; 
    5382        maila.X = x; 
    5483        maila.Y = y; 
    5584        maila.Restitution = 1.0; 
     85 
    5686        Add(maila); 
     87            return maila; 
    5788    }void AsetaOhjaimet() 
    58 { Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMaila1Ylos, "Pelaaja 1: Liikuta mailaa ylös"); 
    59    Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila1, null); 
    60    Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    61 }void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     89    {       Keyboard.Listen(Key.W, ButtonState.Down,AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     90        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     91        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     92        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     93        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     94        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     95        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     96        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     97        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     99        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa vasemmalle", maila2, nopeusVasen); 
     100        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     101        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa oikealle", maila2, nopeusoikea); 
     102        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     103 
     104 
     105    } 
     106 
     107    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    62108{ 
     109            
     110 if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     111    { 
     112        maila.Velocity = Vector.Zero; 
     113        return; 
     114    } 
     115     
     116                if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     117        { 
     118         
     119        maila.Velocity = Vector.Zero; 
     120        return; 
     121    } 
    63122   maila.Velocity = nopeus; 
    64123} 
     124    void LisaaLaskurit() 
     125{ 
     126        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     127    pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     128   // ... 
    65129} 
     130    IntMeter LuoPisteLaskuri(double x, double y) 
     131{ 
     132    IntMeter laskuri = new IntMeter(0); 
     133    laskuri.MaxValue = 10; 
     134     
     135        Label naytto = new Label(); 
     136    naytto.BindTo(laskuri); 
     137    naytto.X = x; 
     138    naytto.Y = y; 
     139    naytto.TextColor = Color.White; 
     140    naytto.BorderColor = Level.Background.Color; 
     141    naytto.Color = Level.Background.Color; 
     142    Add(naytto); 
     143        return laskuri; 
     144} 
     145 
     146 
     147    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     148{ 
     149if (kohde == oikeaReuna) 
     150    { 
     151        pelaajan1Pisteet.Value += 1; 
     152    } 
     153    else if (kohde == vasenReuna) 
     154    { 
     155        pelaajan2Pisteet.Value += 1; 
     156    } 
     157 
     158} 
     159 
     160  
     161} 
Note: See TracChangeset for help on using the changeset viewer.