Changeset 6451 for 2015/26


Ignore:
Timestamp:
2015-06-26 11:36:20 (8 years ago)
Author:
komihovi
Message:
 
Location:
2015/26/KonstaH/Tower Defense
Files:
6 added
13 edited

Legend:

Unmodified
Added
Removed
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/Tower Defense.csproj

    r6377 r6451  
    154154    </ProjectReference> 
    155155  </ItemGroup> 
     156  <ItemGroup> 
     157    <None Include="ClassDiagram1.cd" /> 
     158  </ItemGroup> 
    156159  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
    157160  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" /> 
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/Tower Defense.csproj.Debug.cachefile

    r6377 r6451  
    66Content\Pickup_Coin23.xnb 
    77Content\Parempiammus.xnb 
     8Content\Tausta.xnb 
     9Content\Taustamusa.xnb 
     10Content\Taustamusa.wma 
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/Tower_Defense.cs

    r6377 r6451  
    99public class Tower_Defense : PhysicsGame 
    1010{ 
     11    Image taustaKuva = LoadImage("Tausta"); 
    1112    Image tykkikuva = LoadImage("Tykki"); 
    1213    public Image Parempiammus = LoadImage("Parempiammus"); 
     
    1415    Image Paivitetyntykinkuva = LoadImage("Parempitykki"); 
    1516    Image Vihollisenkuva = LoadImage("Vihollinen"); 
    16    public SoundEffect RahaAani = LoadSoundEffect("Pickup_Coin23"); 
     17    public SoundEffect RahaAani = LoadSoundEffect("Pickup_Coin23"); 
    1718    const double tykinLeveys = 80; 
    1819    const double tykinKorkeus = 40; 
     
    2021    const double Vihujennopeus = -75; 
    2122    const double VihollinenKorkeus = 20; 
    22  
     23    PhysicsObject Alareuna; 
     24    PhysicsObject Ylareuna; 
    2325    PhysicsObject reuna; 
    2426    PhysicsObject Suojeltava; 
     27     
    2528    enum TykinTyyppi 
    2629    { 
     
    2831        Perustykki, 
    2932        PaivitettyTykki, 
    30         ViritettyTykki 
    31     } 
    32     int kierrosNro = 0; 
    33  
    34     int[] Aallot = new int[] {30, 60, 120, 240, 480, 960, 1920, 3840, 7680, 15360  }; 
    35     Timer Spawner; 
     33         
     34    } 
     35    int kierrosNro = 1; 
     36 
     37    int[] Aallot = new int[] { 0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300 }; 
     38     
     39    Timer Spawner = new Timer(); 
    3640 
    3741    TykinTyyppi valittuTykki = TykinTyyppi.EiTykki; 
    3842 
    39    public IntMeter rahaa = new IntMeter(100, 0, 999999999); 
     43    public IntMeter rahaa = new IntMeter(100, 0, 9999); 
    4044 
    4145 
    4246    public override void Begin() 
    4347    { 
    44         IsFullScreen = true;  
    45  
     48        MediaPlayer.Play("Taustamusa"); 
     49        MediaPlayer.IsRepeating = true; 
     50        IsFullScreen = true; 
     51        AlkuValikko(); 
     52        Level.Background.Image = taustaKuva; 
     53 
     54    } 
     55    void AlkuValikko() 
     56    { 
     57        MultiSelectWindow alkuValikko = new MultiSelectWindow("Tower Defense", 
     58        "Aloita peli",  "Lopeta"); 
     59        Add(alkuValikko); 
     60        alkuValikko.AddItemHandler(0, AloitaPeli);     
     61        alkuValikko.AddItemHandler(1, Exit); 
     62         
     63    } 
     64    void AloitaPeli() 
     65    { 
    4666        Level.Width = 1920; 
    4767        LuoKentta(); 
    48             
    49          
     68 
     69 
    5070        LuoKassakone(); 
    5171        Camera.ZoomToLevel(); 
    52        // LisaaVihollinen(); 
    53          
    54         PhysicsObject tykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus*4),tykkikuva, false, 1, Ammus  ); 
     72        // LisaaVihollinen(); 
     73 
     74        PhysicsObject tykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus * 4), tykkikuva, false, 3, Ammus); 
    5575        Mouse.ListenOn(tykki, MouseButton.Left, ButtonState.Pressed, OtaTykki, "Laita tykki paikoilleen.", TykinTyyppi.Perustykki); 
    5676 
    57         PhysicsObject Paivitettytykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus * 6), Paivitetyntykinkuva, false, 5, Parempiammus ); 
     77        PhysicsObject Paivitettytykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus * 6), Paivitetyntykinkuva, false, 5, Parempiammus); 
    5878        Mouse.ListenOn(Paivitettytykki, MouseButton.Left, ButtonState.Pressed, OtaTykki, "Laita tykki paikoilleen.", TykinTyyppi.PaivitettyTykki); 
    59          
     79 
    6080        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, LisaaOstettuTykki, "Lisää tykin."); 
    6181        IsMouseVisible = true; 
    6282        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    6383        Keyboard.Listen(Key.Space, ButtonState.Pressed, AloitaAalto, "ALOITTAAALLON!"); 
    64     } 
     84        Keyboard.Listen(Key.T, ButtonState.Pressed, NaytaTiedot, "NaytaTiedot"); 
     85        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     86       // Keyboard.Listen(Key.T, ButtonState.Released, , "NaytaTiedot");  
     87         
     88    } 
     89    void NaytaTiedot() 
     90    { 
     91        //Pause(); 
     92        Label Tiedot = new Label("Yksipiippuinen tykki tekee 3 damagea. Nelipiippuinen tykki tekee 5 damagea.\nYksipiippuinen tykki maksaa 10 kolikkoa.\nNelipiippuinen maksaa 75 kolikkoa.\nVihollisilla on 15 hitpointsia.\nHauskoja pelihetkiä!"); 
     93        Tiedot.Color = Color.Aqua; 
     94        Add(Tiedot); 
     95         
     96         
     97         
     98        Timer.SingleShot(2, delegate 
     99        { 
     100            Tiedot.Destroy(); 
     101        }); 
     102 
     103    } 
     104 
     105    
    65106    void AloitaAalto() 
    66107    { 
    67         Spawner.Start(Aallot[kierrosNro]); 
     108        if (!Spawner.Enabled && kierrosNro <= Aallot.Length)                                                    
     109        { 
     110            Spawner = new Timer(); 
     111            Spawner.Interval = (Double)1 / kierrosNro; 
     112            Spawner.Timeout += LisaaVihollinen; 
     113 
     114            Spawner.Start(Aallot[kierrosNro-1]); 
     115            kierrosNro++; 
     116 
     117        } 
     118        else if (kierrosNro >Aallot.Length) 
     119        { 
     120            ClearAll(); 
     121            MessageDisplay.Add("Sä olet mestari!"); 
     122            Add(MessageDisplay); 
     123 
     124 
     125 
     126        } 
     127 
    68128    } 
    69129    void OtaTykki(TykinTyyppi Tyyppi) 
     
    74134    void LuoKentta() 
    75135    { 
    76        reuna = Level.CreateRightBorder(); 
    77        reuna.Color = Color.Red; 
    78        reuna.IsVisible = true; 
    79        reuna.Width = 1200; 
    80        reuna.Height = 50; 
    81        reuna.X = 800; 
    82  
    83        Suojeltava = Level.CreateRightBorder(); 
    84        Suojeltava.Color = Color.Blue; 
    85        Suojeltava.IsVisible = true; 
    86        Suojeltava.Width = 1200; 
    87        Suojeltava.Height = 50; 
    88        Suojeltava.X = -950; 
    89  
    90        AddCollisionHandler(Suojeltava, "Vihollinen", Havisitpelin); 
    91  
    92         
    93  
    94         Spawner = new Timer(); 
    95        Spawner.Interval = 1; 
    96        Spawner.Timeout += LisaaVihollinen; 
     136        reuna = Level.CreateRightBorder(); 
     137        reuna.Color = Color.Red; 
     138        reuna.IsVisible = true; 
     139        reuna.Width = 1200; 
     140        reuna.Height = 50; 
     141        reuna.X = 800; 
     142 
     143        Suojeltava = PhysicsObject.CreateStaticObject(50, 1200); 
     144        Suojeltava.Color = Color.Blue; 
     145        Suojeltava.IsVisible = true; 
     146        //Suojeltava.Width = 1200; 
     147        //Suojeltava.Height = 50; 
     148        Suojeltava.Tag = "Suojeltava"; 
     149        Suojeltava.X = -950; 
     150        Add(Suojeltava); 
     151 
     152        AddCollisionHandler(Suojeltava, "Vihollinen", Havisitpelin); 
     153 
     154        Alareuna = Level.CreateBottomBorder(); 
     155        Alareuna.IsVisible = false; 
     156        Ylareuna = Level.CreateTopBorder(); 
     157        Ylareuna.IsVisible = false; 
     158 
    97159    } 
    98160    void LuoKassakone() 
     
    104166        pisteNaytto.Color = Color.Transparent; 
    105167        pisteNaytto.BindTo(rahaa); 
    106         pisteNaytto.Font = LoadFont("Rahafontti");  
     168        pisteNaytto.Font = LoadFont("Rahafontti"); 
    107169        Add(pisteNaytto); 
    108170    } 
     
    112174        if (rahaa.Value >= 10 && valittuTykki == TykinTyyppi.Perustykki) 
    113175        { 
    114             rahaa.Value -= 15; 
    115  
    116             LisaaTykki(Mouse.PositionOnWorld, tykkikuva, true, 1, Ammus ); 
    117         } 
    118         else if(rahaa.Value >= 50 && valittuTykki == TykinTyyppi.PaivitettyTykki) 
    119         { 
    120             rahaa.Value -= 100; 
    121  
    122             LisaaTykki(Mouse.PositionOnWorld, Paivitetyntykinkuva, true, 5, Parempiammus  ); 
    123         } 
    124          
     176            rahaa.Value -= 10; 
     177 
     178            LisaaTykki(Mouse.PositionOnWorld, tykkikuva, true, 3, Ammus); 
     179        } 
     180        else if (rahaa.Value >= 50 && valittuTykki == TykinTyyppi.PaivitettyTykki) 
     181        { 
     182            rahaa.Value -= 75; 
     183 
     184            LisaaTykki(Mouse.PositionOnWorld, Paivitetyntykinkuva, true, 5, Parempiammus); 
     185        } 
     186 
    125187 
    126188    } 
     
    147209    void Tykkiampuu(Tykki tykki) 
    148210    { 
    149         PhysicsObject panos = new PhysicsObject(Ammus.Width, Ammus.Height); 
    150         panos.Image = tykki.Panoksenkuva; 
    151         Add(panos); 
    152         panos.Tag = "panos"; 
    153         panos.Position = tykki.Position; 
    154         panos.CollisionIgnoreGroup = 3; 
    155         panos.Hit(new Vector(200, 0)); 
    156         AddCollisionHandler(panos, "Vihollinen", delegate(PhysicsObject a, PhysicsObject b) { Panostormaaviholliseen(a, b, tykki.Damage); panos.Destroy();}); 
    157          
    158         panos.LifetimeLeft = TimeSpan.FromSeconds(6.5); 
    159  
    160          
    161         FollowerBrain seuraajanAivot = new FollowerBrain("Vihollinen"); 
    162         panos.Brain = seuraajanAivot; 
    163         seuraajanAivot.DistanceFar = 2000; 
    164         seuraajanAivot.DistanceClose = 200;  
    165  
     211            PhysicsObject panos = new PhysicsObject(Ammus.Width, Ammus.Height); 
     212            panos.Image = tykki.Panoksenkuva; 
     213            Add(panos); 
     214            panos.Tag = "panos"; 
     215            panos.Position = tykki.Position; 
     216            panos.CollisionIgnoreGroup = 3; 
     217            panos.Hit(new Vector(200, 0)); 
     218            AddCollisionHandler(panos, "Vihollinen", delegate(PhysicsObject a, PhysicsObject b) { Panostormaaviholliseen(a, b, tykki.Damage); panos.Destroy(); }); 
     219 
     220            panos.LifetimeLeft = TimeSpan.FromSeconds(6.5); 
     221 
     222 
     223            FollowerBrain seuraajanAivot = new FollowerBrain("Vihollinen"); 
     224            panos.Brain = seuraajanAivot; 
     225            seuraajanAivot.DistanceFar = 2000; 
     226            seuraajanAivot.DistanceClose = 200; 
     227         
    166228 
    167229        
     230 
     231 
     232 
    168233    } 
    169234    void Havisitpelin(PhysicsObject seina, PhysicsObject panos) 
    170235    { 
    171         Exit(); 
     236        ClearAll(); 
     237        AlkuValikko(); 
    172238    } 
    173239    void LisaaVihollinen() 
    174240    { 
    175241        Vihu Vihollinen = new Vihu(VihollinenLeveys, VihollinenKorkeus); 
    176         Vihollinen.MakeStatic(); 
     242        //Vihollinen.MakeStatic(); 
     243        Vihollinen.IgnoresCollisionResponse = true; 
    177244        Vihollinen.Image = Vihollisenkuva; 
    178245        Vihollinen.ElamaLaskuri.Value = Vihollinen.ElamaLaskuri.Value - 0; 
    179246        Vihollinen.Tag = "Vihollinen"; 
    180         Vihollinen.Arvo = 5; 
    181         Vihollinen.X = reuna.X; 
    182         Vihollinen.Y = RandomGen.NextDouble(Level.Bottom + VihollinenKorkeus/2,Level.Top - VihollinenKorkeus/2); 
    183         Vihollinen.Velocity = new Vector (Vihujennopeus, 0); 
    184          
     247        Vihollinen.Arvo = 1; 
     248        Vihollinen.X = reuna.X - 20; 
     249        Vihollinen.Y = RandomGen.NextDouble(Level.Bottom + VihollinenKorkeus / 2, Level.Top - VihollinenKorkeus / 2); 
     250        Vihollinen.Velocity = new Vector(Vihujennopeus, 0); 
     251 
     252 
     253 
    185254        Add(Vihollinen); 
    186255 
    187         
    188  
    189           
    190  
    191          
    192  
    193        
    194     } 
     256    } 
     257 
    195258    void Panostormaaviholliseen(PhysicsObject panos, PhysicsObject Vihollinen, int damage) 
    196259    { 
     
    209272    } 
    210273 
    211     private IntMeter elamaLaskuri = new IntMeter(5, 0, 10 ); 
     274    private IntMeter elamaLaskuri = new IntMeter(15, 0, 100); 
    212275    public IntMeter ElamaLaskuri 
    213276    { 
    214277        set { elamaLaskuri = value; } 
    215         get { return elamaLaskuri; } } 
     278        get { return elamaLaskuri; } 
     279    } 
    216280 
    217281    public Vihu(double leveys, double korkeus) 
     
    220284        Tower_Defense peli = this.Game as Tower_Defense; 
    221285        elamaLaskuri.LowerLimit += delegate { this.Destroy(); peli.rahaa.Value += arvo; peli.RahaAani.Play(); }; 
    222          
    223     } 
    224      
     286 
     287    } 
     288 
    225289 
    226290} 
     
    235299    } 
    236300 
    237          
     301 
    238302    private int damage = 0; 
    239303    public int Damage 
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/obj/x86/Debug/ContentPipeline-{439F1067-9864-4E3E-8FD7-77C4E0FF4F85}.xml

    r6377 r6451  
    6565      <Time>2015-06-25T14:36:30.2692167+03:00</Time> 
    6666    </Item> 
     67    <Item> 
     68      <Source>Tausta.png</Source> 
     69      <Name>Tausta</Name> 
     70      <Importer>TextureImporter</Importer> 
     71      <Processor>TextureProcessor</Processor> 
     72      <Options>None</Options> 
     73      <Output>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Tausta.xnb</Output> 
     74      <Time>2015-06-26T11:12:15.1511927+03:00</Time> 
     75    </Item> 
     76    <Item> 
     77      <Source>Taustamusa.mp3</Source> 
     78      <Name>Taustamusa</Name> 
     79      <Importer>Mp3Importer</Importer> 
     80      <Processor>SongProcessor</Processor> 
     81      <Options>None</Options> 
     82      <Output>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Taustamusa.xnb</Output> 
     83      <Extra>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Taustamusa.wma</Extra> 
     84      <Time>2015-06-26T11:07:53.0598613+03:00</Time> 
     85    </Item> 
    6786    <BuildSuccessful>true</BuildSuccessful> 
    6887    <Settings> 
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/obj/x86/Debug/Tower Defense.csproj.FileListAbsolute.txt

    r6377 r6451  
    1414C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Pickup_Coin23.xnb 
    1515C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Parempiammus.xnb 
     16C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Tausta.xnb 
     17C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Taustamusa.xnb 
     18C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Taustamusa.wma 
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/obj/x86/Debug/cachefile-{439F1067-9864-4E3E-8FD7-77C4E0FF4F85}-targetpath.txt

    r6377 r6451  
    66Content\Pickup_Coin23.xnb 
    77Content\Parempiammus.xnb 
     8Content\Tausta.xnb 
     9Content\Taustamusa.xnb 
     10Content\Taustamusa.wma 
  • 2015/26/KonstaH/Tower Defense/Tower Defense/Tower DefenseContent/Tower_DefenseContent.contentproj

    r6377 r6451  
    9494    </Compile> 
    9595  </ItemGroup> 
     96  <ItemGroup> 
     97    <Compile Include="Tausta.png"> 
     98      <Name>Tausta</Name> 
     99      <Importer>TextureImporter</Importer> 
     100      <Processor>TextureProcessor</Processor> 
     101    </Compile> 
     102  </ItemGroup> 
     103  <ItemGroup> 
     104    <Compile Include="Taustamusa.mp3"> 
     105      <Name>Taustamusa</Name> 
     106      <Importer>Mp3Importer</Importer> 
     107      <Processor>SongProcessor</Processor> 
     108    </Compile> 
     109  </ItemGroup> 
    96110  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    97111  <!--  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.