Changeset 3777 for 2012/30


Ignore:
Timestamp:
2012-07-26 15:09:14 (11 years ago)
Author:
tasalmik
Message:
 
Location:
2012/30/TapaniS/The Slayer task Marsu/The Slayer task Marsu
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2012/30/TapaniS/The Slayer task Marsu/The Slayer task Marsu/The Slayer task Marsu/The_Slayer_task_Marsu.cs

    r3759 r3777  
    1111    PlatformCharacter pelaaja; 
    1212    Image pelaajanKuva = LoadImage("ok"); 
    13      
     13 
    1414    Image vihunKuva = LoadImage("Marsuvihu1"); 
    15      
    16  
    17  
    18  
     15    Image marsunKuva = LoadImage("Marsuvihu2"); 
     16    DoubleMeter elamaLaskuri; 
     17    IntMeter marsulaskuri; 
     18    int _kenttanro = 1; 
     19    Timer aikaLaskuri; 
    1920    public override void Begin() 
     21    { 
     22        ClearAll(); 
     23        näytävalikko(); 
     24    } 
     25 
     26    void näytävalikko() 
    2027    { 
    2128        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
     
    2431        alkuValikko.ItemSelected += PainettiinValikonNappia; 
    2532    } 
    26  
    27     void LuoKentta() 
    28     { 
     33    void Luovälivalikko() 
     34    {    MultiSelectWindow VäliValikko = new MultiSelectWindow("VäliValikko", 
     35           "Seuraava Kenttä", "Pelaa kenttä uudestaan", "Lopeta"); 
     36    Add(VäliValikko); 
     37    VäliValikko.ItemSelected += PainettiinVäliValikonNappia; 
     38 
     39    } 
     40 
     41 
     42 
     43    void LuoKentta(int kenttanro) 
     44    { 
     45        ClearAll(); 
     46        marsulaskuri = new IntMeter(0); 
     47        marsulaskuri.LowerLimit += delegate { Luovälivalikko(); }; 
     48 
    2949        Gravity = new Vector(0.0, -800.0); 
    30         ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta"); 
    31         Camera.Zoom(1.7); 
     50        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta" + kenttanro); 
    3251        ruudut.SetTileMethod(Color.BrightGreen, LuoTaso); 
    3352        ruudut.SetTileMethod(Color.Black, LuoPelaaja); 
     
    3554        ruudut.SetTileMethod(Color.Maroon, LuoMaa); 
    3655        ruudut.SetTileMethod(Color.LimeGreen, LuoKukka); 
     56        ruudut.SetTileMethod(Color.Gray, LuoRauta); 
    3757 
    3858        ruudut.Execute(22, 20); 
    3959        Level.CreateBorders(); 
     60        Camera.ZoomToLevel(); 
    4061        AsetaOhjaimet(); 
     62        LuoAikaLaskuri(); 
     63        LuoPistelaskuri(); 
     64        LuoElamaLaskuri(); 
    4165    } 
    4266 
     
    5074        Keyboard.Listen(Key.S, ButtonState.Released, NouseYlos, ""); 
    5175        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja.Weapon); 
     76        Keyboard.Listen(Key.P, ButtonState.Released, Pause, "Pause"); 
     77 
    5278    } 
    5379 
     
    5783        { 
    5884            case 0: 
    59                 LuoKentta(); 
     85                LuoKentta(_kenttanro); 
    6086                break; 
    6187            case 1: 
     
    6894    } 
    6995 
     96        void PainettiinVäliValikonNappia(int valinta) 
     97        { 
     98            switch (valinta) 
     99            { 
     100                case 0: 
     101                    LuoKentta(++_kenttanro); 
     102                    break; 
     103                case 1: 
     104                    LuoKentta(_kenttanro); 
     105                    break; 
     106                case 2: 
     107                    Exit(); 
     108                    break; 
     109            } 
     110 
     111    } 
     112 
     113 
    70114    void LuoTaso(Vector paikka, double leveys, double korkeus) 
    71115    { 
     
    80124 
    81125    } 
     126    void LuoRauta(Vector paikka, double leveys, double korkeus) 
     127    { 
     128        PhysicsObject rauta = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     129        rauta.Position = paikka; 
     130        //maa.Image = groundImage; 
     131        rauta.CollisionIgnoreGroup = 1; 
     132        rauta.Color = Color.Gray; 
     133        Add(rauta); 
     134 
     135 
     136    } 
     137 
     138 
    82139    void LuoMaa(Vector paikka, double leveys, double korkeus) 
    83140    { 
     
    88145        maa.Color = Color.Maroon; 
    89146        Add(maa); 
    90  
    91  
    92  
    93  
    94  
    95     } 
     147    } 
     148 
    96149    void LuoKukka(Vector paikka, double leveys, double korkeus) 
    97150    { 
     
    102155        kukka.Color = Color.LimeGreen; 
    103156        Add(kukka); 
    104  
    105  
    106  
    107     } 
    108  
    109  
    110  
    111  
    112  
     157    } 
     158 
     159    void LuoElamaLaskuri() 
     160    { 
     161        elamaLaskuri = new DoubleMeter(25); 
     162        elamaLaskuri.MaxValue = 25; 
     163        elamaLaskuri.LowerLimit += ElamaLoppui; 
     164 
     165        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     166        elamaPalkki.X = Screen.Left + 150; 
     167        elamaPalkki.Y = Screen.Top - 20; 
     168        elamaPalkki.BindTo(elamaLaskuri); 
     169        Add(elamaPalkki); 
     170 
     171        elamaPalkki.Color = Color.Transparent; 
     172 
     173        //Palkin väri: 
     174        elamaPalkki.BarColor = Color.Lime; 
     175 
     176        //Reunan väri: 
     177        elamaPalkki.BorderColor = Color.Black; 
     178 
     179    } 
     180 
     181    void ElamaLoppui() 
     182    { 
     183        MessageDisplay.Add("Marsut Valtasivat maailman, Hävisit Pelin!"); 
     184        pelaaja.Destroy(); 
     185        näytävalikko(); 
     186 
     187    } 
    113188 
    114189    void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
    115190    { 
    116          
    117191        pelaaja = new PlatformCharacter(30, 50); 
    118192        pelaaja.Position = paikka; 
     
    120194        pelaaja.Image = pelaajanKuva; 
    121195        pelaaja.Tag = "pelaaja"; 
    122         AssaultRifle ase = new AssaultRifle(10, 10); 
    123         pelaaja.Weapon = ase; 
     196        AssaultRifle pyssy = new AssaultRifle(2, 5); 
     197        pelaaja.Weapon = new AssaultRifle(3, 1); 
    124198        pelaaja.Weapon.AmmoIgnoresGravity = false; 
    125     } 
     199        pelaaja.Weapon.ProjectileCollision = AmmusOsuu; 
     200        AddCollisionHandler<PlatformCharacter, Vihu>(pelaaja, "vihu", pelaajatörmäsi); 
     201    } 
     202 
     203    void pelaajatörmäsi(PlatformCharacter pelaaja, Vihu marsu) 
     204    { 
     205        marsu.Image = marsunKuva; 
     206        Timer.SingleShot(0.5, delegate { vaihdamarsukuva(marsu); }); 
     207        elamaLaskuri.Value -= 5; 
     208 
     209 
     210    } 
     211    void vaihdamarsukuva(Vihu marsu) 
     212    { 
     213        marsu.Image = vihunKuva; 
     214 
     215    } 
     216 
     217 
     218 
     219 
    126220 
    127221    void LuoVihollinen(Vector paikka, double leveys, double korkeus) 
    128222    { 
    129         PlatformCharacter vihu = new PlatformCharacter(25, 40); 
     223        Vihu vihu = new Vihu(25, 40); 
    130224        vihu.Tag = "vihu"; 
    131225        vihu.Position = paikka; 
     
    138232        seuraajanAivot.Active = true; 
    139233        seuraajanAivot.Speed = 50; 
     234        vihu.Destroyed += vihutuhoutuu; 
     235        marsulaskuri.Value++; 
    140236         
    141237 
    142238    } 
    143239 
    144     void DistanceFar() 
    145     { 
    146  
    147  
    148     } 
    149  
     240    void vihutuhoutuu() 
     241    { 
     242        pisteLaskuri.Value += 10; 
     243        marsulaskuri.Value--; 
     244 
     245    } 
     246 
     247    void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 
     248    { 
     249        ammus.Destroy(); 
     250        if (kohde.Tag.ToString() == "vihu") 
     251            (kohde as Vihu).elamaLaskuri.Value--; 
     252    } 
    150253 
    151254    void Hyppaa() 
    152255    { 
    153         pelaaja.Jump(400); 
     256        pelaaja.Jump(450); 
    154257    } 
    155258 
     
    162265        pelaaja.Height = 20; 
    163266    } 
     267    void Pause() 
     268    { 
     269        ClearControls(); 
     270        Keyboard.Listen(Key.P, ButtonState.Released, PalaaPeliin, "Pause"); 
     271        aikaLaskuri.Pause(); 
     272        PhysicsEnabled = false; 
     273    } 
     274    void PalaaPeliin() 
     275    { 
     276        ClearControls(); 
     277        AsetaOhjaimet(); 
     278        aikaLaskuri.Start(); 
     279        PhysicsEnabled = true; 
     280    } 
     281 
    164282    void NouseYlos() 
    165283    { 
     
    180298        } 
    181299    } 
     300 
     301 
     302    void LuoPistelaskuri() 
     303    { 
     304        int vanhatpisteet = 0; 
     305        if (pisteLaskuri != null) 
     306        { 
     307            vanhatpisteet = pisteLaskuri.Value; 
     308        } 
     309 
     310        pisteLaskuri = new IntMeter(vanhatpisteet); 
     311 
     312        Label pisteNaytto = new Label(); 
     313        pisteNaytto.X = Screen.Left + 100; 
     314        pisteNaytto.Y = Screen.Top - 100; 
     315        pisteNaytto.TextColor = Color.Black; 
     316        pisteNaytto.Color = Color.White; 
     317        pisteNaytto.Title = "Pisteet"; 
     318 
     319 
     320 
     321        pisteNaytto.BindTo(pisteLaskuri); 
     322        Add(pisteNaytto); 
     323 
     324    } 
     325    IntMeter pisteLaskuri; 
     326 
     327    void LuoAikaLaskuri() 
     328    { 
     329        aikaLaskuri = new Timer(); 
     330        aikaLaskuri.Start(); 
     331 
     332        Label aikaNaytto = new Label(); 
     333        aikaNaytto.TextColor = Color.White; 
     334        aikaNaytto.DecimalPlaces = 1; 
     335        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
     336        Add(aikaNaytto); 
     337    } 
    182338} 
     339 
     340class Vihu : PlatformCharacter 
     341{ 
     342    public IntMeter elamaLaskuri = new IntMeter(2, 0, 2); 
     343 
     344    public Vihu(double leveys, double korkeus) 
     345        : base(leveys, korkeus) 
     346    { 
     347        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     348 
     349    } 
     350 
     351 
     352 
     353} 
     354 
  • 2012/30/TapaniS/The Slayer task Marsu/The Slayer task Marsu/The Slayer task MarsuContent/The Slayer task MarsuContent.contentproj

    r3741 r3777  
    6666  </ItemGroup> 
    6767  <ItemGroup> 
    68     <Compile Include="Kentta.png"> 
    69       <Name>Kentta</Name> 
     68    <Compile Include="Kentta1.png"> 
     69      <Name>Kentta1</Name> 
     70      <Importer>TextureImporter</Importer> 
     71      <Processor>TextureProcessor</Processor> 
     72    </Compile> 
     73  </ItemGroup> 
     74  <ItemGroup> 
     75    <Compile Include="RayGun.png"> 
     76      <Name>RayGun</Name> 
     77      <Importer>TextureImporter</Importer> 
     78      <Processor>TextureProcessor</Processor> 
     79    </Compile> 
     80  </ItemGroup> 
     81  <ItemGroup> 
     82    <Compile Include="Kentta2.png"> 
     83      <Name>Kentta2</Name> 
    7084      <Importer>TextureImporter</Importer> 
    7185      <Processor>TextureProcessor</Processor> 
Note: See TracChangeset for help on using the changeset viewer.