Changeset 5644 for 2014/30/AtteB


Ignore:
Timestamp:
2014-07-24 15:01:05 (5 years ago)
Author:
athebla
Message:

Peli päivitetty + uusi kenttä + Slimy päivitetty

Location:
2014/30/AtteB
Files:
9 added
16 edited

Legend:

Unmodified
Added
Removed
  • 2014/30/AtteB/Peli/Peli/Peli/Peli.cs

    r5623 r5644  
    77using Jypeli.Widgets; 
    88 
    9 // TODO Lisää kenttiä (!!!) 
    10 // TODO Tähtääminen hiirellä 
     9// TODO 
     10// TODO Lisää kenttiä + kenttiin teleporttaaminen (!!!) 
    1111// TODO Lisää vihollisia 
    12 // TODO Healthbar pelaajan ja bossin päälle 
    1312 
    1413class Vihollinen : PlatformCharacter 
     
    7675    const double hyppyNopeus = 750; 
    7776    const int RUUDUN_KOKO = 40; 
     77    int KenttäNumero = 1; 
    7878 
    7979    PlatformCharacter pelaaja1; 
     
    8888    Image StoneBrickTaso = LoadImage("Stone_brick_tile"); 
    8989    Image Slime1 = LoadImage("Slime"); 
     90    Image Slime_damage = LoadImage("Slime_damage"); 
    9091    Image FireBall1 = LoadImage("FireBall_1"); 
    9192    Image FireBall2 = LoadImage("FireBall_2"); 
     
    104105    public override void Begin() 
    105106    { 
    106         Gravity = new Vector(0, -1000); 
    107  
    108107        IsMouseVisible = true; 
    109108        SetWindowSize(1000, 800); 
     109         
     110        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Lopeta"); 
     111        Add(alkuValikko); 
     112 
     113        alkuValikko.AddItemHandler(0, AloitaPeli); 
     114        alkuValikko.AddItemHandler(1, Exit); 
     115    } 
     116 
     117    void AloitaPeli() 
     118    { 
     119        ClearAll(); 
     120 
     121        Gravity = new Vector(0, -1000); 
    110122 
    111123        LuoKentta(); 
     
    130142    void LuoKentta() 
    131143    { 
    132         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     144        TileMap kentta = TileMap.FromLevelAsset("kentta" + KenttäNumero); 
    133145        kentta.SetTileMethod('#', LisaaTaso); 
    134146        kentta.SetTileMethod('N', LisaaPelaaja); 
     
    140152        kentta.SetTileMethod('O', LisaaOvi); 
    141153        kentta.SetTileMethod('-', LisaaOvenSulkija); 
    142         kentta.SetTileMethod('§', LisaaOvi2); 
     154        kentta.SetTileMethod('2', LisaaOvi2); 
     155        kentta.SetTileMethod('_', LisaaTeleportteri); 
    143156        kentta.SetTileMethod('B', delegate(Vector paikka, double l, double k) { BossSijainti = paikka; }); 
    144157        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
     
    200213    } 
    201214 
     215    void LisaaTeleportteri(Vector paikka, double leveys, double korkeus) 
     216    { 
     217        PhysicsObject tele = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     218        tele.IgnoresCollisionResponse = true; 
     219        tele.Position = paikka; 
     220        tele.Image = Heart1; 
     221        tele.Tag = "teleportteri"; 
     222        Add(tele); 
     223    } 
     224 
    202225    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    203226    { 
     
    207230        pelaaja1.Tag = "pelaaja"; 
    208231        pelaaja1.Image = Pelaaja_Seisoo; 
     232        pelaaja1.CollisionIgnoreGroup = 10; 
    209233        AddCollisionHandler(pelaaja1, "vihollinen", PelaajaOsuuViholliseen); 
    210234        AddCollisionHandler(pelaaja1, "health", PelaajaOsuuHeart); 
    211235        AddCollisionHandler(pelaaja1, "ovensulkija", OvetSulkeutuu); 
     236        AddCollisionHandler(pelaaja1, "boss", PelaajaOsuuViholliseen); 
     237        AddCollisionHandler(pelaaja1, "teleportteri", PelaajaOsuuTeleportteri); 
    212238        Add(pelaaja1); 
    213239 
    214240        P1FireBall = new AssaultRifle(30, 10); 
     241        P1FireBall.CanHitOwner = false; 
    215242 
    216243        // Ammusten määrä 
    217         P1FireBall.Ammo.Value = 100000; 
     244        P1FireBall.InfiniteAmmo = true; 
    218245 
    219246        // Ammus osuu = mitä tapahtuu 
    220         P1FireBall.ProjectileCollision = AmmusOsuiViholliseen; 
     247        P1FireBall.ProjectileCollision = AmmusOsuiJohonkin; 
    221248        P1FireBall.Image = Clear; 
    222249 
     
    263290        vihollinen.Position = paikka; 
    264291        vihollinen.Tag = "vihollinen"; 
    265         //AddCollisionHandler(vihollinen, "ammus", AmmusOsuiViholliseen); 
     292        //AddCollisionHandler(vihollinen, "ammus", AmmusOsuiJohonkin); 
    266293        Add(vihollinen); 
    267294    } 
     
    277304    public void PelaajaOsuuViholliseen(PhysicsObject pelaaja1, PhysicsObject kohde) 
    278305    { 
    279         elämäLaskuri.Value -= 10; 
     306        elämäLaskuri.Value -= 5; 
    280307 
    281308        if (elämäLaskuri <= 0) 
     
    285312    public void PelaajaOsuuHeart(PhysicsObject pelaaja1, PhysicsObject kohde) 
    286313    { 
    287         if (elämäLaskuri <= elämäLaskuri.MaxValue - 10) 
     314        if (elämäLaskuri <= elämäLaskuri.MaxValue - 1) 
    288315        { 
    289316            elämäLaskuri.Value += elämäLaskuri + 20; 
     
    313340 
    314341        Slime.Weapon = new AssaultRifle(30, 10); 
    315         Slime.Weapon.ProjectileCollision = AmmusOsuiPelaajaan; 
    316         Slime.Weapon.IsVisible = true; 
     342        Slime.Weapon.ProjectileCollision = BossAmmusOsuu; 
     343        Slime.Weapon.IsVisible = false; 
    317344        Slime.Weapon.AttackSound = null; 
     345        Slime.Weapon.FireRate = 1; 
    318346 
    319347        Timer ajastin = new Timer(); 
     
    324352            { 
    325353 
    326                 PhysicsObject ammus = Slime.Weapon.Shoot(); 
    327                 if (ammus != null) 
     354                PhysicsObject ammus2 = Slime.Weapon.Shoot(); 
     355                if (ammus2 != null) 
    328356                { 
    329                     ammus.Image = SlimeBall; 
    330                     ammus.Size = new Vector(20, 20); 
    331                     ammus.MaximumLifetime = TimeSpan.FromSeconds(1.0); 
    332                     ammus.Tag = "ammus"; 
    333  
     357                    ammus2.Image = SlimeBall; 
     358                    ammus2.Size = new Vector(20, 20); 
     359                    ammus2.MaximumLifetime = TimeSpan.FromSeconds(1.0); 
     360                    ammus2.Tag = "ammus2"; 
    334361                } 
    335362            } 
     
    351378    void LuoBoss1(Vector paikka, double leveys, double korkeus) 
    352379    { 
    353         Boss Boss1 = new Boss(leveys, korkeus * 0.5, 20); 
     380        Boss Boss1 = new Boss(leveys, korkeus * 0.5, 100); 
    354381        Boss1.CanRotate = false; 
    355382        Boss1.Position = paikka; 
     
    357384        Boss1.Image = Slime1; 
    358385        Boss1.IgnoresGravity = true; 
     386        //Boss1.IgnoresCollisionResponse = true; 
     387        Boss1.Mass = 90000000000; 
    359388        Add(Boss1); 
    360389 
     
    365394 
    366395        AssaultRifle weapon = new AssaultRifle(30, 10); 
    367         weapon.ProjectileCollision = AmmusOsuiPelaajaan; 
     396        weapon.ProjectileCollision = BossAmmusOsuu; 
    368397        weapon.IsVisible = false; 
    369398        weapon.AttackSound = null; 
     
    372401 
    373402        Timer ajastin = new Timer(); 
    374         ajastin.Interval = 0.8; 
     403        ajastin.Interval = 6; 
    375404        ajastin.Timeout += delegate 
    376405        { 
     
    382411            { 
    383412                ammus.Image = SlimeBall; 
    384                 ammus.Size = new Vector(20, 20); 
    385                 ammus.MaximumLifetime = TimeSpan.FromSeconds(8.0); 
    386                 ammus.Tag = "ammus"; 
     413                ammus.Size = new Vector(10, 10); 
     414                ammus.MaximumLifetime = TimeSpan.FromSeconds(10.0); 
     415                ammus.Tag = "ammus2"; 
     416                ammus.CollisionIgnoreGroup = 10; 
     417                AddCollisionHandler(ammus, "seinä", LuoMiniSlime); 
     418                AddCollisionHandler(ammus, "ovi", LuoMiniSlime); 
     419 
    387420            } 
    388421            if (Boss1.IsDestroyed) 
     
    391424                MediaPlayer.Pause(); 
    392425                MediaPlayer.Play("howitbegins"); 
     426 
     427                foreach (PhysicsObject ovi2 in GetObjectsWithTag("ovi2")) 
     428                { 
     429                    ovi2.IgnoresCollisionResponse = true; 
     430                    ovi2.IsVisible = false; 
     431                } 
    393432            } 
    394433        }; 
    395434        ajastin.Start(); 
     435 
     436 
     437        ProgressBar elämäPalkki = new ProgressBar(80, 10); 
     438        elämäPalkki.X = 0; 
     439        elämäPalkki.Y = 30; 
     440        elämäPalkki.BindTo(Boss1.ElamaLaskuri); 
     441        elämäPalkki.Color = Color.Transparent; 
     442        elämäPalkki.BarColor = Color.Red; 
     443        elämäPalkki.BorderColor = Color.Black; 
     444        Boss1.Add(elämäPalkki); 
     445    } 
     446 
     447    void AmmusOsuiJohonkin(PhysicsObject ammus, PhysicsObject kohde) 
     448    { 
    396449         
    397     } 
    398  
    399     void AmmusOsuiViholliseen(PhysicsObject ammus, PhysicsObject kohde) 
    400     { 
    401         ammus.Destroy(); 
    402  
    403450        if (kohde.Tag.ToString() == "vihollinen") 
    404451        { 
    405452            (kohde as Vihollinen).ElamaLaskuri.Value--; 
     453            ammus.Destroy(); 
     454 
     455            kohde.Image = Slime_damage; 
     456            Timer.SingleShot(0.25, delegate { kohde.Image = Slime1; }); 
    406457        } 
    407458        if (kohde.Tag.ToString() == "boss") 
    408459        { 
    409460            (kohde as Boss).ElamaLaskuri.Value--; 
    410         } 
    411     } 
    412  
    413     void AmmusOsuiPelaajaan(PhysicsObject ammus, PhysicsObject kohde) 
    414     { 
    415         ammus.Destroy(); 
     461            ammus.Destroy(); 
     462 
     463            kohde.Image = Slime_damage; 
     464            //System.Threading.Thread.Sleep(750); 
     465            Timer.SingleShot(0.25, delegate { kohde.Image = Slime1; }); 
     466        } 
     467        if (kohde.Tag.ToString() == "seinä" || kohde.Tag.ToString() == "ovi" || kohde.Tag.ToString()== "ovi2") 
     468        { 
     469            ammus.Destroy(); 
     470        } 
     471    } 
     472 
     473    void BossAmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 
     474    { 
    416475 
    417476        if (kohde.Tag.ToString() == "pelaaja") 
    418477        { 
    419             elämäLaskuri.Value--; 
     478            elämäLaskuri.Value -= 5; 
     479            ammus.Destroy(); 
     480        } 
     481        if (kohde.Tag.ToString() == "seinä") 
     482        { 
     483            ammus.Destroy(); 
     484        } 
     485        if (kohde.Tag.ToString() == "ovi") 
     486        { 
     487            ammus.Destroy(); 
     488        } 
     489        if (kohde.Tag.ToString() == "ovi2") 
     490        { 
     491            ammus.Destroy(); 
    420492        } 
    421493    } 
     
    429501            ammus.Image = FireBall1; 
    430502            ammus.Size = new Vector(40, 40); 
    431             ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     503            ammus.MaximumLifetime = TimeSpan.FromSeconds(10.0); 
    432504            ammus.Tag = "ammus"; 
     505            ammus.CollisionIgnoreGroup = 10; 
     506 
    433507        } 
    434508    } 
     
    440514        elämäLaskuri.LowerLimit += ElämäLoppui; 
    441515 
    442         ProgressBar elämäPalkki = new ProgressBar(150, 20); 
    443         elämäPalkki.X = Level.Top - 450; 
    444         elämäPalkki.Y = Level.Left + 350; 
     516        ProgressBar elämäPalkki = new ProgressBar(80, 10); 
     517        elämäPalkki.X = 0; 
     518        elämäPalkki.Y = 30; 
    445519        elämäPalkki.BindTo(elämäLaskuri); 
    446520        elämäPalkki.Color = Color.Transparent; 
    447521        elämäPalkki.BarColor = Color.Red; 
    448522        elämäPalkki.BorderColor = Color.Black; 
    449         Add(elämäPalkki); 
     523        pelaaja1.Add(elämäPalkki); 
    450524    } 
    451525 
     
    473547        PhysicsObject ovi = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    474548        ovi.Position = paikka; 
    475         ovi.Image = Gate; 
     549        ovi.Image = StoneKuva_katto; 
    476550        ovi.Tag = "ovi"; 
    477551        ovi.IgnoresCollisionResponse = true; 
     
    482556    void LisaaOvenSulkija(Vector paikka, double leveys, double korkeus) 
    483557    { 
    484         PhysicsObject ovensulkija = PhysicsObject.CreateStaticObject(leveys, korkeus * 5); 
     558        PhysicsObject ovensulkija = PhysicsObject.CreateStaticObject(leveys, korkeus * 8); 
    485559        ovensulkija.Position = paikka; 
    486560        ovensulkija.Image = Heart1; 
     
    510584        PhysicsObject ovi2 = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    511585        ovi2.Position = paikka; 
    512         ovi2.Image = Gate; 
    513         ovi2.Tag = "ovi"; 
    514         ovi2.IgnoresCollisionResponse = true; 
    515         ovi2.IsVisible = false; 
     586        ovi2.Image = StoneKuva_katto; 
     587        ovi2.Tag = "ovi2"; 
     588        ovi2.IgnoresCollisionResponse = false; 
     589        ovi2.IsVisible = true; 
    516590        Add(ovi2); 
    517591    } 
     
    519593    void Tähtää(AnalogState hiirenLiike) 
    520594    { 
    521          
    522     } 
     595        Vector suunta = (Mouse.PositionOnWorld - P1FireBall.AbsolutePosition).Normalize(); 
     596        P1FireBall.Angle = suunta.Angle; 
     597    } 
     598 
     599    void LuoMiniSlime(PhysicsObject ammus, PhysicsObject seinä) 
     600    { 
     601        LuoSlime(ammus.Position, RUUDUN_KOKO, RUUDUN_KOKO * 1); 
     602 
     603    } 
     604 
     605    void PelaajaOsuuTeleportteri(PhysicsObject pelaaja1, PhysicsObject kohde) 
     606    { 
     607        KenttäNumero++; 
     608 
     609        AloitaPeli(); 
     610    } 
     611 
    523612} 
  • 2014/30/AtteB/Peli/Peli/Peli/Peli.csproj.Debug.cachefile

    r5623 r5644  
    2323Content\Hitman.xnb 
    2424Content\Gate.xnb 
     25Content\Slime_damage.xnb 
     26Content\kentta2.xnb 
     27Content\LavaBackground.xnb 
    2528Content\HowItBegins.wma 
    2629Content\PlayerShoot.wma 
  • 2014/30/AtteB/Peli/Peli/Peli/obj/x86/Debug/ContentPipeline-{2D86B228-748C-44C7-93B1-DCBD6910317C}.xml

    r5623 r5644  
    3636      <Options>None</Options> 
    3737      <Output>C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\kentta1.xnb</Output> 
    38       <Time>2014-07-24T11:06:14.5761203+03:00</Time> 
     38      <Time>2014-07-24T14:39:23.4677754+03:00</Time> 
    3939    </Item> 
    4040    <Item> 
     
    219219      <Options>None</Options> 
    220220      <Output>C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\Gate.xnb</Output> 
    221       <Time>2014-07-24T10:56:16.5370039+03:00</Time> 
     221      <Time>2014-07-24T12:28:55.0864602+03:00</Time> 
     222    </Item> 
     223    <Item> 
     224      <Source>Slime_damage.png</Source> 
     225      <Name>Slime_damage</Name> 
     226      <Importer>TextureImporter</Importer> 
     227      <Processor>TextureProcessor</Processor> 
     228      <Options>None</Options> 
     229      <Output>C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\Slime_damage.xnb</Output> 
     230      <Time>2014-07-24T14:13:06.8545745+03:00</Time> 
     231    </Item> 
     232    <Item> 
     233      <Source>kentta2.txt</Source> 
     234      <Name>kentta2</Name> 
     235      <Importer>TextFileImporter</Importer> 
     236      <Processor>TextFileContentProcessor</Processor> 
     237      <Options>None</Options> 
     238      <Output>C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\kentta2.xnb</Output> 
     239      <Time>2014-07-24T14:48:50.4369923+03:00</Time> 
     240    </Item> 
     241    <Item> 
     242      <Source>LavaBackground.png</Source> 
     243      <Name>LavaBackground</Name> 
     244      <Importer>TextureImporter</Importer> 
     245      <Processor>TextureProcessor</Processor> 
     246      <Options>None</Options> 
     247      <Output>C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\LavaBackground.xnb</Output> 
     248      <Time>2014-07-24T14:45:15.2684675+03:00</Time> 
    222249    </Item> 
    223250    <BuildSuccessful>true</BuildSuccessful> 
  • 2014/30/AtteB/Peli/Peli/Peli/obj/x86/Debug/Peli.csproj.FileListAbsolute.txt

    r5623 r5644  
    3434C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\Hitman.wma 
    3535C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\Gate.xnb 
     36C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\Slime_damage.xnb 
     37C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\kentta2.xnb 
     38C:\MyTemp\AtteB\Peli\Peli\Peli\bin\x86\Debug\Content\LavaBackground.xnb 
  • 2014/30/AtteB/Peli/Peli/Peli/obj/x86/Debug/cachefile-{2D86B228-748C-44C7-93B1-DCBD6910317C}-targetpath.txt

    r5623 r5644  
    2626Content\Hitman.wma 
    2727Content\Gate.xnb 
     28Content\Slime_damage.xnb 
     29Content\kentta2.xnb 
     30Content\LavaBackground.xnb 
  • 2014/30/AtteB/Peli/Peli/PeliContent/PeliContent.contentproj

    r5623 r5644  
    201201    </Compile> 
    202202  </ItemGroup> 
     203  <ItemGroup> 
     204    <Compile Include="Slime_damage.png"> 
     205      <Name>Slime_damage</Name> 
     206      <Importer>TextureImporter</Importer> 
     207      <Processor>TextureProcessor</Processor> 
     208    </Compile> 
     209  </ItemGroup> 
     210  <ItemGroup> 
     211    <Compile Include="kentta2.txt"> 
     212      <Name>kentta2</Name> 
     213      <Importer>TextFileImporter</Importer> 
     214      <Processor>TextFileContentProcessor</Processor> 
     215    </Compile> 
     216  </ItemGroup> 
     217  <ItemGroup> 
     218    <Compile Include="LavaBackground.png"> 
     219      <Name>LavaBackground</Name> 
     220      <Importer>TextureImporter</Importer> 
     221      <Processor>TextureProcessor</Processor> 
     222    </Compile> 
     223  </ItemGroup> 
    203224  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    204225  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2014/30/AtteB/Peli/Peli/PeliContent/kentta1.txt

    r5623 r5644  
    88???????.............?....... . 
    99????????............?...S...?.                                  
    10 ##############..#####################   #################### 
     10########.############################   #################### 
    1111...........#.................#.............................. 
    1212...........#........B........#.............................. 
     
    1414...........#.................#.............................. 
    1515...........#.................#.............................. 
    16 ...........§...............-.O.............................. 
    17 ...........§.................O.............................. 
    18 ############################################################ 
     16...........2...............-.O.............................. 
     17...........2.................O.............................. 
     18#####_###################################################### 
Note: See TracChangeset for help on using the changeset viewer.