Changeset 5380


Ignore:
Timestamp:
2014-07-03 14:59:12 (5 years ago)
Author:
jumaalku
Message:
 
Location:
2014/27/JuhanaK
Files:
12 added
12 edited

Legend:

Unmodified
Added
Removed
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.cs

    r5327 r5380  
    1818    { 
    1919        elamaLaskuri = new IntMeter(elama, 0, elama); 
    20         elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     20         
     21    } 
     22} 
     23/// <summary> 
     24/// Esinevalikko. 
     25/// </summary> 
     26class Inventory : Widget 
     27{ 
     28    /// <summary> 
     29    /// Tapahtuma, kun esine on valittu. 
     30    /// </summary> 
     31    public event Action<PhysicsObject> ItemSelected; 
     32 
     33    /// <summary> 
     34    /// Luo uuden esinevalikon. 
     35    /// </summary> 
     36    public Inventory() 
     37        : base(new HorizontalLayout()) 
     38    { 
     39    } 
     40 
     41    /// <summary> 
     42    /// Lisää esineen. 
     43    /// </summary> 
     44    /// <param name="item">Lisättävä esine.</param> 
     45    /// <param name="kuva">Esineen ikoni, joka näkyy valikossa.</param> 
     46    public void AddItem(PhysicsObject item, Image kuva) 
     47    { 
     48        PushButton icon = new PushButton(kuva); 
     49        Add(icon); 
     50        icon.Clicked += delegate() { SelectItem(item); }; 
     51    } 
     52 
     53    void SelectItem(PhysicsObject item) 
     54    { 
     55        if (ItemSelected != null) 
     56        { 
     57            ItemSelected(item); 
     58        } 
    2159    } 
    2260} 
     
    3270    const int RUUDUN_KOKO = 40; 
    3371 
     72    private int kieorrokset = 10; 
     73    DoubleMeter aaltoPalkki; 
     74    ProgressBar aaltoNaytto; 
     75    DoubleMeter alaspainLaskuri; 
     76    Timer aaltoAikaLaskuri; 
     77    private const int MAX_KIERROSAIKA = 300; 
     78 
     79    List<Vihu> vihut = new List<Vihu>(); 
     80 
    3481    private Image[] Avaruuskävely = LoadImages("Avaruus saankari", "Avaruus saankari2"); 
    3582    private Image[] Monsterinkavelykuvat = LoadImages("Monsteri", "Monsteri2"); 
     
    3885    PlatformCharacter pelaaja2; 
    3986    PlatformCharacter pelaaja1; 
     87 
    4088    Image AlienKuva = LoadImage("Alien"); 
    4189    Image Orkkikuva = LoadImage("Orkki"); 
    4290    Image monsteri = LoadImage("Monsteri"); 
     91    Image flamerkuva= LoadImage("Flamer"); 
     92 
    4393    Image Robo = LoadImage("Robot"); 
    4494    Image pelaajanKuva = LoadImage("Avaruus saankari"); 
     
    4898    DoubleMeter elamaLaskuri2; 
    4999    SoundEffect osumisaani = LoadSoundEffect("Hit_Hurt2"); 
     100    Inventory inventory; 
    50101 
    51102    public override void Begin() 
     
    75126        Gravity = new Vector(0, -1000); 
    76127        SmoothTextures = false; 
     128         
    77129 
    78130        if (pelaajienLkm == 1) 
     
    87139        LisaaNappaimet(); 
    88140        LuoElamaLaskuri(); 
    89  
    90         Timer ajastin = new Timer(); 
    91         ajastin.Interval = 4; 
    92         ajastin.Timeout += Luovihollinen; 
    93         ajastin.Start(); 
    94  
    95         Timer ajastin2 = new Timer(); 
    96         ajastin2.Interval = 6; 
    97         ajastin2.Timeout += LuoOrkki; 
    98         ajastin2.Start(); 
    99  
    100         Timer ajastin3 = new Timer(); 
    101         ajastin3.Interval = 10; 
    102         ajastin3.Timeout += LuoAlien; 
    103         ajastin3.Start(); 
     141        LuoPistelaskuri(); 
     142        LuoAaltoPalkki(); 
     143        AaltoLoppui(); 
     144         
     145 
     146 
     147         
    104148 
    105149 
     
    157201        pelaaja1.AnimWalk.FPS = 5; 
    158202 
     203        inventory = new Inventory(); 
     204        Add(inventory); 
     205 
    159206        pelaaja1.Weapon = new AssaultRifle(30, 10); 
    160         pelaaja1.Weapon.Ammo.Value = 1000; 
     207        pelaaja1.Weapon.Ammo.Value = 100000; 
    161208        pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 
     209 
     210        //inventory.AddItem(, flamerkuva); 
     211 
    162212    } 
    163213    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) 
     
    186236            (kohde as Vihu).ElamaLaskuri.Value--; 
    187237            osumisaani.Play(); 
     238             
    188239        } 
    189240    } 
     
    212263        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
    213264        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
     265 
    214266        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    215267        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 
     
    228280        hahmo.Walk(nopeus); 
    229281    } 
     282     
     283 
    230284 
    231285    void Hyppaa(PlatformCharacter hahmo, double nopeus) 
     
    233287        hahmo.Jump(nopeus); 
    234288    } 
     289 
     290 
    235291    void Tormaaviholliseen(PhysicsObject hahmo, PhysicsObject vihollinen) 
    236292    { 
     
    238294        osumisaani.Play(); 
    239295    } 
     296 
     297 
    240298    void LuoAlien() 
    241299    { 
    242         Vihu vihollinen = new Vihu(20, 100, 100); 
     300        Vihu vihollinen = new Vihu(20, 100, 150); 
     301        vihollinen.ElamaLaskuri.LowerLimit += delegate 
     302        { 
     303            vihollinen.Destroy(); 
     304            vihut.Remove(vihollinen as Vihu); 
     305            pisteLaskuri.Value += 20; 
     306        }; 
    243307        vihollinen.Image = AlienKuva; 
    244308        vihollinen.CollisionIgnoreGroup = 1; 
     
    247311        Add(vihollinen); 
    248312 
     313        vihut.Add(vihollinen); 
     314 
    249315        vihollinen.Animation = AlienKavely; 
    250316        vihollinen.Animation.FPS = 5; 
     
    260326        vihollinen.Brain = tasoAivot; 
    261327    } 
     328 
     329 
    262330    void LuoOrkki() 
    263331    { 
    264332        Vihu vihollinen = new Vihu(10, 200, 200); 
     333        vihollinen.ElamaLaskuri.LowerLimit += delegate 
     334        { 
     335            vihollinen.Destroy(); 
     336            vihut.Remove(vihollinen as Vihu); 
     337            pisteLaskuri.Value += 10; 
     338        }; 
    265339        vihollinen.Image = Orkkikuva; 
    266340        vihollinen.CollisionIgnoreGroup = 1; 
     
    268342        vihollinen.Tag = "vihollinen"; 
    269343        Add(vihollinen); 
     344 
     345        vihut.Add(vihollinen); 
     346 
    270347        vihollinen.Animation = OrkinKavely; 
    271348        vihollinen.Animation.FPS = 5; 
     
    284361    { 
    285362        Vihu vihollinen = new Vihu(3, 100, 100); 
     363        vihollinen.ElamaLaskuri.LowerLimit += delegate { 
     364            vihollinen.Destroy(); 
     365            vihut.Remove(vihollinen as Vihu); 
     366            pisteLaskuri.Value += 5; 
     367        }; 
    286368        vihollinen.Image = monsteri; 
    287369        vihollinen.CollisionIgnoreGroup = 1; 
     
    289371        vihollinen.Tag = "vihollinen"; 
    290372        Add(vihollinen); 
     373 
     374        vihut.Add(vihollinen); 
     375 
    291376        vihollinen.Animation = MonsteriKavely; 
    292377        vihollinen.Animation.FPS = 5; 
     
    324409        Add(elamaPalkki); 
    325410    } 
     411 
     412 
    326413    void ElamaLoppui() 
    327414    { 
     
    331418 
    332419 
     420    IntMeter pisteLaskuri; 
     421 
     422    void LuoPistelaskuri() 
     423    { 
     424        pisteLaskuri = new IntMeter(0); 
     425 
     426        Label pisteNaytto = new Label(); 
     427        pisteNaytto.X = Screen.Left + 100; 
     428        pisteNaytto.Y = Screen.Top - 100; 
     429        pisteNaytto.TextColor = Color.Black; 
     430        pisteNaytto.Color = Color.White; 
     431 
     432        pisteNaytto.BindTo(pisteLaskuri); 
     433        Add(pisteNaytto); 
     434    } 
     435 
     436    void AloitaAalto() 
     437    { 
     438        int kier = 20 / kieorrokset; 
     439 
     440        Timer ajastin = new Timer(); 
     441        ajastin.Interval = RandomGen.NextDouble(3.0, 5.0); 
     442        ajastin.Timeout += Luovihollinen; 
     443        ajastin.Start(); 
     444 
     445        Timer ajastin2 = new Timer(); 
     446        ajastin2.Interval = RandomGen.NextDouble(6.0, 8.0); 
     447        ajastin2.Timeout += LuoOrkki; 
     448        ajastin2.Start(); 
     449 
     450        Timer ajastin3 = new Timer(); 
     451        ajastin3.Interval = RandomGen.NextDouble(9.0, 12.0); 
     452        ajastin3.Timeout += LuoAlien; 
     453        ajastin3.Start(); 
     454 
     455        if (alaspainLaskuri==null) LuoAaltoAikaLaskuri(); 
     456        else 
     457        { 
     458            alaspainLaskuri.Value = MAX_KIERROSAIKA / kieorrokset; 
     459            aaltoAikaLaskuri.Start(); 
     460        } 
     461        Timer.SingleShot(MAX_KIERROSAIKA / kieorrokset, delegate { ajastin.Stop(); ajastin2.Stop(); ajastin3.Stop(); TarkistaLoppu(); }); 
     462    } 
     463 
     464 
     465    void LuoAaltoPalkki() 
     466    { 
     467        aaltoPalkki = new DoubleMeter(20); 
     468        aaltoPalkki.MaxValue = 20; 
     469        aaltoPalkki.LowerLimit += AloitaAalto; 
     470 
     471        aaltoNaytto = new ProgressBar(150, 20); 
     472        aaltoNaytto.X = 0; 
     473        aaltoNaytto.Y = Screen.Top - 20; 
     474        aaltoNaytto.BindTo(aaltoPalkki); 
     475        Add(aaltoNaytto); 
     476    } 
     477 
     478    void LuoAaltoAikaLaskuri() 
     479    { 
     480        alaspainLaskuri = new DoubleMeter(MAX_KIERROSAIKA / kieorrokset); 
     481 
     482        aaltoAikaLaskuri = new Timer(); 
     483        aaltoAikaLaskuri.Interval = 0.1; 
     484        aaltoAikaLaskuri.Timeout += LaskeAlaspain; 
     485        aaltoAikaLaskuri.Start(); 
     486 
     487        Label aikaNaytto = new Label(); 
     488        aikaNaytto.TextColor = Color.White; 
     489        aikaNaytto.DecimalPlaces = 1; 
     490        aikaNaytto.X = 0; 
     491        aikaNaytto.Y = Screen.Top - 50; 
     492        aikaNaytto.BindTo(alaspainLaskuri); 
     493        Add(aikaNaytto); 
     494    } 
     495 
     496    void LaskeAlaspain() 
     497    { 
     498        alaspainLaskuri.Value -= 0.1; 
     499 
     500        if (alaspainLaskuri.Value <= 0) 
     501        { 
     502            MessageDisplay.Add("Aika loppui..."); 
     503            aaltoAikaLaskuri.Stop(); 
     504 
     505            // täydennä mitä tapahtuu, kun aika loppuu 
     506        } 
     507    } 
     508 
     509 
     510    void TarkistaLoppu() 
     511    { 
     512        Timer tarkistaja = new Timer(); 
     513        tarkistaja.Interval = 0.5; 
     514        tarkistaja.Timeout += delegate { if (vihut.Count <= 0) { tarkistaja.Stop(); AaltoLoppui(); } }; 
     515        tarkistaja.Start(); 
     516    } 
     517 
     518 
     519    void AaltoLoppui() 
     520    { 
     521        kieorrokset--; 
     522        aaltoPalkki.Value = 20; 
     523        Timer aaltoLaskuri = new Timer(); 
     524        aaltoLaskuri.Interval = 0.1; 
     525        aaltoLaskuri.Timeout += delegate { aaltoPalkki.Value--; MessageDisplay.Add("Moi"); }; 
     526        aaltoLaskuri.Start(20); 
     527    } 
    333528 
    334529 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.csproj.Debug.cachefile

    r5327 r5380  
    1717Content\Alien.xnb 
    1818Content\Alien2.xnb 
     19Content\Leijuri.xnb 
     20Content\Flamer.xnb 
     21Content\Automaattitykki.xnb 
     22Content\Este.xnb 
    1923Content\musiikki.wma 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/Avaruuspeli.csproj.FileListAbsolute.txt

    r5327 r5380  
    2626C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Alien.xnb 
    2727C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Alien2.xnb 
     28C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Leijuri.xnb 
     29C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Flamer.xnb 
     30C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Automaattitykki.xnb 
     31C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Este.xnb 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/ContentPipeline-{5282F811-AB87-41EF-A580-9908C47A987D}.xml

    r5327 r5380  
    1818      <Options>None</Options> 
    1919      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\kentta1.xnb</Output> 
    20       <Time>2014-07-02T10:48:13.2106738+03:00</Time> 
     20      <Time>2014-07-03T11:23:30.3965225+03:00</Time> 
    2121    </Item> 
    2222    <Item> 
     
    2727      <Options>None</Options> 
    2828      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\scifi hallway space ship model interior.xnb</Output> 
    29       <Time>2014-07-02T12:39:19.3122173+03:00</Time> 
     29      <Time>2014-07-03T11:28:06.9181719+03:00</Time> 
    3030    </Item> 
    3131    <Item> 
     
    164164      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Alien2.xnb</Output> 
    165165      <Time>2014-07-03T10:45:54.7889843+03:00</Time> 
     166    </Item> 
     167    <Item> 
     168      <Source>Leijuri.png</Source> 
     169      <Name>Leijuri</Name> 
     170      <Importer>TextureImporter</Importer> 
     171      <Processor>TextureProcessor</Processor> 
     172      <Options>None</Options> 
     173      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Leijuri.xnb</Output> 
     174      <Time>2014-07-03T11:43:20.0074717+03:00</Time> 
     175    </Item> 
     176    <Item> 
     177      <Source>Flamer.png</Source> 
     178      <Name>Flamer</Name> 
     179      <Importer>TextureImporter</Importer> 
     180      <Processor>TextureProcessor</Processor> 
     181      <Options>None</Options> 
     182      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Flamer.xnb</Output> 
     183      <Time>2014-07-03T14:25:45.2429124+03:00</Time> 
     184    </Item> 
     185    <Item> 
     186      <Source>Automaattitykki.png</Source> 
     187      <Name>Automaattitykki</Name> 
     188      <Importer>TextureImporter</Importer> 
     189      <Processor>TextureProcessor</Processor> 
     190      <Options>None</Options> 
     191      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Automaattitykki.xnb</Output> 
     192      <Time>2014-07-03T14:25:52.1706051+03:00</Time> 
     193    </Item> 
     194    <Item> 
     195      <Source>Este.png</Source> 
     196      <Name>Este</Name> 
     197      <Importer>TextureImporter</Importer> 
     198      <Processor>TextureProcessor</Processor> 
     199      <Options>None</Options> 
     200      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Este.xnb</Output> 
     201      <Time>2014-07-03T14:26:16.4600338+03:00</Time> 
    166202    </Item> 
    167203    <BuildSuccessful>true</BuildSuccessful> 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/cachefile-{5282F811-AB87-41EF-A580-9908C47A987D}-targetpath.txt

    r5327 r5380  
    1818Content\Alien.xnb 
    1919Content\Alien2.xnb 
     20Content\Leijuri.xnb 
     21Content\Flamer.xnb 
     22Content\Automaattitykki.xnb 
     23Content\Este.xnb 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/AvaruuspeliContent/AvaruuspeliContent.contentproj

    r5327 r5380  
    141141    </Compile> 
    142142  </ItemGroup> 
     143  <ItemGroup> 
     144    <Compile Include="Leijuri.png"> 
     145      <Name>Leijuri</Name> 
     146      <Importer>TextureImporter</Importer> 
     147      <Processor>TextureProcessor</Processor> 
     148    </Compile> 
     149  </ItemGroup> 
     150  <ItemGroup> 
     151    <Compile Include="Flamer.png"> 
     152      <Name>Flamer</Name> 
     153      <Importer>TextureImporter</Importer> 
     154      <Processor>TextureProcessor</Processor> 
     155    </Compile> 
     156  </ItemGroup> 
     157  <ItemGroup> 
     158    <Compile Include="Automaattitykki.png"> 
     159      <Name>Automaattitykki</Name> 
     160      <Importer>TextureImporter</Importer> 
     161      <Processor>TextureProcessor</Processor> 
     162    </Compile> 
     163  </ItemGroup> 
     164  <ItemGroup> 
     165    <Compile Include="Este.png"> 
     166      <Name>Este</Name> 
     167      <Importer>TextureImporter</Importer> 
     168      <Processor>TextureProcessor</Processor> 
     169    </Compile> 
     170  </ItemGroup> 
    143171  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    144172  <!--  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.