Changeset 6513 for 2015/27


Ignore:
Timestamp:
2015-06-29 14:26:11 (4 years ago)
Author:
misakana
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/27/JesseS/Pong/Pong/Pong/Pong.cs

    r6501 r6513  
    1313 
    1414    PhysicsObject pallo; 
    15  
    1615    PhysicsObject maila1; 
    1716    PhysicsObject maila2; 
     17 
     18    PhysicsObject vasenReuna; 
     19    PhysicsObject oikeaReuna; 
     20 
     21 
     22    IntMeter pelaajan1Pisteet; 
     23    IntMeter pelaajan2Pisteet; 
    1824 
    1925    public override void Begin() 
     
    2228        AsetaOhjaimet(); 
    2329        AloitaPeli(); 
    24          
     30        LisaaLaskurit(); 
    2531 
    2632        Vector impulssi = new Vector(500.0, 0.0); 
    2733        pallo.Hit(impulssi); 
    28  
    29         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    3034 
    3135    } 
     
    4650    } 
    4751 
    48  
    49  
    50  
    51  
    52  
    53  
    54  
    55  
    56  
    57      
    58  
    59  
    6052    void AloitaPeli() 
    6153    { 
    6254        Vector impulssi = new Vector(500.0, 0.0); 
    6355        pallo.Hit(impulssi); 
    64     } 
     56 } 
    6557 
    6658    void LuoKentta() 
     
    7264        pallo.Restitution = 1.0; 
    7365        Add(pallo); 
     66        pallo.Color = Color.Navy; 
     67 
     68        AddCollisionHandler(pallo, KasittelePallonTormays); 
    7469 
    7570        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    7671        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     72        maila1.Color = Color.Gold; 
     73        maila2.Color = Color.Gold; 
    7774 
     75     
    7876 
    79         LuoMaila(Level.Left + 20.0, 0.0); 
    80         LuoMaila(Level.Right - 20.0, 0.0); 
     77        vasenReuna = Level.CreateLeftBorder(); 
     78        vasenReuna.Restitution = 1.0; 
     79        vasenReuna.IsVisible = false; 
    8180 
     81        oikeaReuna = Level.CreateRightBorder(); 
     82        oikeaReuna.Restitution = 1.0; 
     83        oikeaReuna.IsVisible = false; 
    8284 
    83         Level.CreateBorders(1.0, false); 
    84         Level.Background.Color = Color.Black; 
     85        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     86        ylaReuna.Restitution = 1.0; 
     87        ylaReuna.IsVisible = false; 
     88 
     89        PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     90        alaReuna.Restitution = 1.0; 
     91        alaReuna.IsVisible = false; 
     92 
     93        Level.Background.Color = Color.Turquoise; 
    8594 
    8695        Camera.ZoomToLevel(); 
     96 
    8797    } 
    8898 
    89  
     99    void LisaaLaskurit() 
     100    { 
     101       pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     102       pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     103    } 
     104     
    90105    PhysicsObject LuoMaila(double x, double y) 
    91106    { 
     
    98113        return maila; 
    99114    } 
     115 
     116    IntMeter LuoPisteLaskuri(double x, double y) 
     117    { 
     118        IntMeter laskuri = new IntMeter(0); 
     119        laskuri.MaxValue = 30; 
     120        Label naytto = new Label(); 
     121        naytto.BindTo(laskuri); 
     122        naytto.X = x; 
     123        naytto.Y = y; 
     124        naytto.TextColor = Color.White; 
     125        naytto.BorderColor = Level.Background.Color; 
     126        naytto.Color = Level.Background.Color; 
     127        naytto.Font = Font.DefaultLargeBold; 
     128        Add(naytto); 
     129 
     130        return laskuri; 
     131    } 
     132 
     133    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     134    { 
     135        if (kohde == oikeaReuna) 
     136        { 
     137            pelaajan1Pisteet.Value += 1; 
     138        } 
     139        else if (kohde == vasenReuna) 
     140        { 
     141            pelaajan2Pisteet.Value += 1; 
     142        } 
     143    } 
     144     
    100145    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    101146    { 
     147        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     148        { 
     149            maila.Velocity = Vector.Zero; 
     150            return; 
     151        } 
     152        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     153        { 
     154            maila.Velocity = Vector.Zero; 
     155            return; 
     156        } 
     157 
    102158        maila.Velocity = nopeus; 
    103159    } 
     160 
    104161} 
     162 
Note: See TracChangeset for help on using the changeset viewer.