Changeset 737


Ignore:
Timestamp:
2010-06-11 11:33:02 (10 years ago)
Author:
lavevake
Message:

Tein Rise of darknessiin uuden kentän.

Location:
2010/23/lavevake/Rise of darkness
Files:
15 added
8 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/lavevake/Rise of darkness/Content/Content.contentproj

    r703 r737  
    7575    </Compile> 
    7676  </ItemGroup> 
     77  <ItemGroup> 
     78    <Compile Include="aloita.png"> 
     79      <Name>aloita</Name> 
     80      <Importer>TextureImporter</Importer> 
     81      <Processor>TextureProcessor</Processor> 
     82    </Compile> 
     83    <Compile Include="aloita_.png"> 
     84      <Name>aloita_</Name> 
     85      <Importer>TextureImporter</Importer> 
     86      <Processor>TextureProcessor</Processor> 
     87    </Compile> 
     88    <Compile Include="lopeta.png"> 
     89      <Name>lopeta</Name> 
     90      <Importer>TextureImporter</Importer> 
     91      <Processor>TextureProcessor</Processor> 
     92    </Compile> 
     93    <Compile Include="lopeta_.png"> 
     94      <Name>lopeta_</Name> 
     95      <Importer>TextureImporter</Importer> 
     96      <Processor>TextureProcessor</Processor> 
     97    </Compile> 
     98  </ItemGroup> 
     99  <ItemGroup> 
     100    <Compile Include="dark-castle-1.jpg"> 
     101      <Name>dark-castle-1</Name> 
     102      <Importer>TextureImporter</Importer> 
     103      <Processor>TextureProcessor</Processor> 
     104    </Compile> 
     105  </ItemGroup> 
    77106  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    78107  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2010/23/lavevake/Rise of darkness/Peli.cs

    r703 r737  
    99    class Tasohyppely : PhysicsGame 
    1010    { 
     11 
     12        protected enum Pelitila { Valikko, Peli, UusiPeli, Loppu, EiMikaan } 
     13        Pelitila PelinTila = Pelitila.EiMikaan; 
     14        const int ruudunLeveys = 50; 
     15        const int ruudunKorkeus = 50; 
     16 
     17 
    1118        const double nopeus = 200; 
    1219        const double hyppyVoima = 4000; 
     
    3239        int kenttaNro; // monesko kenttä on menossa 
    3340 
     41        // Valikkoon liittyvät jutut 
     42        Image valikonTaustakuva; 
     43        PhysicsObject ValikonKursori; 
     44        List<GameObject> ValikonValinnat = new List<GameObject>(); 
     45 
     46 
     47        #region Pelitila ja valikko 
     48        protected bool AsetaPelitila(Pelitila tila) 
     49        { 
     50            if (PelinTila != tila) 
     51            { 
     52                PelinTila = tila; 
     53                switch (tila) 
     54                { 
     55                    case Pelitila.Valikko: 
     56                        { 
     57                            LataaValikko(); 
     58                            NaytaValikko(); 
     59                            break; 
     60                        } 
     61 
     62                    case Pelitila.Peli: 
     63                        { 
     64                            //Level.Clear(); 
     65                            ClearAll(); 
     66                            pelialkaa(); 
     67                            break; 
     68                        } 
     69                    case Pelitila.UusiPeli: 
     70                        { 
     71                            AsetaPelitila(Pelitila.Peli); 
     72                            break; 
     73                        } 
     74 
     75 
     76                    case Pelitila.Loppu: 
     77                        { 
     78                            Exit(); 
     79                            break; 
     80                        } 
     81                    default: 
     82                        break; 
     83                } 
     84 
     85                return true; 
     86            } 
     87            return false; 
     88        } 
     89 
     90        /// <summary> 
     91        /// Näyttää valikon 
     92        /// </summary> 
     93        void NaytaValikko() 
     94        { 
     95            ClearAll(); 
     96            MessageDisplay.Add("Näytä valikko"); 
     97            Camera.ZoomToLevel(); 
     98            Level.Background.Image = valikonTaustakuva; 
     99            Level.Background.Size = new Vector(Screen.Width, Screen.Height); 
     100 
     101 
     102            foreach (GameObject gobj in ValikonValinnat) 
     103            { 
     104                Add(gobj); 
     105                Mouse.ListenOn(gobj, MouseButton.Left, ButtonState.Pressed, ValikkoKursorinValinta, null); 
     106            } 
     107 
     108            TextDisplay tekijat = new TextDisplay(); 
     109            tekijat.TextColor = Color.Green; 
     110            tekijat.Text = "Tekijä:\n" + 
     111                "Ohjelmointi ja grafiikka: Lauri Kemppi\n"; 
     112            tekijat.X = Screen.Center.X + 250; 
     113            tekijat.Y = Screen.Center.Y - 300; 
     114            Add(tekijat); 
     115 
     116            Add(ValikonKursori); 
     117 
     118            //Controls.Clear(); 
     119            Mouse.IsCursorVisible = false; 
     120            Mouse.ListenMovement(1, ValikkoKursorinOhjaus, null); 
     121        } 
     122 
     123 
     124        /// <summary> 
     125        /// Päivittää kursorin sijainnin ja korostaa nappulan 
     126        /// </summary> 
     127        /// <param name="e"></param> 
     128        /// <returns></returns> 
     129        void ValikkoKursorinOhjaus(AnalogState a) 
     130        { 
     131            foreach (PhysicsObject gobj in ValikonValinnat) 
     132            { 
     133                //if (ValikonKursori.X >= gobj.Left && ValikonKursori.X <= gobj.Right && 
     134                //  ValikonKursori.Top >= gobj.Bottom && ValikonKursori.Bottom <= gobj.Top) 
     135                if (Mouse.IsCursorOnGameObject(gobj)) 
     136                { 
     137                    gobj.Image = LoadImage(gobj.Tag + "_"); 
     138 
     139                } 
     140                else 
     141                    gobj.Image = LoadImage(gobj.Tag.ToString()); 
     142            } 
     143 
     144            ValikonKursori.Position = Mouse.PositionOnScreen; 
     145        } 
     146 
     147        /// <summary> 
     148        /// Kun valikon nappulaa painetaan 
     149        /// </summary> 
     150        /// <param name="e"></param> 
     151        /// <returns></returns> 
     152        void ValikkoKursorinValinta() 
     153        { 
     154            foreach (PhysicsObject gobj in ValikonValinnat) 
     155            { 
     156                //if (ValikonKursori.X >= gobj.Left && ValikonKursori.X <= gobj.Right && 
     157                //    ValikonKursori.Top >= gobj.Bottom && ValikonKursori.Bottom <= gobj.Top) 
     158                if (Mouse.IsCursorOnGameObject(gobj)) 
     159                { 
     160                    switch (gobj.Tag.ToString()) 
     161                    { 
     162                        case "aloita": 
     163                             
     164                            AsetaPelitila(Pelitila.Peli); 
     165                            MessageDisplay.Add("Aloita peli"); 
     166                            break; 
     167                        case "lopeta": 
     168                            AsetaPelitila(Pelitila.Loppu); 
     169                            MessageDisplay.Add("Lopeta"); 
     170                            break; 
     171                    } 
     172                } 
     173            } 
     174        } 
     175 
     176        /// <summary> 
     177        /// Lataa valikon ja luo sen oliot, mutta ei lisää niitä kenttään 
     178        /// </summary> 
     179        void LataaValikko() 
     180        { 
     181            valikonTaustakuva = LoadImage("dark-castle-1"); 
     182 
     183            LisaaNappula(0, 50, LoadImage("aloita"), "aloita"); 
     184            LisaaNappula(0, -50, LoadImage("lopeta"), "lopeta"); 
     185            ValikonKursori = PhysicsObject.CreateStaticObject(16, 16); 
     186            ValikonKursori.Shape = Shapes.Triangle; 
     187            ValikonKursori.Color = Color.DarkRed; 
     188        } 
     189 
     190        void LisaaNappula(double x, double y, Image kuva, string tagi) 
     191        { 
     192            PhysicsObject nappula = PhysicsObject.CreateStaticObject(200, 60, Shapes.Rectangle); 
     193            // TODO: Nappulat ScreenObjecteina, esim. TextDisplay 
     194            nappula.Tag = tagi; 
     195            nappula.X = x; nappula.Y = y; 
     196            nappula.Image = kuva; 
     197            //nappula.Color = Color.Aqua; 
     198 
     199            ValikonValinnat.Add(nappula); 
     200        } 
     201 
     202        #endregion 
    34203 
    35204        protected override void Begin() 
     205        { 
     206             
     207            AsetaPelitila(Pelitila.Valikko); 
     208        } 
     209 
     210        private void pelialkaa() 
    36211        { 
    37212            kenttaNro = 0; 
     
    39214            Level.Height = 1000; 
    40215 
     216 
     217            // Zoomataan lähemmäksi 
     218            Camera.ZoomFactor = 2.0; 
     219 
     220            Camera.StayInLevel = true; 
     221 
     222            seuraavaKentta(); 
     223            MessageDisplay.Add("Pääse koneelle ennen kuin energia loppuu!"); 
     224 
     225        } 
     226 
     227        void vahennaVirtaa(Timer t) 
     228        { 
     229            virtaLaskuri.Value -=7; 
     230        } 
     231 
     232        void seuraavaKentta() 
     233        { 
     234            ClearAll(); 
     235             
     236            LuoPistelaskuri(); 
     237            pisteLaskuri.Reset(); 
     238 
     239            kenttaNro += 1; // lisätään kenttänumeroa yhdellä 
     240            MessageDisplay.Add("Kenttä " + kenttaNro); 
     241 
     242            // Asetetaan painovoima 
     243            Gravity = new Vector(0, -1000); 
     244 
     245            LuoKentta(kenttaNro); 
     246            LisaaNappaimet(); 
     247            Camera.Follow(pelaaja1); 
     248            LuoNaytot(); 
     249            laskuri = new Timer(); 
     250            laskuri.Interval = 0.001; 
     251            laskuri.Trigger += vahennaVirtaa; 
     252            Add(laskuri); 
     253            laskuri.Start(); 
     254        } 
     255 
     256        private void LuoPistelaskuri() 
     257        { 
    41258            // Luodaan pistelaskuri 
    42259            pisteLaskuri = new IntMeter(0); 
     
    52269            Add(pisteNaytto);    // lisätään peliin 
    53270 
    54             // Zoomataan lähemmäksi 
    55             Camera.ZoomFactor = 2.0; 
    56  
    57             Camera.StayInLevel = true; 
    58  
    59             seuraavaKentta(); 
    60             MessageDisplay.Add("Pääse koneelle ennen kuin energia loppuu!"); 
    61         } 
    62  
    63         void vahennaVirtaa(Timer t) 
    64         { 
    65             virtaLaskuri.Value -= 2; 
    66         } 
    67  
    68         void seuraavaKentta() 
    69         { 
    70             ClearAll(); 
    71             pisteLaskuri.Reset(); 
    72             Add(pisteNaytto); 
    73  
    74             kenttaNro += 1; // lisätään kenttänumeroa yhdellä 
    75             MessageDisplay.Add("Kenttä " + kenttaNro); 
    76  
    77             // Asetetaan painovoima 
    78             Gravity = new Vector(0, -1000); 
    79  
    80             luoKentta(); 
    81             lisaaNappaimet(); 
    82             Camera.Follow(pelaaja1); 
    83             LuoNaytot(); 
    84             laskuri = new Timer(); 
    85             laskuri.Interval = 0.001; 
    86             laskuri.Trigger += vahennaVirtaa; 
    87             Add(laskuri); 
    88             laskuri.Start(); 
    89         } 
    90  
    91         void luoKentta() 
    92         { 
    93             Level.CreateBorders(); 
     271        } 
     272 
     273        void LuoKentta(int kentanNro) 
     274        { 
    94275            Level.Background.CreateGradient(Color.Black, Color.SkyBlue); 
    95  
     276            char[,] ruudut; 
    96277            var merkit = new Dictionary<char, ObjectCreator>(); 
    97             merkit['='] = lisaaTaso; 
     278            merkit['='] = LisaaTaso; 
    98279            merkit['X'] = Pelaaja1; 
    99280            merkit['0'] = LuoHirvio; 
    100281            merkit['V'] = LuoVirta; 
    101             merkit['A'] = lisaaMaali; 
     282            merkit['A'] = LisaaMaali; 
    102283            merkit['E'] = LuoExtra; 
    103284            merkit['R'] = LuoRaha; 
    104285 
    105             const int ruudunLeveys = 50; 
    106             const int ruudunKorkeus = 50; 
    107  
    108             char[,] ruudut = Tiles.ReadFromFile("Text.txt"); 
    109             Tiles.Insert(this, ruudut, merkit, ruudunLeveys, ruudunKorkeus); 
    110  
    111             lisaaMaali(); 
    112         } 
    113  
    114         PhysicsObject lisaaTaso() 
     286            if (kentanNro == 1) 
     287            { 
     288                ruudut = Tiles.ReadFromFile("Text.txt"); 
     289                Tiles.Insert(this, ruudut, merkit, ruudunLeveys, ruudunKorkeus); 
     290                //lisaaMaali(); 
     291            } 
     292 
     293            if (kentanNro == 2) 
     294            { 
     295                ruudut = Tiles.ReadFromFile("Text2.txt"); 
     296                Tiles.Insert(this, ruudut, merkit, ruudunLeveys, ruudunKorkeus); 
     297            } 
     298 
     299            if (kentanNro > 2) 
     300            { 
     301                Exit(); 
     302            } 
     303 
     304             
     305 
     306        } 
     307 
     308 
     309        PhysicsObject LisaaTaso() 
    115310        { 
    116311            PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 30); 
     
    121316        } 
    122317 
    123         PhysicsObject lisaaMaali() 
     318        PhysicsObject LisaaMaali() 
    124319        { 
    125320            PhysicsObject maali = PhysicsObject.CreateStaticObject(50, 50, Shapes.Circle); 
     
    130325        } 
    131326 
    132         void lisaaNappaimet() 
     327        void LisaaNappaimet() 
    133328        { 
    134329            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    135330            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    136331 
    137             Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", -nopeus); 
    138             Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", nopeus); 
    139             Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", hyppyVoima); 
    140  
    141             lisaaGamePadNappaimet(ControllerOne); 
    142         } 
    143  
    144         void lisaaGamePadNappaimet(GamePad controller) 
     332            Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", -nopeus); 
     333            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", nopeus); 
     334            Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Hyppää", hyppyVoima); 
     335 
     336            LisaaGamePadNappaimet(ControllerOne); 
     337        } 
     338 
     339        void LisaaGamePadNappaimet(GamePad controller) 
    145340        { 
    146341            controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    147342 
    148             controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", -nopeus); 
    149             controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", nopeus); 
    150             controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", hyppyVoima); 
    151         } 
    152  
    153         void liikuta(double nopeus) 
     343            controller.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", -nopeus); 
     344            controller.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", nopeus); 
     345            controller.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", hyppyVoima); 
     346        } 
     347 
     348        void Liikuta(double nopeus) 
    154349        { 
    155350            pelaaja1.Walk(nopeus); 
    156351        } 
    157352 
    158         void hyppaa(double voima) 
     353        void Hyppaa(double voima) 
    159354        { 
    160355            pelaaja1.Jump(voima); 
    161356        } 
    162357 
    163         void osuiMaaliin(PhysicsObject collidingObject, PhysicsObject otherObject) 
     358        void OsuiMaaliin(PhysicsObject collidingObject, PhysicsObject otherObject) 
    164359        { 
    165360            if (otherObject.Tag.ToString() == "maali") 
     
    172367        } 
    173368 
    174         void lopetaPeli(Timer sender) 
    175         { 
     369        void LopetaPeli() 
     370        { 
     371            pelaaja1.Stop(); 
     372 
    176373            TextDisplay lopetus = new TextDisplay(); 
    177374            lopetus.Position = Screen.Center; 
    178375            lopetus.TextColor = Color.Red; 
    179376            Add(lopetus); 
    180             lopetus.Text = "Game over.\n"+ 
     377            lopetus.Text = "                              Game over.\n" + 
    181378            "Jos haluat aloittaa alusta, paina enter. Jos taas haluat lopettaa, paina Esc."; 
    182  
    183             Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    184             Keyboard.Listen(Key.Enter, ButtonState.Pressed,AloitaAlusta,null); 
    185              
     379            ClearControls(); 
     380            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikkoon, "Poistu pelistä"); 
     381            Keyboard.Listen(Key.Enter, ButtonState.Pressed, AloitaAlusta, null); 
     382            //controller.Listen(Button.A, ButtonState.Pressed, AloitaAlusta, null); 
     383 
     384        } 
     385 
     386        void Valikkoon() 
     387        { 
     388            AsetaPelitila(Pelitila.Valikko); 
    186389        } 
    187390 
     
    194397                    toinen.Destroy(); 
    195398                    MessageDisplay.Add("Tuhosit hirviön!"); 
    196                     pisteLaskuri.Value +=1; 
     399                    pisteLaskuri.Value += 1; 
    197400                } 
    198401                else 
    199402                { 
    200403 
    201                     Timer lopetus = new Timer(); 
    202                     lopetus.Interval = 0.01; 
    203                     lopetus.Trigger += new Timer.TriggerHandler(lopetaPeli); 
    204                     Add(lopetus); 
    205                     lopetus.Enabled = true; 
     404                    //Timer lopetus = new Timer(); 
     405                    //lopetus.Interval = 0.01; 
     406                    //lopetus.Trigger += new Timer.TriggerHandler(lopetaPeli); 
     407                    //Add(lopetus); 
     408                    //lopetus.Enabled = true; 
     409 
     410                    LopetaPeli(); 
    206411                } 
    207412            } 
     
    218423                voikoHirvioitaSyoda = true; 
    219424 
    220                  
     425 
    221426 
    222427                MessageDisplay.Add("Voit nyt syödä hirviöitä kymmenen sekunnin ajan!"); 
     
    227432                Add(syonti); 
    228433                syonti.Start(); 
    229                  
     434 
    230435                toinen.Destroy(); 
    231                  
    232             pisteLaskuri.Value += 1; 
    233             } 
    234         else if (toinen.Tag.ToString() == "R") 
     436 
     437                pisteLaskuri.Value += 1; 
     438            } 
     439            else if (toinen.Tag.ToString() == "R") 
    235440            { 
    236441                MessageDisplay.Add("Poimit rahan!"); 
    237                 pisteLaskuri.Value +=1; 
     442                pisteLaskuri.Value += 1; 
    238443                toinen.Destroy(); 
    239         }        
     444            } 
    240445        } 
    241446 
     
    288493        { 
    289494 
    290             Timer lopetus = new Timer(); 
    291             lopetus.Interval = 0.01; 
    292             lopetus.Trigger += new Timer.TriggerHandler(lopetaPeli); 
    293             Add(lopetus); 
    294             lopetus.Enabled = true; 
     495            //Timer lopetus = new Timer(); 
     496            //lopetus.Interval = 0.01; 
     497            //lopetus.Trigger += new Timer.TriggerHandler(lopetaPeli); 
     498            //Add(lopetus); 
     499            //lopetus.Enabled = true; 
     500            LopetaPeli(); 
    295501        } 
    296502 
     
    301507            pelaaja1.Image = LoadImage("Ukko 2"); 
    302508 
    303             AddCollisionHandler(pelaaja1, osuiMaaliin); 
     509            AddCollisionHandler(pelaaja1, OsuiMaaliin); 
    304510 
    305511            AddCollisionHandler(pelaaja1, KasitteleTormays); 
     
    345551        PhysicsObject LuoRaha() 
    346552        { 
    347             Raha = new PhysicsObject(40,40); 
     553            Raha = new PhysicsObject(40, 40); 
    348554            Raha.Mass = 4.0; 
    349555            Raha.Image = LoadImage("Raha"); 
     
    353559            return Raha; 
    354560        } 
    355          
     561 
    356562        void ajastin(Timer sender) 
    357563        { 
     
    363569        void AloitaAlusta() 
    364570        { 
    365             seuraavaKentta(); 
     571            kenttaNro = 0; 
     572            seuraavaKentta(); // TODO: Aiheuttaa poikkeuksen?? 
    366573        } 
    367574    } 
  • 2010/23/lavevake/Rise of darkness/Rise of darkness.csproj

    r663 r737  
    8989    <Content Include="Game.ico" /> 
    9090    <Content Include="GameThumbnail.png" /> 
     91    <Content Include="Text2.txt"> 
     92      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
     93    </Content> 
    9194    <None Include="Text.txt"> 
    9295      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
  • 2010/23/lavevake/Rise of darkness/Text.txt

    r703 r737  
    88=    ==            =                     =      
    99=                  =   RR   V   0        =    
    10 =   =              = ==============      =     
     10=   =   V          = ==============  V   =     
    1111=     = = =    R                   ==    = 
    1212=              ==                     RA = 
     
    1717=      R  ==                             = 
    1818=     ==                       RRRRRRRRRR= 
    19 =  X  == E  00000000000        RRRRRRRRRR= 
     19= X   == E  00000000000        RRRRRRRRRR= 
    2020========================================== 
Note: See TracChangeset for help on using the changeset viewer.