Changeset 3234


Ignore:
Timestamp:
2012-06-26 15:04:30 (8 years ago)
Author:
pelakaik
Message:

Talletus.

Location:
2012/26/PetroI/pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2012/26/PetroI/pong/pong/pong/pong.cs

    r3199 r3234  
    99public class pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
     15    PhysicsObject pallo2; 
     16 
     17    PhysicsObject maila1; 
     18    PhysicsObject maila2; 
     19 
     20    PhysicsObject vasenReuna; 
     21    PhysicsObject oikeaReuna; 
     22 
     23    IntMeter pelaajan1Pisteet; 
     24    IntMeter pelaajan2Pisteet; 
     25 
    1226    public override void Begin() 
    1327    {// TODO: Kirjoita ohjelmakoodisi tähän 
    1428        Luokenttä(); 
    1529        aloitapeli(); 
    16         Luomaila(Level.Left + 20.0, 0.0); 
    17         Luomaila(Level.Right - 20.0, 0.0); 
    18  
    19         
     30        maila1 = Luomaila(Level.Left + 20.0, 0.0); 
     31        maila2 = Luomaila(Level.Right - 20.0, 0.0); 
     32        AsetaOhjaimet(); 
     33        LisaaLaskurit(); 
    2034 
    2135    } 
     
    2741        pallo.X = -200.0; 
    2842        pallo.Y = 3.0; 
    29         pallo.Restitution = 1.0; 
     43        pallo.Restitution = 2.9; 
    3044 
    31         
     45        pallo2 = new PhysicsObject(88, 88); 
     46        Add(pallo2); 
     47        pallo2.Shape = Shape.Circle; 
     48        pallo2.X = -200.0; 
     49        pallo2.Y = 3.0; 
     50        pallo2.Restitution = 1.0; 
    3251 
     52        AddCollisionHandler(pallo, KasittelePallonTormays); 
     53        AddCollisionHandler(pallo2, KasittelePallonTormays); 
    3354         
     55        vasenReuna = Level.CreateLeftBorder(); 
     56        vasenReuna.Restitution = 1.0; 
     57        vasenReuna.IsVisible = false; 
    3458 
    35         Level.CreateBorders(1.0, false); 
     59        oikeaReuna = Level.CreateRightBorder(); 
     60        oikeaReuna.Restitution = 1.0; 
     61        oikeaReuna.IsVisible = false; 
     62 
     63        PhysicsObject yläReuna = Level.CreateTopBorder(); 
     64        yläReuna.Restitution = 1.0; 
     65        yläReuna.IsVisible = false; 
     66 
     67        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     68        alaReuna.Restitution = 1.0; 
     69        alaReuna.IsVisible = false; 
     70 
    3671        Level.BackgroundColor = Color.Black; 
    3772        Camera.ZoomToLevel(); 
     
    4277        Vector impulssi = new Vector(500.2, 3.0); 
    4378        pallo.Hit(impulssi); 
     79 
     80        Vector impulssi1 = new Vector(500.2, 3.0); 
     81        pallo2.Hit(impulssi); 
    4482    } 
    45     void Luomaila(double x, double y) 
     83    PhysicsObject Luomaila(double x, double y) 
    4684    { 
    4785        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5189        maila.Restitution = 1.0; 
    5290        Add(maila); 
     91 
     92        return maila; 
    5393    } 
    5494    void AsetaOhjaimet() 
    5595    { 
     96        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     97        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     98        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     99        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     100 
     101        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     102        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     103        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     104        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     105 
     106        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    56107        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    57108    } 
    58109 
    59110 
    60 }    
     111 
     112    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
     113    { 
     114        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     115        { 
     116            maila.Velocity = Vector.Zero; 
     117            return; 
     118        } 
     119 
     120        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     121        { 
     122            maila.Velocity = Vector.Zero; 
     123            return; 
     124        } 
     125        maila.Velocity = nopeus; 
     126    } 
     127    void LisaaLaskurit() 
     128    { 
     129        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     130        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     131    } 
     132 
     133    IntMeter LuoPisteLaskuri(double x, double y) 
     134    { 
     135        IntMeter laskuri = new IntMeter(0); 
     136        laskuri.MaxValue = 10; 
     137 
     138        Label naytto = new Label(); 
     139        naytto.BindTo(laskuri); 
     140        naytto.X = x; 
     141        naytto.Y = y; 
     142        naytto.TextColor = Color.White; 
     143        naytto.BorderColor = Level.BackgroundColor; 
     144        naytto.Color = Level.BackgroundColor; 
     145        Add(naytto); 
     146 
     147        return laskuri; 
     148    } 
     149    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     150    { 
     151        if (kohde == oikeaReuna) 
     152        { 
     153            pelaajan1Pisteet.Value += 1; 
     154        } 
     155        else if (kohde == vasenReuna) 
     156        { 
     157            pelaajan2Pisteet.Value += 1; 
     158 
     159        } 
     160 
     161 
     162 
     163 
     164 
     165    } 
     166} 
Note: See TracChangeset for help on using the changeset viewer.