Changeset 291 for santeri_h


Ignore:
Timestamp:
2009-08-05 13:44:21 (12 years ago)
Author:
saolhaka
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • santeri_h/Kynari/Peli.cs

    r273 r291  
    1919        #region Muuttujat 
    2020 
    21         const double liikeVoima = 4000; 
    22         const double hyppyVoima = 2500; 
    23  
    24         Meter<int> pisteLaskuri; 
    25         ValueDisplay pisteNaytto; 
     21        const double liikeVoima = 2000; 
     22        const double hyppyVoima = 2000; 
    2623 
    2724        PlatformCharacter pelaaja1; 
    28         PhysicsObject maali; 
    29  
    30         int kenttaNro; // monesko kenttä on menossa 
     25        PlatformCharacter pelaaja2; 
    3126 
    3227        #endregion 
     
    3631        protected override void LoadContent() 
    3732        { 
    38             // Asetetaan kentän numero nollaksi, jota kasvatetaan kentän latauksessa (aina siis vähintään 1) 
    39             kenttaNro = 0; 
    40  
    4133            DrawPerimeter = false; // ei haluta piirtää kentän reunoja 
    42  
    43             // Luodaan pistelaskuri 
    44             pisteLaskuri = new Meter<int>(0, 0, 1000000); 
    45  
    46             // luodaan pistelaskunäyttö 
    47             pisteNaytto = new ValueDisplay(this); 
    48             pisteNaytto.Text = "Pisteitä: "; 
    49             pisteNaytto.X = Screen.RightSafe - 250; 
    50             pisteNaytto.Y = Screen.TopSafe - 50; 
    51             pisteNaytto.BindTo(pisteLaskuri); 
    52             Add(pisteNaytto);    // lisätään peliin 
    5334 
    5435            // Asetetaan painovoima 
     
    5637 
    5738            // Zoomataan lähemmäksi 
    58             Camera.ZoomFactor = 2.0; 
     39            Camera.ZoomFactor = 1.0; 
    5940 
    6041            aloitaUusiPeli(); 
     
    6546        { 
    6647            MessageDisplay.Clear(); 
    67  
    68             kenttaNro = 0; 
    6948 
    7049            // ladataan kenttä 
    7150            Level = seuraavaKentta(); 
    7251 
    73             // Laitetaan peliohje näyttöön 
    74             MessageDisplay.Add("Etsi iso tähti!"); 
    75             MessageDisplay.Add("Mutta varo haamuja..."); 
    7652        } 
    7753        #endregion 
     
    8157        Level seuraavaKentta() 
    8258        { 
    83             pisteLaskuri.Reset(); 
    84             kenttaNro += 1; // lisätään kenttänumeroa yhdellä 
    85             MessageDisplay.Add("Kenttä " + kenttaNro); 
    8659            Level seuraava = luoKentta(); 
    8760            lisaaNappaimet(); 
     
    9063        } 
    9164 
     65        void MuutaZoom(Timer sender) 
     66        { 
     67            //Camera.Zoom(1.0 + (Math.Abs(pelaaja1.X-pelaaja2.X)/1000)); 
     68        } 
     69 
    9270        Level luoKentta() 
    9371        { 
    94             Level kentta = new Level(this, 2000, 1000); 
     72            Level kentta = new Level(this, 4000, 1000); 
    9573            kentta.CreateBorder(); 
    9674            kentta.Borders.Visible = false; 
     
    10280            kentta.Objects.Add(alusta); 
    10381 
     82            Timer ajastin = new Timer(); 
     83            ajastin.Interval = 1; 
     84            ajastin.Trigger += new Timer.TriggerHandler(MuutaZoom); 
     85            AddTimer(ajastin); 
     86            ajastin.Start(); 
     87 
    10488            lisaaPieniTaso(kentta, -200, -350); 
    105             lisaaPieniTaso(kentta, 0, -200); 
    106             lisaaPieniTaso(kentta, 400, -150); 
    107  
    108             lisaaPieniTaso(kentta, 500, 0); 
    109             lisaaPieniTaso(kentta, 400, 100); 
     89            lisaaPieniTaso(kentta, 0, -400); 
     90            lisaaPieniTaso(kentta, 100, -300); 
     91            lisaaPieniTaso(kentta, 400, -300); 
     92            lisaaPieniTaso(kentta, -500, -400); 
     93            lisaaPieniTaso(kentta, -400, -300); 
     94            lisaaPieniTaso(kentta, -150, -150); 
     95            lisaaPieniTaso(kentta, -870, -350); 
     96            lisaaPieniTaso(kentta, -700, -400); 
     97 
     98            lisaaPieniTaso(kentta, 600, -250); 
     99            lisaaPieniTaso(kentta, 200, -200); 
     100 
     101            lisaaPystyTaso(kentta, 600, -450); 
     102            lisaaPystyTaso(kentta, -600, -500); 
     103 
     104            lisaaReuna(kentta, -900, 0); 
     105            lisaaReuna(kentta, 900, 0); 
    110106 
    111107            lisaaPelaajat(kentta); 
     
    122118        } 
    123119 
     120        void lisaaReuna(Level kentta, double x, double y) 
     121        { 
     122            Platform taso = new Platform(50, 1000, Color.DimGray); 
     123            taso.X = x; 
     124            taso.Y = y; 
     125            kentta.Objects.Add(taso); 
     126        } 
     127 
     128        void lisaaPystyTaso(Level kentta, double x, double y) 
     129        { 
     130            Platform taso = new Platform(30, 100, Color.DimGray); 
     131            taso.X = x; 
     132            taso.Y = y; 
     133            kentta.Objects.Add(taso); 
     134        } 
     135 
    124136        void lisaaPelaajat(Level kentta) 
    125137        { 
     
    127139            pelaaja1.Texture = Content.Load<Texture2D>("norsu"); 
    128140            pelaaja1.X = 0; 
    129             pelaaja1.Y = kentta.Bottom + 120; 
    130  
    131             AddCollisionHandler(pelaaja1, osuiMaaliin); 
     141            pelaaja1.Y = kentta.Bottom + 20; 
     142 
     143            pelaaja2 = new PlatformCharacter(4, Shapes.CreateCircle(20)); 
     144            pelaaja2.Texture = Content.Load<Texture2D>("norsu"); 
     145            pelaaja2.X = 200; 
     146            pelaaja2.Y = kentta.Bottom + 20; 
    132147 
    133148            kentta.Objects.Add(pelaaja1); 
     149            kentta.Objects.Add(pelaaja2); 
    134150        } 
    135151        #endregion 
     
    145161 
    146162            // Pelaajan näppäimet 
    147             Controls.Listen(Keys.Left, ButtonPosition.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, new Vector2D(-liikeVoima, 0)); 
    148             Controls.Listen(Keys.Right, ButtonPosition.Down, liikuta, "Liikkuu oikealle", pelaaja1, new Vector2D(liikeVoima, 0)); 
    149             Controls.Listen(Keys.Up, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima); 
     163            Controls.Listen(Keys.A, ButtonPosition.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, new Vector2D(-liikeVoima, 0)); 
     164            Controls.Listen(Keys.D, ButtonPosition.Down, liikuta, "Liikkuu oikealle", pelaaja1, new Vector2D(liikeVoima, 0)); 
     165            Controls.Listen(Keys.W, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima); 
     166 
     167            Controls.Listen(Keys.Left, ButtonPosition.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, new Vector2D(-liikeVoima, 0)); 
     168            Controls.Listen(Keys.Right, ButtonPosition.Down, liikuta, "Liikkuu oikealle", pelaaja2, new Vector2D(liikeVoima, 0)); 
     169            Controls.Listen(Keys.Up, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima); 
    150170 
    151171            lisaaGamePadNappaimet(PlayerIndex.One, pelaaja1); 
     
    156176            //Yleiset näppäimet 
    157177            Controls.Listen(pelaajaNro, Buttons.Start, ButtonPosition.Pressed, uusiPeli, "Aloittaa uuden pelin"); 
     178 
     179            Controls.Listen(pelaajaNro, Buttons.DPadLeft, ButtonPosition.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja, new Vector2D(-liikeVoima, 0)); 
     180            Controls.Listen(pelaajaNro, Buttons.DPadRight, ButtonPosition.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja, new Vector2D(liikeVoima, 0)); 
     181            Controls.Listen(pelaajaNro, Buttons.A, ButtonPosition.Pressed, hyppaa, "Pelaaja hyppää", pelaaja, hyppyVoima); 
    158182 
    159183            Controls.Listen(pelaajaNro, Buttons.DPadLeft, ButtonPosition.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja, new Vector2D(-liikeVoima, 0)); 
     
    175199            PlatformCharacter hahmo = e.Parameter0 as PlatformCharacter; 
    176200            double voima = e.Parameter1.ToDouble(); 
     201 
     202            if (Math.Abs(hahmo.Velocity.Y) > 0.001) 
     203            { 
     204                return false; 
     205            } 
    177206 
    178207            if (hahmo.Jump(voima)) 
     
    189218        } 
    190219        #endregion 
    191  
    192  
    193         #region Tapahtumat 
    194         // Kun osutaan maaliin 
    195         void osuiMaaliin(Collision collision) 
    196         { 
    197             if (collision.Other.Tag == "maali") 
    198             { 
    199                 this.PlaySound("maali"); 
    200                 int edellisenKentanPisteet = pisteLaskuri.Value; 
    201                 Level = seuraavaKentta(); 
    202                 MessageDisplay.Add("Pääsit läpi kentän " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet); 
    203             } 
    204         } 
    205  
    206         // Kerää tähden ja antaa pisteen 
    207         void keraa(Collision collision) 
    208         { 
    209             if (collision.Other.Equals(pelaaja1)) 
    210             { 
    211                 PhysicsObject tahti = collision.Obj; 
    212                 tahti.Destroy(); 
    213  
    214                 this.PlaySound("kerays", -0.5, 0.5); 
    215                 pisteLaskuri.Value += 1; 
    216             } 
    217         } 
    218  
    219         // Haamu tuuppaa pelaajaa 
    220         void tuuppaa(Collision collision) 
    221         { 
    222             if (collision.Other is PlatformCharacter) 
    223             { 
    224                 double luku1 = RandomGen.NextIntRange(-10000, -8000, 8000, 10000); 
    225                 double luku2 = RandomGen.NextIntRange(-10000, -8000, 8000, 10000); 
    226  
    227                 if (collision.Other == pelaaja1) 
    228                 { 
    229                     // pieni värinä törmäyksestä 
    230                     Controls.GameControllers[PlayerIndex.One].Vibrate(0.5, 0.5, 0.0, 0.0, 0.1); 
    231                 } 
    232                 this.PlaySound("tuuppaus"); 
    233                 collision.Other.Hit(new Vector2D(luku1, luku2)); 
    234             } 
    235         } 
    236         #endregion 
    237220    } 
    238221} 
Note: See TracChangeset for help on using the changeset viewer.