Changeset 5105 for 2014/26


Ignore:
Timestamp:
2014-06-25 15:00:24 (5 years ago)
Author:
hoolcoll
Message:
 
Location:
2014/26/HollyC/Labyrintti
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • 2014/26/HollyC/Labyrintti/Labyrintti/Labyrintti/Labyrintti.cs

    r5071 r5105  
    99public class Labyrintti : PhysicsGame 
    1010{ 
     11    PhysicsObject pelaaja; 
     12    Vector nopeusY = new Vector(0, 200); 
     13    Vector nopeusX = new Vector(200, 0); 
     14 
     15    int kenttaNro; 
     16    int maxKenttaNro = 3; 
     17 
    1118    public override void Begin() 
    1219    { 
    13         // TODO: Kirjoita ohjelmakoodisi tähän 
     20        kenttaNro = 1; 
     21        LuoAlkuvalikko(); 
     22         
     23    } 
     24 
     25 
     26    void LuoAlkuvalikko() 
     27    { 
     28        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko","Aloita peli","Lopeta"); 
     29        Add(alkuValikko); 
     30 
     31        alkuValikko.AddItemHandler(0, AloitaPeli); 
     32        alkuValikko.AddItemHandler(1, Exit); 
     33    } 
     34 
     35 
     36    void AloitaPeli() 
     37    { 
     38        LuoKentta(); 
     39        LisaaOhjaimet(); 
     40 
     41        Camera.FollowedObject = pelaaja; 
     42        Camera.Zoom(9); 
     43        Camera.StayInLevel = true; 
     44    } 
     45 
     46    void LuoKentta() 
     47    { 
     48        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta" + kenttaNro); 
     49        ruudut.SetTileMethod(new Color(76, 255, 0), LuoPelaaja); 
     50        ruudut.SetTileMethod(Color.Black, LuoSeina); 
     51        ruudut.SetTileMethod(Color.Red, LuoMaali); 
     52        ruudut.SetTileMethod(new Color(255, 216, 0), LuoTayte); 
     53        ruudut.Execute(20, 20); 
     54    } 
     55 
     56    void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
     57    { 
     58        pelaaja = new PhysicsObject(10, 10); 
     59        pelaaja.Position = paikka; 
     60        pelaaja.Color = Color.Emerald; 
     61        pelaaja.CanRotate = false; 
     62        pelaaja.Shape = Shape.Circle; 
     63        Add(pelaaja); 
     64 
     65        AddCollisionHandler(pelaaja, "maali", PaasitMaaliin); 
     66    } 
     67 
     68 
     69    void LuoSeina(Vector paikka, double leveys, double korkeus) 
     70    { 
     71        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     72        seina.Position = paikka; 
     73        seina.Color = Color.Black; 
     74        Add(seina); 
     75    } 
     76 
     77    void LuoTayte(Vector paikka, double leveys, double korkeus) 
     78    { 
     79        GameObject seina = new GameObject(leveys, korkeus); 
     80        seina.Position = paikka; 
     81        seina.Color = Color.Black; 
     82        Add(seina); 
     83    } 
     84 
     85 
     86    void LuoMaali(Vector paikka, double leveys, double korkeus) 
     87    { 
     88        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     89        maali.Color = Color.Red; 
     90        maali.Position = paikka; 
     91        maali.Tag = "maali"; 
     92        Add(maali); 
     93    } 
     94 
     95 
     96    void LisaaOhjaimet() 
     97    { 
     98        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuttaa pelaajaa ylos", nopeusY); 
     99        Keyboard.Listen(Key.Up, ButtonState.Released, LiikutaPelaajaa, null, Vector.Zero); 
     100        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuttaa pelaajaa alas", -nopeusY); 
     101        Keyboard.Listen(Key.Down, ButtonState.Released, LiikutaPelaajaa, null, Vector.Zero); 
     102 
     103        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "liikuttaa pelaajaa oikealle", nopeusX); 
     104        Keyboard.Listen(Key.Right, ButtonState.Released, LiikutaPelaajaa, null, Vector.Zero); 
     105        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "liikuttaa pelaajaa vasemmalle", -nopeusX); 
     106        Keyboard.Listen(Key.Left, ButtonState.Released, LiikutaPelaajaa, null, Vector.Zero); 
     107 
    14108 
    15109        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    16110        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    17111    } 
     112 
     113 
     114    void LiikutaPelaajaa(Vector nopeus) 
     115    { 
     116        pelaaja.Velocity = nopeus; 
     117 
     118    } 
     119 
     120 
     121    void PaasitMaaliin(PhysicsObject pelaaja, PhysicsObject kohde) 
     122    { 
     123        if (kohde.Tag == "maali") 
     124        { 
     125            kenttaNro++; 
     126            if (kenttaNro > maxKenttaNro) 
     127            { 
     128                ClearAll(); 
     129                Begin(); 
     130            } 
     131            else 
     132            { 
     133                ClearAll(); 
     134                AloitaPeli(); 
     135            } 
     136             
     137        } 
     138    } 
     139 
    18140} 
  • 2014/26/HollyC/Labyrintti/Labyrintti/LabyrinttiContent/LabyrinttiContent.contentproj

    r5071 r5105  
    4545    <Reference Include="AnimationExtension" /> 
    4646  </ItemGroup> 
     47  <ItemGroup> 
     48    <Compile Include="Kentta2.png"> 
     49      <Name>Kentta2</Name> 
     50      <Importer>TextureImporter</Importer> 
     51      <Processor>TextureProcessor</Processor> 
     52    </Compile> 
     53  </ItemGroup> 
     54  <ItemGroup> 
     55    <Compile Include="Kentta1.png"> 
     56      <Name>Kentta1</Name> 
     57      <Importer>TextureImporter</Importer> 
     58      <Processor>TextureProcessor</Processor> 
     59    </Compile> 
     60  </ItemGroup> 
     61  <ItemGroup> 
     62    <Compile Include="Kentta5.png"> 
     63      <Name>Kentta5</Name> 
     64      <Importer>TextureImporter</Importer> 
     65      <Processor>TextureProcessor</Processor> 
     66    </Compile> 
     67  </ItemGroup> 
    4768  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    4869  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.