Changeset 4978 for 2014/24


Ignore:
Timestamp:
2014-06-12 14:52:53 (5 years ago)
Author:
otnarhi
Message:
 
Location:
2014/24/OttoN
Files:
20 added
11 edited

Legend:

Unmodified
Added
Removed
  • 2014/24/OttoN/Towerdefence/Towerdefence/Towerdefence/Towerdefence.cs

    r4955 r4978  
    1818    Image nappulaKuva = LoadImage("nappula"); 
    1919    Image cannonballKuva = LoadImage("CannonBall"); 
     20    Image[] Tornikuvat = LoadImages("Cannontower", "Cannontower2", "CannonTower3", "CannonTower4", "CannonTower5", "CannonTower6","CannonTower7"); 
     21    SoundEffect Tykki = LoadSoundEffect("Cannon"); 
    2022    Vector aloitusPaikka; 
    2123    List<Vector> polkuList; 
    2224    SortedDictionary<int, Vector> polku = new SortedDictionary<int, Vector>(); 
    2325    DoubleMeter elamaLaskuri; 
    24      
     26    List<Vihu> vihulista; 
     27 
    2528    bool ollaanRakentamassa = false; 
    2629    IntMeter rahalaskuri = new IntMeter(800); 
     
    4245        Keyboard.Listen(Key.Insert, ButtonState.Pressed, HuijausKoodi, null); 
    4346        Keyboard.Listen(Key.NumLock, ButtonState.Pressed, HuijausKoodi2, null); 
     47        Keyboard.Listen(Key.NumLock, ButtonState.Pressed, HuijausKoodi22, null); 
    4448    } 
    4549    void LuoKentta() 
     
    4751        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
    4852        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentanPohja"); 
     53        vihulista = new List<Vihu>(); 
    4954 
    5055        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 
     
    5358        ruudut.SetTileMethod(Color.Red, Luokivi); 
    5459        ruudut.SetTileMethod(Color.Black, LuoPolku); 
    55          
    56         ruudut.SetTileMethod(new Color(0,38,255), delegate(Vector paikka, double leveys, double korkeus) 
     60 
     61        ruudut.SetTileMethod(new Color(0, 38, 255), delegate(Vector paikka, double leveys, double korkeus) 
    5762        { LuoTorniNappula(paikka, leveys, korkeus, cannonTowerKuva, 80, 20); }); 
    5863 
     
    6974        JarjestaVihuPolku(); 
    7075 
     76        IntMeter i = new IntMeter(0, 0, int.MaxValue); 
     77        Label pisteNaytto = new Label(); 
     78        pisteNaytto.X = Screen.Left + 100; 
     79        pisteNaytto.Y = Screen.Top - 100; 
     80        pisteNaytto.TextColor = Color.Black; 
     81        pisteNaytto.Color = Color.DarkGreen; 
     82        pisteNaytto.BindTo(i); 
     83        Add(pisteNaytto); 
     84        pisteNaytto.Title = "Aalto"; 
     85 
    7186        Timer ajastin = new Timer(); 
    72         ajastin.Interval = 0.3 ; 
    73         ajastin.Timeout += delegate { LuoVihu(15, 15); }; 
     87        ajastin.Interval = 5; 
     88        ajastin.Timeout += delegate { Aalto(i.Value); i.Value++; ajastin.Interval = 25; }; 
    7489        ajastin.Start(); 
    75          
     90 
     91 
     92 
    7693        Level.Background.Color = Color.DarkGreen; 
    7794        Camera.ZoomToLevel(); 
     
    90107        }, null); 
    91108    } 
    92  
     109     
     110 
     111    void HuijausKoodi22() 
     112    { 
     113        elamaLaskuri.Value += 10000; 
     114        elamaLaskuri.MaxValue = 10000; 
     115         
     116    } 
     117    
    93118    void HiirenLiikutus(AnalogState tila) 
    94119    { 
     
    109134        if (ollaanRakentamassa) 
    110135        { 
    111             AssaultRifle ase = new AssaultRifle(30,30); 
     136            AssaultRifle ase = new AssaultRifle(30, 30); 
    112137            ase.IsVisible = false; 
     138            ase.FireRate = 2; 
    113139            ase.ProjectileCollision = AmmusOsui; 
    114140            seurattava.Add(ase); 
     141            (seurattava as Torni).ase = ase; 
    115142            Timer ajastin = new Timer(); 
    116             ajastin.Interval = 0.4; 
     143            ajastin.Interval = 0.01; 
    117144            ajastin.Timeout += delegate 
    118145            { 
    119                 List<GameObject> vihut = GetObjectsWithTag("vihu"); 
     146                //List<GameObject> vihut = GetObjectsWithTag("vihu"); 
     147                var vihut = vihulista; 
    120148                if (vihut == null || vihut.Count == 0) return; 
    121149 
     150                double etäisyys = Vector.Distance(ase.AbsolutePosition, vihut[0].Position); 
     151                if (etäisyys > 200 + 100 * (ase.Parent as Torni).taso) return; 
     152 
     153 
    122154                //vihut.Sort((a, b) => Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1); 
    123                 vihut.Sort((a,b) => JarjestaVihut(ase, a, b)); 
     155                vihut.Sort((a, b) => JarjestaVihut(ase, a, b)); 
    124156                ase.Angle = (vihut[0].Position - ase.AbsolutePosition).Angle; 
    125157                PhysicsObject ammus = ase.Shoot(); 
     
    128160                { 
    129161                    ammus.Size *= 0.5; 
    130                     ammus.Image = cannonballKuva;  
     162                    ammus.Image = cannonballKuva; 
    131163                    ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     164                    Tykki.Play(); 
    132165                } 
    133166            }; 
     
    137170            seurattava = null; 
    138171        } 
     172        else 
     173        { 
     174            List<Torni> tornit = GetObjectsWithTag("torni").Cast<Torni>().ToList(); 
     175            foreach (Torni torni in tornit) 
     176            { 
     177                int hinta = 100 + 20 * torni.taso; 
     178                if (Mouse.IsCursorOn(torni)&& torni.taso<Tornikuvat.Length) 
     179                { 
     180                    if (rahalaskuri.Value >= hinta) 
     181                    { 
     182 
     183 
     184                        torni.taso += 1; 
     185                        torni.ase.FireRate = 1 + torni.taso; 
     186                        rahalaskuri.Value -= hinta; 
     187                        torni.Image = Tornikuvat[torni.taso - 1]; 
     188                    } 
     189                    else 
     190                    { 
     191                        MessageDisplay.Add("Ei tarpeeksi rahaa. Päivitys maksaa "+hinta); 
     192 
     193                    } 
     194                } 
     195 
     196            } 
     197        } 
    139198    } 
    140199 
     
    143202    { 
    144203        polkuList = new List<Vector>(); 
    145          
     204 
    146205        polkuList = polku.Values.ToList(); 
    147         Vector viimeinen = new Vector((polkuList.ElementAt(polkuList.Count-1).X +40), (polkuList.ElementAt(polkuList.Count-1)).Y); 
     206        Vector viimeinen = new Vector((polkuList.ElementAt(polkuList.Count - 1).X + 40), (polkuList.ElementAt(polkuList.Count - 1)).Y); 
    148207        polkuList.Add(viimeinen); 
    149208    } 
     
    159218        Add(taso, -3); 
    160219        taso.Color = Color.Brown; 
    161          
     220 
    162221    } 
    163222 
     
    172231    } 
    173232 
    174     
    175      
     233 
     234 
    176235    void LuoVihuPolku(Vector paikka, double leveys, double korkeus, int reittiPisteenJarjestysnro) 
    177236    { 
    178         PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     237        GameObject taso = new GameObject(leveys, korkeus); 
    179238        taso.Position = paikka; 
    180239        if (reittiPisteenJarjestysnro == 0) aloitusPaikka = paikka; 
    181240        polku.Add(reittiPisteenJarjestysnro, paikka); 
    182241        taso.Image = Hiekkakuva; 
    183         taso.CollisionIgnoreGroup = 1; 
     242        //taso.CollisionIgnoreGroup = 1; 
    184243        Add(taso, -3); 
    185244        taso.Color = Color.Brown; 
    186245    } 
    187246 
    188     void LuoVihu(double leveys, double korkeus) 
    189     { 
    190         Vihu vihu = new Vihu (51, 51); 
     247    void LuoVihu(double leveys, double korkeus, int elama, int nopeus) 
     248    { 
     249        Vihu vihu = new Vihu(51, 51, elama); 
    191250        vihu.Position = aloitusPaikka; 
    192251        vihu.Image = norsukuva; 
     
    196255        Add(vihu, 3); 
    197256        AddCollisionHandler(vihu, "Tukikohta", ElamaMenetys); 
    198          
     257 
    199258 
    200259        ProgressBar elamaPalkki = new ProgressBar(50, 5); 
     
    208267        ajastin.Timeout += delegate 
    209268        { 
    210             elamaPalkki.Position = Camera.WorldToScreen(vihu.Position)+new Vector(0,-30); 
     269            elamaPalkki.Position = Camera.WorldToScreen(vihu.Position) + new Vector(0, -30); 
    211270        }; 
    212271        ajastin.Start(); 
     
    214273        { 
    215274            elamaPalkki.Destroy(); 
     275            vihulista.Remove(vihu); 
    216276        }; 
    217          
     277 
    218278        PathFollowerBrain polkuAivot = new PathFollowerBrain(polkuList); 
    219         polkuAivot.Speed = 80; 
     279        polkuAivot.Speed = nopeus; 
    220280        polkuAivot.Active = true; 
    221281 
    222282        vihu.Brain = polkuAivot; 
     283        vihulista.Add(vihu); 
    223284    } 
    224285 
    225286    void LuoTorniNappula(Vector paikka, double leveys, double korkeus, Image rakennusKuva, int hinta, int rakennusKoko) 
    226287    { 
    227         menuNappi = new PushButton(leveys, korkeus, nappulaKuva); 
    228         menuNappi.Position = new Vector( 0,  (Level.Bottom)); 
    229         menuNappi.Clicked += new Action(() => AnnaRakennus(rakennusKoko, rakennusKoko*2, hinta, rakennusKuva)); 
     288        menuNappi = new PushButton(leveys*2, korkeus*2, nappulaKuva); 
     289        menuNappi.Position = new Vector(0, (Screen.Bottom + 30)); 
     290        menuNappi.Clicked += new Action(() => AnnaRakennus(rakennusKoko, rakennusKoko * 2, hinta, rakennusKuva)); 
    230291        Add(menuNappi); 
    231292        Mouse.ListenMovement(1.0, delegate 
     
    235296                menuHelperNaytto.IsVisible = true; 
    236297                menuHelperNaytto.Text = "Torni, " + hinta + " kultaa"; 
    237                 menuHelperNaytto.Position = Mouse.PositionOnWorld + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 
     298                menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 
    238299            } 
    239300        }, null 
     
    259320        rahalaskuri.Value -= hinta; 
    260321 
    261         GameObject talo = new GameObject(leveys, korkeus); 
     322        Torni talo = new Torni(leveys, korkeus); 
    262323        talo.Color = Color.Black; 
    263324        talo.Image = kuva; 
    264325        talo.Position = Mouse.PositionOnScreen; 
     326        talo.Tag = "torni"; 
    265327        ollaanRakentamassa = true; 
    266328        seurattava = talo; 
     
    271333    void LuoRahalaskuri() 
    272334    { 
    273         rahalaskuri = new IntMeter(80, 0, int.MaxValue); 
     335        rahalaskuri = new IntMeter(140, 0, int.MaxValue); 
    274336 
    275337        Label rahanaytto = new Label(); 
     
    296358 
    297359                kohde.Destroy(); 
    298                 rahalaskuri.AddValue(10); 
     360                rahalaskuri.AddValue(2); 
    299361            } 
    300362        } 
     
    318380        MessageDisplay.Add("Hahaaaaaaa Hävisit :D."); 
    319381        Timer.SingleShot(5, Exit); 
    320         
     382 
     383 
    321384    } 
    322385 
     
    328391        Add(taso); 
    329392        taso.Tag = "Tukikohta"; 
    330         
     393 
    331394    } 
    332395    void ElamaMenetys(PhysicsObject vihu, PhysicsObject Tukikohta) 
     
    338401    void HuijausKoodi() 
    339402    { 
    340        rahalaskuri.AddValue(800); 
    341        MessageDisplay.Add("Koodi aktivoitu: Lisää rahaa"); 
    342        
     403        rahalaskuri.AddValue(800); 
     404        MessageDisplay.Add("Koodi aktivoitu: Lisää rahaa"); 
     405 
    343406    } 
    344407    void HuijausKoodi2() 
     
    348411    } 
    349412 
    350  
     413    void Aalto(int numero) 
     414    { 
     415        int i = 0; 
     416        Timer ajastin = new Timer(); 
     417        ajastin.Interval = Math.Max(0.2, 1.5 - 0.2 * numero); 
     418        //ajastin.Times.Value = 10; 
     419        //ajastin.TimesLimited = true; 
     420        ajastin.Timeout += delegate 
     421        { 
     422            LuoVihu(15, 15, (int)(3 + 0.5 * numero), 60 + 10 * numero); 
     423            i++; 
     424            if (i > 10 * numero) 
     425                ajastin.Stop(); 
     426        }; 
     427        ajastin.Start(); 
     428    } 
    351429 
    352430} 
    353431class Vihu : PhysicsObject 
    354432{ 
    355     private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     433    private IntMeter elamaLaskuri; 
    356434    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    357435 
    358     public Vihu(double leveys, double korkeus) 
     436    public Vihu(double leveys, double korkeus, int elama) 
    359437        : base(leveys, korkeus) 
    360438    { 
     439        elamaLaskuri = new IntMeter(elama, 0, elama); 
    361440        //elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    362441 
     
    364443 
    365444} 
     445class Torni : GameObject 
     446{ 
     447    public int taso = 1; 
     448    public AssaultRifle ase; 
     449    public Torni(double leveys, double korkeus) 
     450        : base(leveys, korkeus) 
     451    { 
     452 
     453 
     454    } 
     455 
     456} 
  • 2014/24/OttoN/Towerdefence/Towerdefence/Towerdefence/Towerdefence.csproj.Debug.cachefile

    r4955 r4978  
    77Content\nappula.xnb 
    88Content\CannonBall.xnb 
     9Content\CannonTower2.xnb 
     10Content\CannonTower3.xnb 
     11Content\CannonTower4.xnb 
     12Content\CannonTower7.xnb 
     13Content\CannonTower5.xnb 
     14Content\CannonTower6.xnb 
     15Content\Cannon.xnb 
  • 2014/24/OttoN/Towerdefence/Towerdefence/Towerdefence/obj/x86/Debug/ContentPipeline-{EADB9CD8-650F-4123-8AF5-6C10E6F99B8F}.xml

    r4955 r4978  
    7474      <Time>2014-06-11T13:59:54.6674523+03:00</Time> 
    7575    </Item> 
     76    <Item> 
     77      <Source>CannonTower2.png</Source> 
     78      <Name>CannonTower2</Name> 
     79      <Importer>TextureImporter</Importer> 
     80      <Processor>TextureProcessor</Processor> 
     81      <Options>None</Options> 
     82      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower2.xnb</Output> 
     83      <Time>2014-06-12T11:55:37.9319732+03:00</Time> 
     84    </Item> 
     85    <Item> 
     86      <Source>CannonTower3.png</Source> 
     87      <Name>CannonTower3</Name> 
     88      <Importer>TextureImporter</Importer> 
     89      <Processor>TextureProcessor</Processor> 
     90      <Options>None</Options> 
     91      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower3.xnb</Output> 
     92      <Time>2014-06-12T12:17:48.4173732+03:00</Time> 
     93    </Item> 
     94    <Item> 
     95      <Source>CannonTower4.png</Source> 
     96      <Name>CannonTower4</Name> 
     97      <Importer>TextureImporter</Importer> 
     98      <Processor>TextureProcessor</Processor> 
     99      <Options>None</Options> 
     100      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower4.xnb</Output> 
     101      <Time>2014-06-12T13:05:07.7218246+03:00</Time> 
     102    </Item> 
     103    <Item> 
     104      <Source>CannonTower7.png</Source> 
     105      <Name>CannonTower7</Name> 
     106      <Importer>TextureImporter</Importer> 
     107      <Processor>TextureProcessor</Processor> 
     108      <Options>None</Options> 
     109      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower7.xnb</Output> 
     110      <Time>2014-06-12T13:20:35.5976029+03:00</Time> 
     111    </Item> 
     112    <Item> 
     113      <Source>CannonTower5.png</Source> 
     114      <Name>CannonTower5</Name> 
     115      <Importer>TextureImporter</Importer> 
     116      <Processor>TextureProcessor</Processor> 
     117      <Options>None</Options> 
     118      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower5.xnb</Output> 
     119      <Time>2014-06-12T13:20:39.6730104+03:00</Time> 
     120    </Item> 
     121    <Item> 
     122      <Source>CannonTower6.png</Source> 
     123      <Name>CannonTower6</Name> 
     124      <Importer>TextureImporter</Importer> 
     125      <Processor>TextureProcessor</Processor> 
     126      <Options>None</Options> 
     127      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower6.xnb</Output> 
     128      <Time>2014-06-12T13:20:40.2410672+03:00</Time> 
     129    </Item> 
     130    <Item> 
     131      <Source>Cannon.wav</Source> 
     132      <Name>Cannon</Name> 
     133      <Importer>WavImporter</Importer> 
     134      <Processor>SoundEffectProcessor</Processor> 
     135      <Options>None</Options> 
     136      <Output>C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\Cannon.xnb</Output> 
     137      <Time>2014-06-12T14:26:54.5523291+03:00</Time> 
     138    </Item> 
    76139    <BuildSuccessful>true</BuildSuccessful> 
    77140    <Settings> 
  • 2014/24/OttoN/Towerdefence/Towerdefence/Towerdefence/obj/x86/Debug/Towerdefence.csproj.FileListAbsolute.txt

    r4955 r4978  
    1515C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\nappula.xnb 
    1616C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonBall.xnb 
     17C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower2.xnb 
     18C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower3.xnb 
     19C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower4.xnb 
     20C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower7.xnb 
     21C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower5.xnb 
     22C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\CannonTower6.xnb 
     23C:\MyTemp\OttoN\Towerdefence\Towerdefence\Towerdefence\bin\x86\Debug\Content\Cannon.xnb 
  • 2014/24/OttoN/Towerdefence/Towerdefence/Towerdefence/obj/x86/Debug/cachefile-{EADB9CD8-650F-4123-8AF5-6C10E6F99B8F}-targetpath.txt

    r4955 r4978  
    77Content\nappula.xnb 
    88Content\CannonBall.xnb 
     9Content\CannonTower2.xnb 
     10Content\CannonTower3.xnb 
     11Content\CannonTower4.xnb 
     12Content\CannonTower7.xnb 
     13Content\CannonTower5.xnb 
     14Content\CannonTower6.xnb 
     15Content\Cannon.xnb 
  • 2014/24/OttoN/Towerdefence/Towerdefence/TowerdefenceContent/TowerdefenceContent.contentproj

    r4955 r4978  
    9797    </Compile> 
    9898  </ItemGroup> 
     99  <ItemGroup> 
     100    <Compile Include="CannonTower2.png"> 
     101      <Name>CannonTower2</Name> 
     102      <Importer>TextureImporter</Importer> 
     103      <Processor>TextureProcessor</Processor> 
     104    </Compile> 
     105  </ItemGroup> 
     106  <ItemGroup> 
     107    <Compile Include="CannonTower3.png"> 
     108      <Name>CannonTower3</Name> 
     109      <Importer>TextureImporter</Importer> 
     110      <Processor>TextureProcessor</Processor> 
     111    </Compile> 
     112  </ItemGroup> 
     113  <ItemGroup> 
     114    <Compile Include="CannonTower4.png"> 
     115      <Name>CannonTower4</Name> 
     116      <Importer>TextureImporter</Importer> 
     117      <Processor>TextureProcessor</Processor> 
     118    </Compile> 
     119  </ItemGroup> 
     120  <ItemGroup> 
     121    <Compile Include="CannonTower7.png"> 
     122      <Name>CannonTower7</Name> 
     123      <Importer>TextureImporter</Importer> 
     124      <Processor>TextureProcessor</Processor> 
     125    </Compile> 
     126  </ItemGroup> 
     127  <ItemGroup> 
     128    <Compile Include="CannonTower5.png"> 
     129      <Name>CannonTower5</Name> 
     130      <Importer>TextureImporter</Importer> 
     131      <Processor>TextureProcessor</Processor> 
     132    </Compile> 
     133  </ItemGroup> 
     134  <ItemGroup> 
     135    <Compile Include="CannonTower6.png"> 
     136      <Name>CannonTower6</Name> 
     137      <Importer>TextureImporter</Importer> 
     138      <Processor>TextureProcessor</Processor> 
     139    </Compile> 
     140  </ItemGroup> 
     141  <ItemGroup> 
     142    <Compile Include="Cannon.wav"> 
     143      <Name>Cannon</Name> 
     144      <Importer>WavImporter</Importer> 
     145      <Processor>SoundEffectProcessor</Processor> 
     146    </Compile> 
     147  </ItemGroup> 
    99148  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    100149  <!--  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.