Changeset 4746 for 2013/30/NoelV


Ignore:
Timestamp:
2013-07-26 12:43:46 (6 years ago)
Author:
novaanan
Message:

Talletus.

Location:
2013/30/NoelV/shooter/shooter
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/NoelV/shooter/shooter/shooter/shooter.cs

    r4670 r4746  
    1212    IntMeter pisteLaskuri; 
    1313    IntMeter vihollisLaskuri; 
     14    IntMeter isoPommiLaskuri; 
     15 
    1416 
    1517    Image aluksenKuva = LoadImage("alus"); 
     18    Image kilvellinenKuva = LoadImage("kilpiAlus"); 
    1619    Image vihollisenKuva = LoadImage("vihollinen"); 
    1720    Image enkanKuva = LoadImage("enkka"); 
    1821    SoundEffect ampuminen = LoadSoundEffect("laser"); 
    1922    Image kilvenKuva = LoadImage("kilpi"); 
     23    Image pomminKuva = LoadImage("pommi"); 
    2024    PhysicsObject alus; 
    2125 
     
    2832    public override void Begin() 
    2933    { 
     34        IsFullScreen = true; 
     35 
    3036        //topLista.HighScoreWindow.Image = aluksenKuva; 
    3137        topLista.HighScoreWindow.OKButton.Image = vihollisenKuva; 
     
    3945    void valikko(Window sender) 
    4046    { 
     47        ClearAll(); 
    4148        MultiSelectWindow alkuValikko = new MultiSelectWindow("Valikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 
    4249        alkuValikko.Image = aluksenKuva; 
     
    5360    } 
    5461 
     62 
    5563    void ParhaatPisteet() 
    5664    { 
     65        IsPaused = true; 
    5766        topLista.Show(); 
    5867        topLista.HighScoreWindow.Closed += valikko; 
     
    7483 
    7584        Timer vihunLuontiAjastin = new Timer(); 
    76         vihunLuontiAjastin.Interval = 0.6; 
     85        vihunLuontiAjastin.Interval = 0.4; 
    7786        vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
    7887        vihunLuontiAjastin.Start(); 
    7988 
    8089        Timer enkkaAjastin = new Timer(); 
    81         enkkaAjastin.Interval = 15.0; 
     90        enkkaAjastin.Interval = 16.0; 
    8291        enkkaAjastin.Timeout += delegate { LuoEnkka(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
    8392        enkkaAjastin.Start(); 
    8493 
    8594        Timer kilpiAjastin = new Timer(); 
    86         kilpiAjastin.Interval = 22.0; 
     95        kilpiAjastin.Interval = 21.0; 
    8796        kilpiAjastin.Timeout += delegate { LuoKilpi(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
    8897        kilpiAjastin.Start(); 
    8998 
     99        Timer pommiAjastin = new Timer(); 
     100        pommiAjastin.Interval = 26.0; 
     101        pommiAjastin.Timeout += delegate { LuoPommi(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
     102        pommiAjastin.Start(); 
     103 
    90104        LuoElamaLaskuri(); 
    91105        LuoPisteLaskuri(); 
    92  
     106        LuoPommiLaskuri(); 
    93107 
    94108        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ampuu", alus); 
     109        Mouse.Listen(MouseButton.Right, ButtonState.Pressed, AmmuIsoPommi, "Ampuu", alus); 
    95110        Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyPoistumista, "Lopeta peli"); 
    96111 
     
    99114    } 
    100115 
     116    void AmmuIsoPommi(PhysicsObject alus) 
     117    { 
     118        if (isoPommiLaskuri.Value == 0) return; 
     119        isoPommiLaskuri.Value--; 
     120        Explosion e = new Explosion(1200); 
     121        e.Position = alus.Position; 
     122        e.Speed = 1800; 
     123        e.ShockwaveColor = Color.Transparent; 
     124        e.ShockwaveReachesObject += AaltoOsuu; 
     125        Add(e); 
     126 
     127    } 
     128 
     129 
     130    void AaltoOsuu(IPhysicsObject kohde, Vector v) 
     131    { 
     132        if (kohde.Tag.Equals("vihu")) 
     133        { 
     134            PhysicsObject vihu = kohde as PhysicsObject; 
     135            if (vihu == null) return; 
     136            TuhoaVihu(vihu); 
     137        } 
     138        else 
     139        { 
     140            kohde.Hit(-v); 
     141 
     142        } 
     143    } 
     144 
     145 
     146 
    101147    void KysyPoistumista() 
    102148    { 
    103149        IsPaused = true; 
    104         MultiSelectWindow valikko = new MultiSelectWindow("Haluatko lopettaa?", 
    105 "Kyllä", "Ei", "EN tiedä!"); 
    106         valikko.AddItemHandler(0, Exit); 
    107         valikko.AddItemHandler(2, delegate { if (RandomGen.NextBool()) Exit(); }); 
    108         valikko.Closed += delegate { IsPaused = false; }; 
     150        MultiSelectWindow valikko = new MultiSelectWindow("Valikko", "Jatka peliä", "Huippu pisteet", "Lopeta peli"); 
     151        valikko.AddItemHandler(2, Exit); 
     152        valikko.AddItemHandler(1, ParhaatPisteet); 
     153        valikko.AddItemHandler(0, delegate { IsPaused = false; }); 
     154        //valikko.AddItemHandler(2, delegate { if (RandomGen.NextBool()) Exit(); }); 
     155        //valikko.Closed += delegate { IsPaused = false; }; 
    109156        valikko.Color = Color.Red; 
    110157        Add(valikko); 
     
    126173        alus.Restitution = 1.5; 
    127174        alus.CanRotate = false; 
    128  
     175        alus.IgnoresExplosions = true; 
    129176        AddCollisionHandler(alus, "vihu", OsuuViholliseen); 
    130177 
     
    132179 
    133180        AddCollisionHandler(alus, "kilpi", OsuuKilpeen); 
     181 
     182        AddCollisionHandler(alus, "pommi", OsuuPommiin); 
    134183 
    135184    } 
     
    139188        kilpi.Destroy(); 
    140189        onkoKilpea = true; 
     190        alus.Image = kilvellinenKuva; 
    141191 
    142192        double aikaaJaljella = 10.0; 
    143          
     193 
    144194        Label teksti = new Label("kilpi " + aikaaJaljella); 
    145195        teksti.Y = Screen.Top - 100; 
     
    151201        ajastin.Interval = 1.0; 
    152202        //myöhemmin: näytä aia jäljellä väliajoin: 
    153         ajastin.Timeout += delegate  
     203        ajastin.Timeout += delegate 
    154204        { 
    155205            aikaaJaljella -= 1.0; 
    156206            teksti.Text = "kilpi " + aikaaJaljella; 
    157              
     207 
    158208            //MessageDisplay.Add("Aikaa: " + aikaaJaljella); 
    159   
     209 
    160210        }; 
    161         ajastin.Start(5); 
    162         ajastin.Stopped += delegate  
     211        ajastin.Start(10); 
     212        ajastin.Stopped += delegate 
    163213        { 
    164214            onkoKilpea = false; 
    165215            teksti.Destroy(); 
    166   
    167          
     216            alus.Image = aluksenKuva; 
     217 
    168218        }; 
    169          
     219 
    170220    } 
    171221 
     
    226276        ammus.CollisionIgnoreGroup = ampuja.CollisionIgnoreGroup; 
    227277        Add(ammus); 
     278        ammus.IgnoresExplosions = true; 
    228279 
    229280        ammus.Hit(Vector.FromLengthAndAngle(1000, ampuja.Angle + Angle.FromDegrees(90))); 
     
    239290        if (kohde.Tag.Equals("vihu")) 
    240291        { 
    241             Explosion rajahdys = new Explosion(150); 
    242             rajahdys.Position = kohde.Position; 
    243             rajahdys.ShockwaveColor = Color.Transparent; 
    244             Add(rajahdys); 
    245             kohde.Destroy(); 
    246             pisteLaskuri.Value++; 
    247         } 
     292            TuhoaVihu(kohde); 
     293        } 
     294    } 
     295 
     296    private void TuhoaVihu(PhysicsObject kohde) 
     297    { 
     298        Explosion rajahdys = new Explosion(150); 
     299        rajahdys.Position = kohde.Position; 
     300        rajahdys.ShockwaveColor = Color.Transparent; 
     301 
     302        Add(rajahdys); 
     303        kohde.Destroy(); 
     304        pisteLaskuri.Value++; 
    248305    } 
    249306 
     
    287344    } 
    288345 
     346    void LuoPommiLaskuri() 
     347    { 
     348        isoPommiLaskuri = new IntMeter(0, 0, int.MaxValue); 
     349        Label vihollisNaytto = new Label(); 
     350        vihollisNaytto.X = Screen.Right -100; 
     351        vihollisNaytto.Y = Screen.Top - 200; 
     352        vihollisNaytto.TextColor = Color.Red; 
     353        vihollisNaytto.Color = Color.Transparent; 
     354        vihollisNaytto.IntFormatString = "pommeja: {00}"; 
     355        vihollisNaytto.BindTo(isoPommiLaskuri); 
     356        Add(vihollisNaytto); 
     357 
     358    } 
     359 
    289360 
    290361    void LuoElamaLaskuri() 
     
    308379        rajahdys.Position = alus.Position; 
    309380        Add(rajahdys); 
    310         Pause(); 
     381        IsPaused = true; 
    311382 
    312383        alus.Destroy(); 
     
    367438        kilpi.CanRotate = false; 
    368439    } 
     440 
     441    void LuoPommi(Vector paikka) 
     442    { 
     443        PhysicsObject pommi = new PhysicsObject(50, 50); 
     444        pommi.Position = paikka; 
     445        pommi.Image = pomminKuva; 
     446        pommi.IgnoresCollisionResponse = true; 
     447        pommi.IgnoresExplosions = true; 
     448        Add(pommi); 
     449        Vector impulssi = new Vector(0.0, -500.0); 
     450        pommi.Hit(impulssi); 
     451        pommi.Tag = "pommi"; 
     452        pommi.CanRotate = false; 
     453    } 
     454    void OsuuPommiin(PhysicsObject pelaaja, PhysicsObject pommi) 
     455    { 
     456        isoPommiLaskuri.Value += 1; 
     457        pommi.Destroy(); 
     458           
     459    } 
    369460} 
    370461 
  • 2013/30/NoelV/shooter/shooter/shooterContent/shooterContent.contentproj

    r4670 r4746  
    8787    </Compile> 
    8888  </ItemGroup> 
     89  <ItemGroup> 
     90    <Compile Include="kilpiAlus.png"> 
     91      <Name>kilpiAlus</Name> 
     92      <Importer>TextureImporter</Importer> 
     93      <Processor>TextureProcessor</Processor> 
     94    </Compile> 
     95  </ItemGroup> 
     96  <ItemGroup> 
     97    <Compile Include="pommi.png"> 
     98      <Name>pommi</Name> 
     99      <Importer>TextureImporter</Importer> 
     100      <Processor>TextureProcessor</Processor> 
     101    </Compile> 
     102  </ItemGroup> 
    89103  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    90104  <!--  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.