Changeset 690 for 2010/23


Ignore:
Timestamp:
2010-06-10 14:57:42 (9 years ago)
Author:
laemkaup
Message:

Tein pelini valmiiksi, paitsi kello puuttuu ja hirviöt eivät liiku.

Location:
2010/23/laemkaup/Tasohyppelypeli
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/laemkaup/Tasohyppelypeli/Content/Content.contentproj

    r670 r690  
    6868    </Compile> 
    6969  </ItemGroup> 
     70  <ItemGroup> 
     71    <Compile Include="karkki.png"> 
     72      <Name>karkki</Name> 
     73      <Importer>TextureImporter</Importer> 
     74      <Processor>TextureProcessor</Processor> 
     75    </Compile> 
     76  </ItemGroup> 
     77  <ItemGroup> 
     78    <Compile Include="hammaspeikko.png"> 
     79      <Name>hammaspeikko</Name> 
     80      <Importer>TextureImporter</Importer> 
     81      <Processor>TextureProcessor</Processor> 
     82    </Compile> 
     83  </ItemGroup> 
    7084  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    7185  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2010/23/laemkaup/Tasohyppelypeli/Peli.cs

    r670 r690  
    88 
    99namespace Tasohyppelypeli 
    10  
    1110{ 
    1211 
    13  class Tasohyppely : PhysicsGame 
    14  { 
     12    class Tasohyppely : PhysicsGame 
     13    { 
    1514        const int ruudunLeveys = 30; 
    1615        const int ruudunKorkeus = 30; 
    1716 
    18         
    19     
     17 
     18 
    2019        const double nopeus = 200; 
    2120        const double hyppyVoima = 4000; 
    22      
    23         IntMeter pisteLaskuri; 
     21 
     22 
    2423        ValueDisplay pisteNaytto; 
    2524 
     
    2827        int kenttaNro; // monesko kenttä on menossa 
    2928 
    30      
     29        IntMeter pistelaskuri; 
     30 
     31 
    3132        protected override void Begin() 
    3233        { 
     
    3435            Level.Width = 1500; 
    3536            Level.Height = 1000; 
    36  
    37             // Luodaan pistelaskuri 
    38             pisteLaskuri = new IntMeter(0); 
    39  
    40             // luodaan pistelaskunäyttö 
    41             pisteNaytto = new ValueDisplay(); 
    42             pisteNaytto.Text = "Pisteitä: "; 
    43             pisteNaytto.X = Screen.RightSafe - 250; 
    44             pisteNaytto.Y = Screen.TopSafe - 50; 
    45             pisteNaytto.BindTo(pisteLaskuri); 
    46             Add(pisteNaytto);    // lisätään peliin 
    47  
    4837            // Zoomataan lähemmäksi 
    4938            Camera.ZoomFactor = 2.0; 
     
    5443            MessageDisplay.Add("Kerää kaikki porkkanat"); 
    5544        } 
    56  
     45        void laskuriYlarajassa(int arvo) 
     46        { 
     47            MessageDisplay.TextColor = Color.Black; 
     48            MessageDisplay.Add(" Onnea! Voitit hammaspeikot!"); 
     49        } 
    5750        void seuraavaKentta() 
    5851        { 
    5952            ClearAll(); 
    60             pisteLaskuri.Reset(); 
     53             
    6154 
    6255            kenttaNro += 1; // lisätään kenttänumeroa yhdellä 
     
    6861            luoKentta(); 
    6962            lisaaNappaimet(); 
     63            lisaaLaskurit(); 
    7064            Camera.Follow(pelaaja1); 
     65        } 
     66 
     67        private void lisaaLaskurit() 
     68        { 
     69            pistelaskuri = new IntMeter(0); 
     70            ValueDisplay pisteNaytto = new ValueDisplay(); 
     71            pisteNaytto.Text = "Porkkanoita: "; 
     72            pisteNaytto.X = Screen.Right - 100; 
     73            pisteNaytto.Y = Screen.Top - 20; 
     74            pisteNaytto.ValueColor = Color.Green; 
     75            pisteNaytto.TextColor = Color.Green; 
     76            pisteNaytto.BindTo(pistelaskuri); 
     77            Add(pisteNaytto); 
     78            pistelaskuri.MaxValue = 20; 
     79            pistelaskuri.UpperLimit += laskuriYlarajassa; 
     80 
    7181        } 
    7282 
     
    7686            merkit['x'] = LuoPalikka; 
    7787            merkit['p'] = LuoPorkkana; 
     88            merkit['k'] = LuoKarkki; 
    7889 
    7990            char[,] ruudut = Tiles.ReadFromFile("kenttä.txt"); 
     
    107118            Level.CreateBorders(); 
    108119 
    109        } 
     120        } 
    110121        void lisaaTaso(double x, double y, double koko) 
    111122        { 
    112           PhysicsObject taso2 = PhysicsObject.CreateStaticObject ( koko,30); 
    113           taso2.Color = Color.Yellow; 
    114           taso2.X = x; 
    115           taso2.Y = y; 
    116           Add(taso2); 
     123            PhysicsObject taso2 = PhysicsObject.CreateStaticObject(koko, 30); 
     124            taso2.Color = Color.Yellow; 
     125            taso2.X = x; 
     126            taso2.Y = y; 
     127            Add(taso2); 
    117128        } 
    118129 
     
    132143            porkkana.Image = LoadImage("porkkana"); 
    133144            porkkana.Tag = "porkkana"; 
     145 
    134146            return porkkana; 
    135147 
    136148        } 
    137  
    138  
    139  
    140           
    141          
     149        PhysicsObject LuoKarkki() 
     150        { 
     151            PhysicsObject karkki = PhysicsObject.CreateStaticObject(30.0, 30.0); 
     152            karkki.Image = LoadImage("karkki"); 
     153            karkki.Tag = "karkki"; 
     154 
     155            return karkki; 
     156        } 
     157 
     158 
     159 
     160 
     161 
    142162 
    143163        void lisaaPelaajat() 
     
    149169            pelaaja1.Y = Level.Bottom + 120; 
    150170 
    151             AddCollisionHandler(pelaaja1, osuiMaaliin); 
     171            AddCollisionHandler(pelaaja1, pelaajaOsui); 
    152172 
    153173            Add(pelaaja1); 
     
    196216        } 
    197217 
    198         void osuiMaaliin(PhysicsObject collidingObject, PhysicsObject otherObject) 
     218        void pelaajaOsui(PhysicsObject collidingObject, PhysicsObject otherObject) 
    199219        { 
    200220            if (otherObject.Tag.ToString() == "maali") 
    201221            { 
    202222                this.PlaySound("maali"); 
    203                 int edellisenKentanPisteet = pisteLaskuri.Value; 
     223                int edellisenKentanPisteet = pistelaskuri.Value; 
    204224                seuraavaKentta(); 
    205225                MessageDisplay.Add("Pääsit läpi kentän " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet); 
     
    207227            if (otherObject.Tag.ToString() == "porkkana") 
    208228            { 
    209                 MessageDisplay.Add("porkkana"); 
    210             } 
    211  
    212         } 
     229                pistelaskuri.Value++; // ++ tarkoittaa että arvoa lisätään yhdellä 
     230                otherObject.Destroy(); 
     231            } 
     232            if (otherObject.Tag.ToString() == "karkki") 
     233            { 
     234                otherObject.Destroy(); 
     235                LuoHammaspeikko(); 
     236            } 
     237        } 
     238 
     239        void LuoHammaspeikko() 
     240        { 
     241            PhysicsObject hammaspeikko = new PhysicsObject(120, 120, Shapes.Circle);             
     242            hammaspeikko.Image = LoadImage("hammaspeikko"); 
     243            hammaspeikko.Tag = "hammaspeikko"; 
     244            hammaspeikko.Position = new Vector(RandomGen.NextDouble(Level.Left, Level.Right), 
     245                                               RandomGen.NextDouble(Level.Bottom, Level.Top)); 
     246 
     247            // TODO : miten hammaspeikot liikkumaan ?             
     248 
     249            AddCollisionHandler(hammaspeikko, osuttiinHammaspeikkoon); 
     250            Add(hammaspeikko); 
     251        } 
     252 
     253        void osuttiinHammaspeikkoon(PhysicsObject peikko, PhysicsObject kukaOsui) 
     254        { 
     255            if (kukaOsui is PlatformCharacter) 
     256            { 
     257                Explosion rajahdys = new Explosion(1000); 
     258                rajahdys.Position = pelaaja1.Position; 
     259 
     260                rajahdys.Speed = 500.0; 
     261                rajahdys.Force = 10000; 
     262                rajahdys.ShockwaveColor = Color.Red; 
     263                Add(rajahdys);  
     264                MessageDisplay.Add("Osuit hammaspeikkoon, hävisit pelin!"); 
     265                pelaaja1.Destroy(); 
     266            } 
     267         
     268        }  
    213269    } 
     270     
    214271} 
  • 2010/23/laemkaup/Tasohyppelypeli/kenttä.txt

    r670 r690  
    22                                          
    33                                      
    4                                            p 
     4                                          k p k 
    55                                     xxxxxxxxxxxx 
    66 
    77                                                 
    88                                                 
    9                                                p                                                   
    10                                           xxxxxxxxxx                                             p 
    11                                                                                             xxxxxxxxxxxxx 
    12                                                        xxx                     p  
     9                                             k  p                                                   
     10                                          xxxxxxxxxx                                         k    p 
     11                                                       k p                               xxxxxxxxxxxxx 
     12                                                       xxx               k   k  k p  
    1313                                                                      xxxxxxxxxxxxxx 
    14         p                                                      p                     
    15   xxxxxxxxxx                                                  xxxx                               p 
    16                                                                                           xxxxxxxxxxxxx  
    17                       p                           p  
     14    k    p k                                                     k p                     
     15  xxxxxxxxxx                                                  xxxx                             k  p 
     16                                                                                             xxxxxxxxx  
     17                      p   k                      k  p  
    1818                   xxxxxxxxx                xxxxxxxxxxx 
    1919                        
    2020 
    21         p                                                          p 
     21      k  p                                                     k    p    k 
    2222   xxxxxxxxxx                                                xxxxxxxxxxxxxx                  
    2323                                                                                           
    24                       p                           p                                   p 
     24                    k  p                        k   p   k                            k   p 
    2525                  xxxxxxxxx                   xxxxxxxxxxx                         xxxxxxx                        
    2626                   
     
    2828                   
    2929 
    30             p                                              p                           p 
     30   k         p     k            p     k          k              p         k          k        p      k           p 
    3131xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Note: See TracChangeset for help on using the changeset viewer.