Changeset 3315 for 2012/26


Ignore:
Timestamp:
2012-06-28 14:12:13 (9 years ago)
Author:
rokarist
Message:

Talletus.

Location:
2012/26/RoniR
Files:
5 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2012/26/RoniR/Garden_Run/Garden_Run/Garden_Run/Garden_Run.cs

    r3299 r3315  
    99public class Garden_Run : PhysicsGame 
    1010{ 
    11     const double nopeus = 200; 
     11    const double nopeus = 1000; 
    1212    const double hyppyNopeus = 1000; 
    13     const int RUUDUN_KOKO = 40; 
     13    const int RUUDUN_KOKO = 100; 
    1414 
    1515    PhysicsObject pelaaja; 
    16      
     16    PhysicsObject maali; 
    1717 
    1818    Image pelaajanKuva = LoadImage("PelaajanKuva"); 
     
    2020    Image puskaKuva = LoadImage("puska"); 
    2121    Image monsteriKuva = LoadImage("monsteri"); 
     22    Image maaliKuva = LoadImage("trapdoor"); 
    2223 
    2324    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2425 
     26    int kentanNro = 1; 
     27 
    2528    public override void Begin() 
    2629    { 
    27         MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
    28         "Aloita peli", "Lopeta"); 
    29         Add(alkuValikko); 
    30          
    31         ColorTileMap kentta1 = ColorTileMap.FromLevelAsset("kentta1"); 
    32         kentta1.ColorTolerance = 1; 
    33         kentta1.SetTileMethod(Color.Yellow, LuoTahti); 
    34         kentta1.SetTileMethod(Color.Black, LuoPuska); 
    35         kentta1.SetTileMethod(Color.Blue, LisaaPelaaja); 
    36         kentta1.SetTileMethod(Color.Red, LuoMonsteri); 
    37         kentta1.Execute(100, 100); 
    38         Camera.ZoomToLevel(); 
    39         Level.CreateBorders(); 
     30        SeuraavaKentta(kentanNro); 
     31    } 
     32 
     33    void SeuraavaKentta(int kenttaNro) 
     34    { 
     35        ClearAll(); 
     36 
     37 
     38        if (kenttaNro == 1) LuoKentta("kentta1", "kentta1reitti"); 
     39        else if (kenttaNro == 2) LuoKentta2("kentta2"); 
     40 
     41 
    4042        LisaaOhjaimet(); 
    4143 
     
    4850        Camera.Zoom(2.3); 
    4951        Camera.Follow(pelaaja); 
     52    } 
     53 
     54    void LuoKentta(string kentta, string kenttaReitti) 
     55    { 
     56        TileMap kentta1reitti = TileMap.FromLevelAsset(kenttaReitti); 
     57        List<Vector> vihujenReitti = TeeVihujenReitti(kentta1reitti.Tiles); 
     58 
     59        ColorTileMap kentta1 = ColorTileMap.FromLevelAsset(kentta); 
     60        kentta1.ColorTolerance = 1; 
     61        kentta1.SetTileMethod(Color.Yellow, LuoTahti); 
     62        kentta1.SetTileMethod(Color.Black, LuoPuska); 
     63        kentta1.SetTileMethod(Color.Blue, LisaaPelaaja); 
     64        kentta1.SetTileMethod(Color.Red, delegate(Vector paikka, double leveys, double korkeus) { LuoMonsteri(paikka, leveys, korkeus, vihujenReitti); }); 
     65        kentta1.SetTileMethod(new Color(127, 51, 0), LuoMaali); 
     66        kentta1.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
     67        Camera.ZoomToLevel(); 
     68        Level.CreateBorders(); 
     69    } 
     70 
     71    void LuoKentta2(string kentta) 
     72    { 
     73        ColorTileMap kentta2 = ColorTileMap.FromLevelAsset(kentta); 
     74        kentta2.ColorTolerance = 1; 
     75        kentta2.SetTileMethod(Color.Yellow, LuoTahti); 
     76        kentta2.SetTileMethod(Color.Black, LuoPuska); 
     77        kentta2.SetTileMethod(Color.Blue, LisaaPelaaja); 
     78        kentta2.SetTileMethod(Color.Red, delegate(Vector paikka, double leveys, double korkeus) { LuoMonsteri(paikka, leveys, korkeus); }); 
     79        kentta2.SetTileMethod(new Color(127, 51, 0), LuoMaali); 
     80        kentta2.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
     81        Camera.ZoomToLevel(); 
     82        Level.CreateBorders(); 
     83    } 
     84 
     85    private List<Vector> TeeVihujenReitti(char[,] ruudut) 
     86    { 
     87        List<Vector> reitti = new List<Vector>(); 
     88        int riveja = ruudut.GetLength(0); 
     89        int sarakkeita = ruudut.GetLength(1); 
     90        int mikaSeuraavaksi = 1; 
     91        int i = 0; 
     92        while (i < ruudut.Length) 
     93        { 
     94            int rivi = i / ruudut.GetLength(0); 
     95            int sarake = i % ruudut.GetLength(1); 
     96            if (ruudut[rivi, sarake].ToString() == mikaSeuraavaksi.ToString()) 
     97            { 
     98                double etaisyysVasemmastareunasta = (-sarakkeita * RUUDUN_KOKO / 2) + sarake * RUUDUN_KOKO + RUUDUN_KOKO / 2; 
     99                double etaisyysYlareunasta = riveja * RUUDUN_KOKO / 2 - rivi * RUUDUN_KOKO - RUUDUN_KOKO / 2; 
     100                reitti.Add(new Vector(etaisyysVasemmastareunasta, etaisyysYlareunasta)); 
     101                i = 0; 
     102                mikaSeuraavaksi++; 
     103            } 
     104            else 
     105            { 
     106                i++; 
     107            } 
     108        } 
     109        return reitti; 
    50110    } 
    51111 
     
    90150    } 
    91151 
    92     void LuoMonsteri(Vector paikka, double leveys, double korkeus) 
    93     { 
    94         PlatformCharacter monsteri = new PlatformCharacter(leveys / 1.5, korkeus / 1.5); 
     152    void LuoMonsteri(Vector paikka, double leveys, double korkeus, List<Vector> reitti = null) 
     153    { 
     154        PhysicsObject monsteri = new PhysicsObject(leveys / 1.5, korkeus / 1.5); 
    95155        monsteri.Position = paikka; 
    96156        monsteri.Mass = 2.0; 
    97157        monsteri.Image = monsteriKuva; 
    98158        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(); 
     159        monsteri.CollisionIgnoreGroup = 2; 
    99160        Add(monsteri); 
    100161 
    101     } 
    102  
     162 
     163        if (reitti != null) 
     164        { 
     165            PathFollowerBrain polkuaivot = new PathFollowerBrain(); 
     166            //reitti.Insert(0, paikka); 
     167            polkuaivot.Loop = true; 
     168            polkuaivot.Path = reitti.ToArray(); 
     169            monsteri.Brain = polkuaivot; 
     170            polkuaivot.Active = true; 
     171        } 
     172    } 
     173 
     174 
     175 
     176 
     177    void LuoMaali(Vector paikka, double leveys, double korkeus) 
     178    { 
     179        maali = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     180        maali.IgnoresCollisionResponse = true; 
     181        maali.Position = paikka; 
     182        maali.Image = maaliKuva; 
     183        maali.Tag = "maali"; 
     184        Add(maali); 
     185    } 
    103186    void LisaaOhjaimet() 
    104187    { 
     
    120203    { 
    121204        pelaaja.Angle = (Mouse.PositionOnWorld - pelaaja.Position).Angle + Angle.FromDegrees(90); 
    122       
     205 
    123206    } 
    124207 
     
    133216        maaliAani.Play(); 
    134217        tahti.Destroy(); 
     218        if (GetObjectsWithTag("tahti").Count == 1) 
     219        { 
     220            maali.Image = LoadImage("trapdoor_open"); 
     221        } 
    135222    } 
    136223 
     
    144231        luoti.Shape = Shape.Circle; 
    145232        luoti.Color = Color.Silver; 
     233        luoti.CollisionIgnoreGroup = 2; 
    146234        Add(luoti); 
    147235    } 
  • 2012/26/RoniR/Garden_Run/Garden_Run/Garden_RunContent/Garden_RunContent.contentproj

    r3292 r3315  
    100100    </Compile> 
    101101  </ItemGroup> 
     102  <ItemGroup> 
     103    <Compile Include="trapdoor.png"> 
     104      <Name>trapdoor</Name> 
     105      <Importer>TextureImporter</Importer> 
     106      <Processor>TextureProcessor</Processor> 
     107    </Compile> 
     108  </ItemGroup> 
     109  <ItemGroup> 
     110    <Compile Include="kentta1reitti.txt"> 
     111      <Name>kentta1reitti</Name> 
     112      <Importer>TextFileImporter</Importer> 
     113      <Processor>TextFileContentProcessor</Processor> 
     114    </Compile> 
     115  </ItemGroup> 
     116  <ItemGroup> 
     117    <Compile Include="trapdoor_open.png"> 
     118      <Name>trapdoor_open</Name> 
     119      <Importer>TextureImporter</Importer> 
     120      <Processor>TextureProcessor</Processor> 
     121    </Compile> 
     122  </ItemGroup> 
     123  <ItemGroup> 
     124    <Compile Include="kentta2.png"> 
     125      <Name>kentta2</Name> 
     126      <Importer>TextureImporter</Importer> 
     127      <Processor>TextureProcessor</Processor> 
     128    </Compile> 
     129  </ItemGroup> 
    102130  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    103131  <!--  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.