Changeset 8526 for 2017/24/MikoA/Pong


Ignore:
Timestamp:
2017-06-12 14:56:03 (2 years ago)
Author:
npo17_20
Message:
 
Location:
2017/24/MikoA/Pong
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2017/24/MikoA/Pong/Pong/Pong/Pong.cs

    r8492 r8526  
    1616    PhysicsObject maila2; 
    1717 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21    IntMeter pelaajan1Pisteet; 
     22    IntMeter pelaajan2Pisteet; 
    1823    public override void Begin() 
    1924    { 
    2025        LuoKentta(); 
    2126        AsetaOhjaimet(); 
     27        LisaaLaskurit(); 
    2228        AloitaPeli(); 
    2329    } 
     
    3036        pallo.Y = 0.0; 
    3137        pallo.Restitution = 1.0; 
     38        pallo.KineticFriction = 0.0; 
     39        pallo.MomentOfInertia = Double.PositiveInfinity; 
    3240        Add(pallo); 
     41        AddCollisionHandler(pallo, KasittelePallonTormays); 
    3342 
    3443        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    3544        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    3645 
     46        vasenReuna = Level.CreateLeftBorder(); 
     47        vasenReuna.Restitution = 1.0; 
     48        vasenReuna.KineticFriction = 0.0; 
     49        vasenReuna.IsVisible = false; 
     50        oikeaReuna = Level.CreateRightBorder(); 
     51        oikeaReuna.Restitution = 1.0; 
     52        oikeaReuna.KineticFriction = 0.0; 
     53        oikeaReuna.IsVisible = false; 
     54        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     55        ylaReuna.Restitution = 1.0; 
     56        ylaReuna.KineticFriction = 0.0; 
     57        ylaReuna.IsVisible = false; 
     58        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     59        alaReuna.Restitution = 1.0; 
     60        alaReuna.KineticFriction = 0.0; 
     61        alaReuna.IsVisible = false; 
    3762 
    38         Level.CreateBorders(1.0, false); 
    39         Level.BackgroundColor = Color.Green; 
    40  
     63        Level.BackgroundColor = Color.Black; 
     64         
     65         
    4166        Camera.ZoomToLevel(); 
    4267 
    4368    } 
    44     void AloitaPeli() 
    45     { 
    46         Vector impulssi = new Vector(500.0, 0.0); 
    47         pallo.Hit(impulssi); 
    48     } 
    49     void LuoMaila(double x, double y) 
     69     
     70    PhysicsObject LuoMaila(double x, double y) 
    5071    { 
    5172     PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    5778        return maila; 
    5879     } 
     80    void AloitaPeli() 
     81    { 
     82        Vector impulssi = new Vector(500.0, 0.0); 
     83        pallo.Hit(impulssi); 
     84    } 
    5985    void AsetaOhjaimet() 
    6086    { 
     
    74100    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    75101    { 
     102        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     103        { 
     104            maila.Velocity = Vector.Zero; 
     105            return; 
     106        } 
     107        if((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     108        { 
     109            maila.Velocity = Vector.Zero; 
     110            return; 
     111        } 
    76112        maila.Velocity = nopeus; 
    77113    } 
     114    void LisaaLaskurit() 
     115    { 
     116        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     117        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     118    } 
     119    IntMeter LuoPisteLaskuri(double x, double y) 
     120    { 
     121        IntMeter laskuri =new IntMeter(0); 
     122        laskuri.MaxValue = 10; 
     123 
     124        Label naytto = new Label(); 
     125        naytto.BindTo(laskuri); 
     126        naytto.X = x; 
     127        naytto.Y = y; 
     128        naytto.TextColor = Color.White; 
     129        naytto.BorderColor= Level.Background.Color; 
     130        naytto.Color = Level.Background.Color; 
     131        Add(naytto); 
     132        return laskuri; 
     133    } 
     134    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     135    { 
     136        if (kohde == oikeaReuna) 
     137        { 
     138            pelaajan1Pisteet.Value += 1; 
     139        } 
     140        else if (kohde == vasenReuna) 
     141        { 
     142            pelaajan2Pisteet.Value += 1; 
     143        } 
     144    } 
     145 
    78146} 
Note: See TracChangeset for help on using the changeset viewer.