Changeset 4670 for 2013/30/NoelV


Ignore:
Timestamp:
2013-07-25 14:55:24 (6 years ago)
Author:
novaanan
Message:

Talletus.

Location:
2013/30/NoelV/shooter/shooter
Files:
6 added
3 edited

Legend:

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

    r4639 r4670  
    1515    Image aluksenKuva = LoadImage("alus"); 
    1616    Image vihollisenKuva = LoadImage("vihollinen"); 
     17    Image enkanKuva = LoadImage("enkka"); 
     18    SoundEffect ampuminen = LoadSoundEffect("laser"); 
     19    Image kilvenKuva = LoadImage("kilpi"); 
    1720    PhysicsObject alus; 
    18     PhysicsObject enkka; 
    1921 
    2022    PhysicsObject ammus; 
    2123 
     24    EasyHighScore topLista = new EasyHighScore(); 
     25 
     26    bool onkoKilpea = false; 
     27 
    2228    public override void Begin() 
    2329    { 
     30        //topLista.HighScoreWindow.Image = aluksenKuva; 
     31        topLista.HighScoreWindow.OKButton.Image = vihollisenKuva; 
     32 
     33        //topLista.Show(); 
     34        //alkuvalikko tähän 
     35        valikko(null); 
     36 
     37    } 
     38 
     39    void valikko(Window sender) 
     40    { 
     41        MultiSelectWindow alkuValikko = new MultiSelectWindow("Valikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 
     42        alkuValikko.Image = aluksenKuva; 
     43        Level.BackgroundColor = Color.Red; 
     44        alkuValikko.SelectionColor = Color.Black; 
     45        Add(alkuValikko); 
     46        alkuValikko.AddItemHandler(0, AloitaPeli); 
     47        alkuValikko.AddItemHandler(1, ParhaatPisteet); 
     48        alkuValikko.AddItemHandler(2, Exit); 
     49 
     50        alkuValikko.Color = Color.Transparent; 
     51 
     52 
     53    } 
     54 
     55    void ParhaatPisteet() 
     56    { 
     57        topLista.Show(); 
     58        topLista.HighScoreWindow.Closed += valikko; 
     59    } 
     60 
     61    void AloitaPeli() 
     62    { 
     63        ClearAll(); 
    2464        LuoPelaaja(); 
    2565 
    2666 
     67 
     68 
    2769        LuoVihollinen(new Vector(0, 450)); 
    2870 
     
    3274 
    3375        Timer vihunLuontiAjastin = new Timer(); 
    34         vihunLuontiAjastin.Interval = 0.5; 
     76        vihunLuontiAjastin.Interval = 0.6; 
    3577        vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
    3678        vihunLuontiAjastin.Start(); 
    3779 
     80        Timer enkkaAjastin = new Timer(); 
     81        enkkaAjastin.Interval = 15.0; 
     82        enkkaAjastin.Timeout += delegate { LuoEnkka(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
     83        enkkaAjastin.Start(); 
     84 
     85        Timer kilpiAjastin = new Timer(); 
     86        kilpiAjastin.Interval = 22.0; 
     87        kilpiAjastin.Timeout += delegate { LuoKilpi(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
     88        kilpiAjastin.Start(); 
     89 
    3890        LuoElamaLaskuri(); 
    3991        LuoPisteLaskuri(); 
     
    4193 
    4294        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ampuu", alus); 
    43         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    44  
    45         Level.Background.CreateGradient(Color.Red, Color.Blue); 
     95        Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyPoistumista, "Lopeta peli"); 
     96 
     97        Level.Background.CreateStars(); 
    4698        Camera.ZoomToLevel(); 
    4799    } 
     100 
     101    void KysyPoistumista() 
     102    { 
     103        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; }; 
     109        valikko.Color = Color.Red; 
     110        Add(valikko); 
     111 
     112    } 
     113 
    48114 
    49115    private void LuoPelaaja() 
     
    63129        AddCollisionHandler(alus, "vihu", OsuuViholliseen); 
    64130 
    65  
    66  
    67     } 
    68  
     131        AddCollisionHandler(alus, "enkka", OsuuEnkkaan); 
     132 
     133        AddCollisionHandler(alus, "kilpi", OsuuKilpeen); 
     134 
     135    } 
     136 
     137    void OsuuKilpeen(PhysicsObject pelaaja, PhysicsObject kilpi) 
     138    { 
     139        kilpi.Destroy(); 
     140        onkoKilpea = true; 
     141 
     142        double aikaaJaljella = 10.0; 
     143         
     144        Label teksti = new Label("kilpi " + aikaaJaljella); 
     145        teksti.Y = Screen.Top - 100; 
     146        teksti.X = Screen.Left + 100; 
     147        teksti.TextColor = Color.Red; 
     148        Add(teksti); 
     149 
     150        Timer ajastin = new Timer(); 
     151        ajastin.Interval = 1.0; 
     152        //myöhemmin: näytä aia jäljellä väliajoin: 
     153        ajastin.Timeout += delegate  
     154        { 
     155            aikaaJaljella -= 1.0; 
     156            teksti.Text = "kilpi " + aikaaJaljella; 
     157             
     158            //MessageDisplay.Add("Aikaa: " + aikaaJaljella); 
     159  
     160        }; 
     161        ajastin.Start(5); 
     162        ajastin.Stopped += delegate  
     163        { 
     164            onkoKilpea = false; 
     165            teksti.Destroy(); 
     166  
     167         
     168        }; 
     169         
     170    } 
    69171 
    70172    void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 
    71173    { 
    72         elamaLaskuri.Value--; 
    73  
     174        if (onkoKilpea == false) 
     175        { 
     176            elamaLaskuri.Value--; 
     177 
     178        } 
     179        else 
     180        { 
     181            vihu.Destroy(); 
     182        } 
    74183    } 
    75184 
     
    82191 
    83192        Add(vihollinen); 
    84         Vector impulssi = new Vector(0.0, -10000.0); 
     193        Vector impulssi = new Vector(0.0, -100000.0); 
    85194        vihollinen.Hit(impulssi); 
    86195        vihollinen.Restitution = 1.5; 
     
    109218    { 
    110219        if (ampuja.IsDestroyed) return; 
    111         ammus = new PhysicsObject(5, 15); 
     220        ampuminen.Play(); 
     221        //PlaySound("laser"); 
     222        ammus = new PhysicsObject(2, 20); 
    112223        ammus.Color = Color.OrangeRed; 
    113224        ammus.LifetimeLeft = TimeSpan.FromSeconds(4); 
     
    124235    void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 
    125236    { 
    126         ammus.Destroy(); 
     237 
     238        if (!kohde.Tag.Equals("enkka")) ammus.Destroy(); 
    127239        if (kohde.Tag.Equals("vihu")) 
    128240        { 
    129             Explosion rajahdys = new Explosion(100); 
     241            Explosion rajahdys = new Explosion(150); 
    130242            rajahdys.Position = kohde.Position; 
    131243            rajahdys.ShockwaveColor = Color.Transparent; 
     
    157269        pisteNaytto.Y = Screen.Top - 100; 
    158270        pisteNaytto.TextColor = Color.Orange; 
    159         pisteNaytto.Color = Color.Blue; 
     271        pisteNaytto.Color = Color.Transparent; 
    160272        pisteNaytto.IntFormatString = "Pisteet: {00}"; 
    161273        pisteNaytto.BindTo(pisteLaskuri); 
     
    168280        vihollisNaytto.X = 0; 
    169281        vihollisNaytto.Y = Screen.Top - 100; 
    170         vihollisNaytto.TextColor = Color.Black; 
    171         vihollisNaytto.Color = Color.Red; 
    172         vihollisNaytto.IntFormatString = "Vihollisia pääsi läpi: {00}"; 
     282        vihollisNaytto.TextColor = Color.Red; 
     283        vihollisNaytto.Color = Color.Transparent; 
     284        vihollisNaytto.IntFormatString = "Vihollisia päässyt läpi: {00}"; 
    173285        vihollisNaytto.BindTo(vihollisLaskuri); 
    174286        Add(vihollisNaytto); 
     
    191303    void ElamaLoppui() 
    192304    { 
     305 
    193306        Explosion rajahdys = new Explosion(50); 
    194307 
    195308        rajahdys.Position = alus.Position; 
    196309        Add(rajahdys); 
    197  
     310        Pause(); 
    198311 
    199312        alus.Destroy(); 
     
    203316        teksti.TextScale = new Vector(3, 3); 
    204317        Add(teksti); 
    205  
     318        teksti.Color = Color.Red; 
     319 
     320        topLista.EnterAndShow(pisteLaskuri.Value); 
     321        topLista.HighScoreWindow.Closed += AloitaAlusta; 
     322 
     323    } 
     324 
     325    public void AloitaAlusta(Window sender) 
     326    { 
     327        ClearAll(); 
     328        if (IsPaused == true) 
     329        { 
     330            Pause(); 
     331        } 
     332        Begin(); 
     333    } 
     334 
     335    private void LuoEnkka(Vector paikka) 
     336    { 
     337        PhysicsObject enkka = new PhysicsObject(50, 50); 
     338        enkka.Position = paikka; 
     339        enkka.Image = enkanKuva; 
     340        enkka.IgnoresCollisionResponse = true; 
     341        enkka.IgnoresExplosions = true; 
     342        Add(enkka); 
     343        Vector impulssi = new Vector(0.0, -500.0); 
     344        enkka.Hit(impulssi); 
     345        enkka.Tag = "enkka"; 
     346        enkka.CanRotate = false; 
     347 
     348    } 
     349 
     350    void OsuuEnkkaan(PhysicsObject pelaaja, PhysicsObject enkka) 
     351    { 
     352        elamaLaskuri.Value += 2; 
     353        enkka.Destroy(); 
     354    } 
     355 
     356    void LuoKilpi(Vector paikka) 
     357    { 
     358        IPhysicsObject kilpi = new PhysicsObject(50, 50); 
     359        kilpi.Position = paikka; 
     360        kilpi.Image = kilvenKuva; 
     361        kilpi.IgnoresCollisionResponse = true; 
     362        kilpi.IgnoresExplosions = true; 
     363        Add(kilpi); 
     364        Vector impulssi = new Vector(0.0, -500.0); 
     365        kilpi.Hit(impulssi); 
     366        kilpi.Tag = "kilpi"; 
     367        kilpi.CanRotate = false; 
    206368    } 
    207369} 
     
    211373 
    212374 
     375 
     376 
     377 
  • 2013/30/NoelV/shooter/shooter/shooterContent/shooterContent.contentproj

    r4639 r4670  
    5959    </Compile> 
    6060  </ItemGroup> 
     61  <ItemGroup> 
     62    <Compile Include="enkka.png"> 
     63      <Name>enkka</Name> 
     64      <Importer>TextureImporter</Importer> 
     65      <Processor>TextureProcessor</Processor> 
     66    </Compile> 
     67  </ItemGroup> 
     68  <ItemGroup> 
     69    <Compile Include="tausta.png"> 
     70      <Name>tausta</Name> 
     71      <Importer>TextureImporter</Importer> 
     72      <Processor>TextureProcessor</Processor> 
     73    </Compile> 
     74  </ItemGroup> 
     75  <ItemGroup> 
     76    <Compile Include="laser.mp3"> 
     77      <Name>laser</Name> 
     78      <Importer>Mp3Importer</Importer> 
     79      <Processor>SoundEffectProcessor</Processor> 
     80    </Compile> 
     81  </ItemGroup> 
     82  <ItemGroup> 
     83    <Compile Include="kilpi.png"> 
     84      <Name>kilpi</Name> 
     85      <Importer>TextureImporter</Importer> 
     86      <Processor>TextureProcessor</Processor> 
     87    </Compile> 
     88  </ItemGroup> 
    6189  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    6290  <!--  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.