Changeset 5543


Ignore:
Timestamp:
2014-07-22 15:01:53 (5 years ago)
Author:
toolala
Message:
 
Location:
2014/30/ToukoA
Files:
102 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2014/30/ToukoA/Pong/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs

    r5512 r5543  
    1717    PhysicsObject vasenReuna; 
    1818    PhysicsObject oikeaReuna; 
     19    PhysicsObject aariVasenReuna; 
     20    PhysicsObject aariOikeaReuna; 
    1921 
    2022    IntMeter pelaajan1Pisteet; 
     
    2325    { 
    2426        LuoKentta(); 
     27        LuoPallo(); 
    2528        AsetaOhjaimet(); 
    2629        LisaaLaskurit(); 
     
    2932    void LuoKentta() 
    3033    { 
    31         //Itse pallo 
    32         pallo = new PhysicsObject(50.0, 50.0); 
    33         pallo.Shape = Shape.Triangle; 
    34         pallo.X = -200; 
    35         pallo.Y = 0.0; 
    36         pallo.Restitution = 10.0; 
    37         Add(pallo); 
    38         AddCollisionHandler(pallo, KasittelePallonTormays); 
    39  
    4034        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    4135        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    4236 
     37        //Äärimmäinen vasen reuna 
     38        aariVasenReuna = Level.CreateLeftBorder(); 
     39        aariVasenReuna.X = -700.0; 
     40        aariVasenReuna.Restitution = 2.0; 
     41        aariVasenReuna.IsVisible = true; 
     42        //Äärimmäinen oikea reuna 
     43        aariOikeaReuna = Level.CreateRightBorder(); 
     44        aariOikeaReuna.X = 700.0; 
     45        aariOikeaReuna.Restitution = 2.0; 
     46        aariOikeaReuna.IsVisible = true; 
    4347        //Vasen reuna 
    4448        vasenReuna = Level.CreateLeftBorder(); 
     49        vasenReuna.Y = 100; 
    4550        vasenReuna.Restitution = 1.0; 
    4651        vasenReuna.IsVisible = true; 
     
    4853        //Oikea reuna 
    4954        oikeaReuna = Level.CreateRightBorder(); 
     55        oikeaReuna.Y = -100; 
    5056        oikeaReuna.Restitution = 1.0; 
    5157        oikeaReuna.IsVisible = true; 
     
    7581        maila.X = x; 
    7682        maila.Y = y; 
    77         maila.Restitution = 10.0; 
     83        maila.Restitution = 1.0; 
    7884        Add(maila); 
    7985        return maila; 
     
    101107    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    102108    { 
    103         if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     109        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
    104110        { 
    105111            maila.Velocity = Vector.Zero; 
    106112            return; 
    107113        } 
    108         if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     114        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
    109115        { 
    110116            maila.Velocity = Vector.Zero; 
     
    121127    { 
    122128        IntMeter laskuri = new IntMeter(0); 
    123         laskuri.MaxValue = 10; 
     129        laskuri.MaxValue = 50; 
    124130 
    125131        Label naytto = new Label(); 
     
    137143    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
    138144    { 
     145        if ((kohde.Y < 0) && (kohde.Bottom < Level.Bottom)) 
     146        { 
     147            kohde.Velocity = Vector.Zero; 
     148        } 
     149        if ((kohde.Y > 0) && (kohde.Top > Level.Top)) 
     150        { 
     151            kohde.Velocity = Vector.Zero; 
     152        } 
     153        if (kohde == aariOikeaReuna) 
     154        { 
     155            //Tuhoaa pallon ja luo sen uudestaan 
     156            pallo.Destroy(); 
     157            maila1.Destroy(); 
     158            maila2.Destroy(); 
     159            LuoPallo(); 
     160            AloitaPeli(); 
     161        } 
     162        if (kohde == aariVasenReuna) 
     163        { 
     164            //Tuhoaa pallon ja luo sen uudestaan 
     165            pallo.Destroy(); 
     166            maila1.Destroy(); 
     167            maila2.Destroy(); 
     168            LuoKentta(); 
     169            LuoPallo(); 
     170            AsetaOhjaimet();           
     171            AloitaPeli(); 
     172        } 
    139173        if (kohde == oikeaReuna) 
    140174        { 
     
    145179            pelaajan2Pisteet.Value += 1; 
    146180        } 
    147         //Right reuna yritys 
    148        // if (kohde == Right) 
    149          //   pallo.Velocity = Vector.Zero; 
    150            // return; 
    151     } 
    152  
    153  
     181 
     182        if (kohde == aariOikeaReuna) 
     183        { 
     184            pelaajan1Pisteet.Value += 10; 
     185        } 
     186 
     187        if (kohde == aariVasenReuna) 
     188        { 
     189            pelaajan2Pisteet.Value += 10; 
     190        } 
     191    } 
     192    void LuoPallo() 
     193    { 
     194        //Itse pallo 
     195 
     196        pallo = new PhysicsObject(50.0, 50.0); 
     197        pallo.Shape = Shape.Circle; 
     198        pallo.X = -200; 
     199        pallo.Y = 0.0; 
     200        pallo.Restitution = 10.0; 
     201        Add(pallo); 
     202        AddCollisionHandler(pallo, KasittelePallonTormays); 
     203    } 
     204    const double PALLON_MIN_NOPEUS = 600; 
     205 
     206    protected override void Update(Time time) 
     207    { 
     208        if (pallo != null && Math.Abs(pallo.Velocity.X) < PALLON_MIN_NOPEUS) 
     209        { 
     210            pallo.Velocity = new Vector(pallo.Velocity.X * 1.1, pallo.Velocity.Y); 
     211        } 
     212        base.Update(time); 
     213    } 
    154214} 
Note: See TracChangeset for help on using the changeset viewer.