Changeset 8616 for 2017/24/VeikkaL


Ignore:
Timestamp:
2017-06-13 15:05:13 (2 years ago)
Author:
npo17_24
Message:
 
Location:
2017/24/VeikkaL/Pong
Files:
6 edited

Legend:

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

    r8570 r8616  
    1212    Vector nopeusAlas = new Vector(0, -200); 
    1313    PhysicsObject pallo; 
    14  
    1514    PhysicsObject maila1; 
    1615    PhysicsObject maila2; 
     16    PhysicsObject OikeaReuna; 
     17    PhysicsObject VasenReuna; 
     18    IntMeter pelaajan1Pisteet; 
     19    IntMeter pelaajan2Pisteet; 
    1720    public override void Begin() 
    1821    { 
    19          
     22 
    2023        Level.Height = Screen.Height; 
    2124        Level.Width = Screen.Width; 
     
    2427        AsetaOhjaimet(); 
    2528        AloitaPeli(); 
    26          
     29        LisaaLaskurit(); 
     30 
    2731        // TODO: Kirjoita ohjelmakoodisi tähän 
    28         
     32 
    2933        Vector impulssi = new Vector(3250.0, 0.0); 
    3034        pallo.Hit(impulssi); 
    31         
    32          
     35 
     36 
    3337    } 
    3438 
     
    4044        pallo.X = 0.0; 
    4145        pallo.Y = 0.0; 
    42         Level.CreateBorders(1.0, false); 
     46        PhysicsObject VasenReuna = Level.CreateLeftBorder(); 
     47        VasenReuna.Restitution = 1.0; 
     48        VasenReuna.IsVisible = false; 
     49 
    4350        pallo.Restitution = 1.0; 
    44         
    45       maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
    46       maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
    47         
     51 
     52        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     53        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     54 
    4855 
    4956        Level.Background.Color = Color.Red; 
    5057        //Camera.ZoomToLevel(10); 
    51  
     58        AddCollisionHandler(pallo, KasittelePallonTormays); 
    5259    } 
    5360    void AloitaPeli() 
     
    8188    void AsetaOhjaimet() 
    8289    { 
    83         Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
    84         Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
    85         Keyboard.Listen(Key.Z,) ButtonState.Down,  AsetaNopeus,     
     90        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     91        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     92        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     93        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     94 
     95        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     96        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     97        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     98        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     99 
     100        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    86101 
    87102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    88103 
    89          
     104      
    90105    } 
     106 
     107 
     108 
    91109    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    92110    { 
     111        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     112        { 
     113            maila.Velocity = Vector.Zero; 
     114            return; 
     115        } 
     116        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     117        { 
     118            maila.Velocity = Vector.Zero; 
     119            return; 
     120        } 
     121 
    93122        maila.Velocity = nopeus; 
    94123    } 
     124void LisaaLaskurit() 
     125{ 
     126    pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     127    pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
    95128} 
     129IntMeter LuoPisteLaskuri(double x, double y) 
     130{ 
     131    IntMeter laskuri = new IntMeter(0); 
     132    laskuri.MaxValue = 10; 
     133    Label naytto = new Label(); 
     134    naytto.BindTo(laskuri); 
     135    naytto.X = x; 
     136    naytto.Y = y; 
     137    naytto.TextColor = Color.White; 
     138    naytto.BorderColor = Level.Background.Color; 
     139    naytto.Color = Level.Background.Color; 
     140    Add(naytto); 
     141    return laskuri; 
     142} 
     143    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     144    { 
     145        if (kohde == OikeaReuna) 
     146        { 
     147            pelaajan1Pisteet.Value += 1; 
     148        } 
     149        else if (kohde == VasenReuna) 
     150        { 
     151            pelaajan2Pisteet.Value += 1; 
     152        } 
     153    } 
     154} 
Note: See TracChangeset for help on using the changeset viewer.