Changeset 5774


Ignore:
Timestamp:
2014-11-15 15:03:49 (9 years ago)
Author:
jotapoti
Message:
 
Location:
2014/koodauskerho/38/AakeR/Destroy
Files:
14 added
16 edited

Legend:

Unmodified
Added
Removed
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/Destroy/Destroy.cs

    r5758 r5774  
    77using Jypeli.Widgets; 
    88 
     9 
     10class Palikka : PhysicsObject 
     11{ 
     12    public IntMeter elamat; 
     13 
     14    public Palikka(double l, double k) 
     15        : base(l, k) 
     16    { 
     17        elamat = new IntMeter(5, 0, 5); 
     18    } 
     19} 
     20 
    921public class Destroy : PhysicsGame 
    1022{ 
     
    1224    const double hyppyNopeus = 750; 
    1325    const int RUUDUN_KOKO = 40; 
    14  
     26    string kentanNimi = "kentta1"; 
    1527 
    1628    Image pelaajanKuva = LoadImage("norsu"); 
     
    2133    Image puuKuva2 = LoadImage("PuuPalikka2"); 
    2234    Image mustaAukkoKuva = LoadImage("MustaAukko"); 
     35    Image palikkaRikki2 = LoadImage("PalikkaRikki2"); 
     36    Image palikkaRikki = LoadImage("PalikkaRikki"); 
     37    Image puupalikkaRikki = LoadImage("PuuPalikkaRikki"); 
     38    Image puupalikkaRikki2 = LoadImage("PuuPalikkaRikki2"); 
     39    Image puupalikka2Rikki = LoadImage("PuuPalikka2Rikki"); 
     40    Image puupalikka2Rikki2 = LoadImage("PuuPalikka2Rikki2"); 
    2341 
    2442    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    2745    public override void Begin() 
    2846    { 
    29         UusiPeli(); 
     47        MultiSelectWindow alkuValikko = new MultiSelectWindow("Valitse kenttä", 
     48"Kenttä 1", "Kenttä 2", "Lopeta"); 
     49        Add(alkuValikko); 
     50        alkuValikko.AddItemHandler(0, UusiPeli); 
     51        alkuValikko.AddItemHandler(1, VaihdaKentta2); 
     52        alkuValikko.AddItemHandler(2, Exit); 
     53 
    3054 
    3155        //Camera.ZoomFactor = 1.5; 
    3256        //Camera.ZoomToLevel(); 
     57         
    3358        IsFullScreen = true; 
     59         
    3460        Camera.StayInLevel = true; 
    3561    } 
     
    4167        Gravity = new Vector(0, -1000); 
    4268 
    43         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     69        TileMap kentta = TileMap.FromLevelAsset(kentanNimi); 
    4470        kentta.SetTileMethod('#', LisaaTaso); 
    4571        kentta.SetTileMethod('?', LisaaPalikka); 
     
    7197    } 
    7298 
    73     void LisaaPuu(Vector paikka, double leveys, double korkeus) 
    74     { 
    75         PhysicsObject puu = new PhysicsObject(leveys*3, korkeus); 
     99    PhysicsObject LuoPuu(Vector paikka, double leveys, double korkeus) 
     100    { 
     101        Palikka puu = new Palikka(leveys, korkeus); 
    76102        puu.Position = paikka; 
    77103        puu.Color = Color.Green; 
     
    79105        palikat.Add(puu); 
    80106        puu.Image = puuKuva; 
    81         puu.Mass = 20.0; 
     107        puu.Mass = 10.0; 
    82108        puu.Tag = "palikka"; 
    83     } 
    84  
     109 
     110        puu.elamat.LowerLimit += delegate 
     111        { 
     112            LisaaPalikkaOsa(puu.Position + RandomGen.NextVector(5, 20), leveys / 2, korkeus, puupalikkaRikki, true).AbsoluteAngle = puu.AbsoluteAngle; 
     113            LisaaPalikkaOsa(puu.Position + RandomGen.NextVector(5, 20), leveys / 2, korkeus, puupalikkaRikki, true).AbsoluteAngle = puu.AbsoluteAngle + Angle.FromDegrees(180); 
     114            puu.Destroy(); 
     115        }; 
     116 
     117        return puu; 
     118    } 
     119 
     120    void LisaaPuu(Vector paikka, double leveys, double korkeus) 
     121    { 
     122        LuoPuu(paikka, leveys * 3, korkeus); 
     123    } 
     124 
     125    void LisaaPuu2(Vector paikka, double leveys, double korkeus) 
     126    { 
     127        PhysicsObject puu = LuoPuu(paikka, leveys * 3, korkeus); 
     128        puu.AbsoluteAngle = Angle.FromDegrees(90); 
     129    } 
     130 
     131 
     132    /* 
    85133    void LisaaPuu2(Vector paikka, double leveys, double korkeus) 
    86134    { 
     
    91139        palikat.Add(puu); 
    92140        puu.Image = puuKuva2; 
    93         puu.Mass = 20.0; 
     141        puu.Mass = 10.0; 
    94142        puu.Tag = "palikka"; 
    95143    } 
     144     */ 
    96145 
    97146    void LisaaNappaimet() 
     
    123172        tahti.Destroy(); 
    124173    } 
     174     
    125175    void LisaaPalikka(Vector paikka, double leveys, double korkeus) 
    126176    { 
    127         PhysicsObject palikka = new PhysicsObject(leveys, korkeus); 
     177        Palikka palikka = new Palikka(leveys, korkeus); 
    128178        palikka.Position = paikka; 
    129179        palikka.Color = Color.Green; 
     
    133183        palikka.Mass = 10.0; 
    134184        palikka.Tag = "palikka"; 
     185 
     186        palikka.elamat.LowerLimit += delegate 
     187        { 
     188            palikka.Destroy(); 
     189 
     190            LisaaPalikkaOsa(palikka.Position + RandomGen.NextVector(5, 20), leveys, korkeus / 2, palikkaRikki2); 
     191            LisaaPalikkaOsa(palikka.Position + RandomGen.NextVector(5, 20), leveys / 2, korkeus / 2, palikkaRikki); 
     192            LisaaPalikkaOsa(palikka.Position + RandomGen.NextVector(5, 20), leveys / 2, korkeus / 2, palikkaRikki); 
     193        }; 
     194    } 
     195 
     196    PhysicsObject LisaaPalikkaOsa(Vector paikka, double leveys, double korkeus, Image kuva, bool muotoKuvasta = false) 
     197    { 
     198        PhysicsObject palikka = new PhysicsObject(leveys, korkeus); 
     199        palikka.Position = paikka; 
     200        if (muotoKuvasta) 
     201        { 
     202            palikka.Shape = Shape.FromImage(kuva); 
     203        } 
     204        Add(palikka); 
     205        palikat.Add(palikka); 
     206        palikka.Image = kuva; 
     207        palikka.Mass = 2.0; 
     208        palikka.Tag = "palikka"; 
     209        return palikka; 
    135210    } 
    136211 
     
    142217            { 
    143218                PhysicsObject pommi = new PhysicsObject(80, 50); 
    144                 pommi.Tag = "palikka"; 
     219                pommi.Tag = "pommi"; 
    145220                pommi.Position = Mouse.PositionOnWorld; 
    146221 
     
    149224                { 
    150225                    if (pommi.IsInside(palikat[i].Position)) { onkoSisalla = true; break; } 
    151                 } 
     226                    if (pommi.IsInside(palikat[i].Position + new Vector(palikat[i].Left, 0))) { onkoSisalla = true; break; } 
     227                    if (pommi.IsInside(palikat[i].Position + new Vector(palikat[i].Right, 0))) { onkoSisalla = true; break; } 
     228                    if (pommi.IsInside(palikat[i].Position + new Vector(0, palikat[i].Top))) { onkoSisalla = true; break; } 
     229                    if (pommi.IsInside(palikat[i].Position + new Vector(0, palikat[i].Bottom))) { onkoSisalla = true; break; } 
     230                     
     231                } 
     232 
     233                foreach (GameObject toinenpommi in GetObjectsWithTag("pommi")) 
     234                { 
     235                    if (pommi.IsInside(toinenpommi.Position)) { onkoSisalla = true; break; } 
     236                } 
     237 
    152238                if (onkoSisalla == false) 
    153239                { 
     
    167253        Explosion rajahdys = new Explosion(150); 
    168254        rajahdys.Position = pommi.Position; 
     255        rajahdys.ShockwaveReachesObject += PaineaaltoOsuu; 
    169256        Add(rajahdys); 
    170257        pommi.Destroy(); 
    171258 
    172259    } 
     260 
     261    void PaineaaltoOsuu(IPhysicsObject olio, Vector shokki) 
     262    { 
     263        if (olio is Palikka) 
     264        { 
     265            Palikka palikka = olio as Palikka; 
     266            palikka.elamat.Value--; 
     267        } 
     268    } 
     269 
    173270 
    174271    void UusiPeli() 
     
    214311                } 
    215312            } 
     313 
     314            foreach (var obj in GetObjectsWithTag("pommi")) 
     315            { 
     316                if (obj is PhysicsObject) 
     317                { 
     318                    double voima = 1 * (2250000 / Vector.Distance(mustaAukko.Position, ((PhysicsObject)obj).Position)); 
     319                    ((PhysicsObject)obj).Push((mustaAukko.Position - ((PhysicsObject)obj).Position).Normalize() * voima); 
     320                } 
     321            } 
    216322        }; 
    217323        ajastin.Start(); 
     
    219325    } 
    220326 
     327    void VaihdaKentta2() 
     328    { 
     329        kentanNimi = "kentta2"; 
     330        UusiPeli(); 
     331    } 
     332 
    221333} 
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/Destroy/Destroy.csproj.Debug.cachefile

    r5758 r5774  
    88Content\PuuPalikka2.xnb 
    99Content\MustaAukko.xnb 
     10Content\PalikkaRikki.xnb 
     11Content\PalikkaRikki2.xnb 
     12Content\PuuPalika2Rikki.xnb 
     13Content\PuuPalikka2Rikki2.xnb 
     14Content\PuuPalikkaRikki.xnb 
     15Content\PuuPalikkaRikki2.xnb 
     16Content\kentta2.xnb 
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/Destroy/obj/x86/Debug/ContentPipeline-{69DDA027-603C-4121-91C8-283AC55C2BD2}.xml

    r5758 r5774  
    6363      <Options>None</Options> 
    6464      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\kentta1.xnb</Output> 
    65       <Time>2014-10-18T13:42:35.924541+03:00</Time> 
     65      <Time>2014-11-15T14:46:24.9775179+02:00</Time> 
    6666    </Item> 
    6767    <Item> 
     
    8282      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\MustaAukko.xnb</Output> 
    8383      <Time>2014-10-18T15:06:35.1303144+03:00</Time> 
     84    </Item> 
     85    <Item> 
     86      <Source>PalikkaRikki.png</Source> 
     87      <Name>PalikkaRikki</Name> 
     88      <Importer>TextureImporter</Importer> 
     89      <Processor>TextureProcessor</Processor> 
     90      <Options>None</Options> 
     91      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PalikkaRikki.xnb</Output> 
     92      <Time>2014-11-15T11:19:17.4489424+02:00</Time> 
     93    </Item> 
     94    <Item> 
     95      <Source>PalikkaRikki2.png</Source> 
     96      <Name>PalikkaRikki2</Name> 
     97      <Importer>TextureImporter</Importer> 
     98      <Processor>TextureProcessor</Processor> 
     99      <Options>None</Options> 
     100      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PalikkaRikki2.xnb</Output> 
     101      <Time>2014-11-15T11:19:50.7239557+02:00</Time> 
     102    </Item> 
     103    <Item> 
     104      <Source>PuuPalika2Rikki.png</Source> 
     105      <Name>PuuPalika2Rikki</Name> 
     106      <Importer>TextureImporter</Importer> 
     107      <Processor>TextureProcessor</Processor> 
     108      <Options>None</Options> 
     109      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalika2Rikki.xnb</Output> 
     110      <Time>2014-11-15T11:16:25.4422398+02:00</Time> 
     111    </Item> 
     112    <Item> 
     113      <Source>PuuPalikka2Rikki2.png</Source> 
     114      <Name>PuuPalikka2Rikki2</Name> 
     115      <Importer>TextureImporter</Importer> 
     116      <Processor>TextureProcessor</Processor> 
     117      <Options>None</Options> 
     118      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikka2Rikki2.xnb</Output> 
     119      <Time>2014-11-15T11:18:37.9806894+02:00</Time> 
     120    </Item> 
     121    <Item> 
     122      <Source>PuuPalikkaRikki.png</Source> 
     123      <Name>PuuPalikkaRikki</Name> 
     124      <Importer>TextureImporter</Importer> 
     125      <Processor>TextureProcessor</Processor> 
     126      <Options>None</Options> 
     127      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikkaRikki.xnb</Output> 
     128      <Time>2014-11-15T14:09:13.9798254+02:00</Time> 
     129    </Item> 
     130    <Item> 
     131      <Source>PuuPalikkaRikki2.png</Source> 
     132      <Name>PuuPalikkaRikki2</Name> 
     133      <Importer>TextureImporter</Importer> 
     134      <Processor>TextureProcessor</Processor> 
     135      <Options>None</Options> 
     136      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikkaRikki2.xnb</Output> 
     137      <Time>2014-11-15T11:22:09.4088447+02:00</Time> 
     138    </Item> 
     139    <Item> 
     140      <Source>kentta2.txt</Source> 
     141      <Name>kentta2</Name> 
     142      <Importer>TextFileImporter</Importer> 
     143      <Processor>TextFileContentProcessor</Processor> 
     144      <Options>None</Options> 
     145      <Output>C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\kentta2.xnb</Output> 
     146      <Time>2014-11-15T15:01:38.2439568+02:00</Time> 
    84147    </Item> 
    85148    <BuildSuccessful>true</BuildSuccessful> 
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/Destroy/obj/x86/Debug/Destroy.csproj.FileListAbsolute.txt

    r5758 r5774  
    1616C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikka2.xnb 
    1717C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\MustaAukko.xnb 
     18C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PalikkaRikki.xnb 
     19C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PalikkaRikki2.xnb 
     20C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalika2Rikki.xnb 
     21C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikka2Rikki2.xnb 
     22C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikkaRikki.xnb 
     23C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\PuuPalikkaRikki2.xnb 
     24C:\MyTemp\AakeR\Destroy\Destroy\Destroy\bin\x86\Debug\Content\kentta2.xnb 
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/Destroy/obj/x86/Debug/cachefile-{69DDA027-603C-4121-91C8-283AC55C2BD2}-targetpath.txt

    r5758 r5774  
    88Content\PuuPalikka2.xnb 
    99Content\MustaAukko.xnb 
     10Content\PalikkaRikki.xnb 
     11Content\PalikkaRikki2.xnb 
     12Content\PuuPalika2Rikki.xnb 
     13Content\PuuPalikka2Rikki2.xnb 
     14Content\PuuPalikkaRikki.xnb 
     15Content\PuuPalikkaRikki2.xnb 
     16Content\kentta2.xnb 
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/DestroyContent/DestroyContent.contentproj

    r5758 r5774  
    102102    </Compile> 
    103103  </ItemGroup> 
     104  <ItemGroup> 
     105    <Compile Include="PalikkaRikki.png"> 
     106      <Name>PalikkaRikki</Name> 
     107      <Importer>TextureImporter</Importer> 
     108      <Processor>TextureProcessor</Processor> 
     109    </Compile> 
     110    <Compile Include="PalikkaRikki2.png"> 
     111      <Name>PalikkaRikki2</Name> 
     112      <Importer>TextureImporter</Importer> 
     113      <Processor>TextureProcessor</Processor> 
     114    </Compile> 
     115    <Compile Include="PuuPalika2Rikki.png"> 
     116      <Name>PuuPalika2Rikki</Name> 
     117      <Importer>TextureImporter</Importer> 
     118      <Processor>TextureProcessor</Processor> 
     119    </Compile> 
     120    <Compile Include="PuuPalikka2Rikki2.png"> 
     121      <Name>PuuPalikka2Rikki2</Name> 
     122      <Importer>TextureImporter</Importer> 
     123      <Processor>TextureProcessor</Processor> 
     124    </Compile> 
     125    <Compile Include="PuuPalikkaRikki.png"> 
     126      <Name>PuuPalikkaRikki</Name> 
     127      <Importer>TextureImporter</Importer> 
     128      <Processor>TextureProcessor</Processor> 
     129    </Compile> 
     130    <Compile Include="PuuPalikkaRikki2.png"> 
     131      <Name>PuuPalikkaRikki2</Name> 
     132      <Importer>TextureImporter</Importer> 
     133      <Processor>TextureProcessor</Processor> 
     134    </Compile> 
     135  </ItemGroup> 
     136  <ItemGroup> 
     137    <Compile Include="kentta2.txt"> 
     138      <Name>kentta2</Name> 
     139      <Importer>TextFileImporter</Importer> 
     140      <Processor>TextFileContentProcessor</Processor> 
     141    </Compile> 
     142  </ItemGroup> 
    104143  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    105144  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2014/koodauskerho/38/AakeR/Destroy/Destroy/DestroyContent/kentta1.txt

    r5758 r5774  
    1010#.-???-..?-.-?..-???-.# 
    1111#.+-&-+..?+.+?..+-&-+.# 
    12 #.-.?.-..?-.-?..-.?.-.# 
     12#.-.?.-..?-.-?..-???-.# 
    1313####################### 
Note: See TracChangeset for help on using the changeset viewer.