Changeset 8116


Ignore:
Timestamp:
2016-07-26 14:54:18 (3 years ago)
Author:
kaspalmu
Message:
 
Location:
2016/30/KasimirP
Files:
9 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2016/30/KasimirP/Pong/Pong/Pong/Pong.cs

    r8098 r8116  
    99public class Pong : PhysicsGame 
    1010{ 
     11    Vector nopeusYlos = new Vector(0, 200); 
     12    Vector nopeusAlas = new Vector(0, -200); 
     13 
    1114    PhysicsObject pallo; 
    1215 
     16    PhysicsObject maila1; 
     17    PhysicsObject maila2; 
     18 
     19    IntMeter pelaajan1Pisteet; 
     20    IntMeter pelaajan2Pisteet; 
     21 
     22    PhysicsObject oikeaReuna; 
     23    PhysicsObject vasenReuna; 
     24 
     25 
     26    IntMeter LuoPisteLaskuri(double x, double y) 
     27    { 
     28        IntMeter laskuri = new IntMeter(0); 
     29        laskuri.MaxValue = 10; 
     30 
     31        Label naytto = new Label(); 
     32        naytto.BindTo(laskuri); 
     33        naytto.X = x; 
     34        naytto.Y = y; 
     35        naytto.TextColor = Color.RosePink; 
     36        naytto.BorderColor = Level.Background.Color; 
     37        naytto.Color = Level.Background.Color; 
     38        Add(naytto); 
     39 
     40        return laskuri; 
     41 
     42    } 
     43 
    1344    public override void Begin() 
    1445    { 
     46        ClearAll(); 
    1547        // TODO: Kirjoita ohjelmakoodisi tähän 
    1648        LuoKentta(); 
    17  
    18         
     49        AsetaOhjaimet(); 
     50 
     51        AloitaPeli(); 
     52        LisaaLaskurit(); 
     53 
     54 
     55 
     56 
    1957    } 
    2058 
     
    2563        pallo.X = 0.0; 
    2664        pallo.Y = -0.0; 
    27         pallo.Restitution = 1.0; 
     65        pallo.Restitution = 1.5; 
    2866        pallo.Color = Color.Yellow; 
    2967        Add(pallo); 
    3068        Camera.ZoomToLevel(); 
    31         Level.CreateBorders(1, false); 
    32          
    33          
     69        vasenReuna = Level.CreateLeftBorder(); 
     70        vasenReuna.Restitution = 1.0; 
     71        vasenReuna.IsVisible = false; 
     72        oikeaReuna = Level.CreateRightBorder(); 
     73        oikeaReuna.Restitution = 1.0; 
     74        oikeaReuna.IsVisible = false; 
     75        PhysicsObject alareuna = Level.CreateBottomBorder(); 
     76        alareuna.Restitution = 1.0; 
     77        alareuna.IsVisible = false; 
     78        PhysicsObject yläreuna = Level.CreateTopBorder(); 
     79        yläreuna.Restitution = 1.0; 
     80        yläreuna.IsVisible = false; 
     81 
     82 
     83 
     84 
     85 
     86 
     87 
     88        AddCollisionHandler(pallo, KasittelePallonTormays); 
     89 
     90 
     91 
    3492        Level.Background.Color = Color.Black; 
    3593        Camera.ZoomToLevel(); 
    3694 
    37         LuoMaila(Level.Left + 20.0, 0.0); 
    38         LuoMaila(Level.Right - 20.0, 0.0); 
    39  
    40             
    41  
    42          
    43  
    44         AloitaPeli(); 
     95        maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
     96        maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
     97 
     98 
     99 
     100 
     101 
     102 
    45103    } 
    46104    public void AloitaPeli() 
    47105    { 
     106        pallo.Position = Vector.Zero; 
     107 
    48108        Vector impulssi = new Vector(500.0, 0.0); 
    49109        pallo.Hit(impulssi); 
    50          
    51     }  
    52     void LuoMaila(double x, double y) 
     110 
     111    } 
     112    PhysicsObject LuoMaila(double x, double y) 
    53113    { 
    54114        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); 
     
    59119        maila.Color = Color.Blue; 
    60120        Add(maila); 
    61  
    62          
     121        return maila; 
     122 
     123 
     124    } 
     125 
     126    private void AloitaUudestaan() 
     127    { 
     128 
    63129    } 
    64130 
    65131    void AsetaOhjaimet() 
    66132    { 
    67         Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMailaYlos, "Pelaaja 1: Liikuta mailaa ylös"); 
    68         Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila, null); 
    69  
    70         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli xddd"); 
    71     } 
    72      
     133        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "LiikutaMailaYlos, Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos); 
     134        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     135 
     136        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Niko on noob"); 
     137        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas); 
     138        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     139 
     140        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos); 
     141        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     142 
     143        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas); 
     144        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     145 
     146        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet kek"); 
     147        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaUudestaan, "Aloita uudestaan xd (niko on noob)"); 
     148        Window.Fullscreen = true; 
     149 
     150        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila1, nopeusYlos); 
     151        ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     152        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila1, nopeusAlas); 
     153        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); 
     154 
     155        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta mailaa ylös", maila2, nopeusYlos); 
     156        ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     157        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta mailaa alas", maila2, nopeusAlas); 
     158        ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); 
     159 
     160        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     161        ControllerTwo.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     162 
     163    } 
     164 
    73165    void AsetaNopeus(PhysicsObject maila, Vector nopeus) 
    74166    { 
     167        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
     168        { 
     169            maila.Velocity = Vector.Zero; 
     170            return; 
     171        } 
     172 
     173 
     174        if ((nopeus.Y > 0) && (maila.Top > Level.Top)) 
     175        { 
     176            maila.Velocity = Vector.Zero; 
     177            return; 
     178 
     179        } 
    75180        maila.Velocity = nopeus; 
    76      
    77      
    78     }   
    79     
     181 
     182 
     183 
     184    } 
     185    void LisaaLaskurit() 
     186    { 
     187        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     188        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0); 
     189    } 
     190 
     191    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) 
     192    { 
     193 
     194        if (kohde == oikeaReuna) 
     195        { 
     196            pelaajan1Pisteet.Value += 1; 
     197            //pallo.Position = Vector.Zero; 
     198 
     199            Vector impulssi = new Vector(500.0, 0.0); 
     200            //pallo.Hit(impulssi); 
     201        } 
     202        else if (kohde == vasenReuna) 
     203        { 
     204            pelaajan2Pisteet.Value += 1; 
     205            //Timer.SingleShot(0.01, AloitaPeli); 
     206        } 
     207    } 
     208 
     209 
     210 
    80211} 
Note: See TracChangeset for help on using the changeset viewer.