Changeset 5430


Ignore:
Timestamp:
2014-07-04 11:46:06 (5 years ago)
Author:
jumaalku
Message:
 
Location:
2014/27/JuhanaK
Files:
4 added
9 edited

Legend:

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

    r5403 r5430  
    6060} 
    6161 
    62 class Tykki : GameObject 
     62class Tykki : PhysicsObject 
    6363{ 
    6464    public int taso = 1; 
    6565    public AssaultRifle ase; 
    66     public Tykki(double leveys, double korkeus) 
     66    private IntMeter elamaLaskuri; 
     67    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     68      
     69    public Tykki(double leveys, double korkeus, int elama) 
    6770        : base(leveys, korkeus) 
    6871    { 
    69  
     72        elamaLaskuri = new IntMeter(elama, 0, elama); 
    7073 
    7174    } 
     
    99102    PlatformCharacter pelaaja1; 
    100103 
     104 
     105    Image Tulikuva = LoadImage("tuli"); 
    101106    Image AlienKuva = LoadImage("Alien"); 
    102107    Image Orkkikuva = LoadImage("Orkki"); 
     
    117122    List<PushButton> painonapit = new List<PushButton>(); 
    118123    Label menuHelperNaytto; 
    119     private GameObject seurattava; 
     124    private PhysicsObject seurattava; 
    120125    bool ollaanRakentamassa = false; 
     126    string mitaRakennetaan; 
    121127 
    122128    PushButton menuNappi; 
     
    124130    public override void Begin() 
    125131    { 
     132        SmoothTextures = false; 
    126133        IsMouseVisible = true; 
    127134        MediaPlayer.Play("musiikki"); 
     
    154161            ase.FireRate = 2; 
    155162            ase.ProjectileCollision = AmmusOsui; 
    156             //seurattava.Add(ase); 
    157             seurattava.IsVisible = false; 
    158             PhysicsObject tykki = PhysicsObject.CreateStaticObject(100, 100); 
    159             tykki.Image = seurattava.Image; 
    160             tykki.Position = seurattava.Position; 
    161             Add(tykki); 
    162             tykki.Add(ase); 
     163            seurattava.Add(ase); 
     164            seurattava.IgnoresCollisionResponse = false; 
    163165            (seurattava as Tykki).ase = ase; 
    164166            Timer ajastin = new Timer(); 
     
    166168            ajastin.Timeout += delegate 
    167169            { 
     170                /* 
     171                if (seurattava.Tag.Equals("flamer")) 
     172                { 
     173 
     174                } 
     175 
     176                else if (seurattava.Tag.Equals("automaattiTykki")) 
     177                { 
     178  
     179                } 
     180                 */ 
     181 
    168182                List<GameObject> vihut = GetObjectsWithTag("vihollinen"); 
    169183                //var vihut = vihulista; 
     
    180194                if (ammus != null) 
    181195                { 
    182                     ammus.Size *= 0.5; 
     196                    if (ase.Parent != null && ase.Parent.Tag.Equals("flamer")) 
     197                    { 
     198                        ammus.Image = Tulikuva; 
     199                        ammus.Size *= 3; 
     200                    } 
     201                    else 
     202                    { 
     203                        ammus.Size *= 0.5; 
     204                    } 
    183205                    //ammus.Image = cannonballKuva; 
    184206                    ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
    185                     //Tykki.Play(); 
    186207                } 
     208 
     209                if (ase.Parent != null && ase.Parent.IsDestroyed) 
     210                    ajastin.Stop(); 
    187211            }; 
    188212            ajastin.Start(); 
     
    221245    } 
    222246 
    223     void AnnaRakennus(double leveys, double korkeus, int hinta, Image kuva) 
     247    void AnnaAse(double leveys, double korkeus, int hinta, Image kuva, string tyyppi) 
    224248    { 
    225249        if (ollaanRakentamassa) return; 
     
    227251        pisteLaskuri.Value -= hinta; 
    228252 
    229         Tykki talo = new Tykki(leveys, korkeus); 
    230         talo.Color = Color.Black; 
    231         talo.Image = kuva; 
    232         talo.Position = Mouse.PositionOnScreen; 
    233         talo.Tag = "torni"; 
     253        Tykki tykki = new Tykki(leveys, korkeus, 30); 
     254        tykki.MakeStatic(); 
     255 
     256        tykki.ElamaLaskuri.LowerLimit += delegate 
     257        { 
     258            tykki.Destroy(); 
     259        }; 
     260 
     261        tykki.Color = Color.Black; 
     262        tykki.Image = kuva; 
     263        tykki.CanRotate = false; 
     264        tykki.IgnoresCollisionResponse = true; 
     265        tykki.Position = Mouse.PositionOnScreen; 
     266        tykki.IgnoresGravity = true; 
     267        tykki.Tag = tyyppi; 
    234268        ollaanRakentamassa = true; 
    235         seurattava = talo; 
    236         Add(talo, 3); 
    237  
    238     } 
    239   //  void LuoRakennus(double leveys, double korkeus, int hinta, Image kuva) 
    240     { 
    241    //     if (ollaanRakentamassa) return; 
    242     //    if (hinta > pisteLaskuri.Value) { MessageDisplay.Add("Ei tarpeeksi pisteitä!"); return; } 
    243     //    pisteLaskuri.Value -= hinta; 
    244  
    245      //   Tykki talo = new Tykki(leveys, korkeus); 
    246     //    talo.Color = Color.Black; 
    247      //   talo.Image = kuva; 
    248       //  talo.Position = Mouse.PositionOnScreen; 
    249      //   talo.Tag = "Tykki"; 
    250       //  ollaanRakentamassa = true; 
    251      //   seurattava = talo; 
    252        // Add(talo, 3); 
    253  
    254     } 
    255     int JarjestaVihut(AssaultRifle ase, GameObject a, GameObject b) 
    256     { 
    257         if (a == null || b == null) return 0; 
    258         return Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1; 
    259     } 
    260  
    261     void LuoTorniNappula(Vector paikka, double leveys, double korkeus, Image rakennusKuva, int hinta, int rakennusKoko) 
    262     { 
    263         menuNappi = new PushButton(leveys * 2, korkeus * 2, flamerkuva); 
    264         menuNappi.Position = new Vector(0, (Screen.Bottom + 30)); 
    265         menuNappi.Clicked += new Action(() => AnnaRakennus(rakennusKoko, rakennusKoko * 2, hinta, rakennusKuva)); 
     269        seurattava = tykki; 
     270        Add(tykki, 3); 
     271        AddCollisionHandler(tykki, "vihollinen", VahingoitaAsetta); 
     272    } 
     273 
     274 
     275    void VahingoitaAsetta(PhysicsObject tykki, PhysicsObject kohde) 
     276    { 
     277        if (kohde.Tag.Equals("vihollinen")) 
     278        { 
     279            (tykki as Tykki).ElamaLaskuri.Value--; 
     280            MessageDisplay.Add("Au"); 
     281            if ((tykki as Tykki).ElamaLaskuri.Value <= 0) tykki.Destroy(); 
     282        } 
     283    } 
     284 
     285 
     286    void LuoTykkiNappula(Vector paikka, double leveys, double korkeus, Image rakennusKuva, int hinta, int rakennusKoko) 
     287    { 
     288        menuNappi = new PushButton(leveys * 2, korkeus * 2, rakennusKuva); 
     289        menuNappi.Position = paikka; 
     290        menuNappi.Clicked += new Action(() => AnnaAse(rakennusKoko, rakennusKoko, hinta, rakennusKuva, "automaattiTykki")); 
    266291        Add(menuNappi); 
    267292        Mouse.ListenMovement(1.0, delegate 
    268 } 
     293        { 
    269294            if (Mouse.IsCursorOn(menuNappi)) 
    270295            { 
    271296                menuHelperNaytto.IsVisible = true; 
    272                 menuHelperNaytto.Text = "Torni, " + hinta + " kultaa"; 
     297                menuHelperNaytto.Text = "Ase, " + hinta + " pistettä"; 
     298                menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 
     299            } 
     300 
     301        }, null 
     302            ); 
     303    } 
     304     
     305    int JarjestaVihut(AssaultRifle ase, GameObject a, GameObject b) 
     306    { 
     307        if (a == null || b == null) return 0; 
     308        return Vector.Distance(a.Position, ase.AbsolutePosition) > Vector.Distance(b.Position, ase.AbsolutePosition) ? 1 : -1; 
     309    } 
     310 
     311    void LuoAseNappula(Vector paikka, double leveys, double korkeus, Image rakennusKuva, int hinta, int rakennusKoko) 
     312    { 
     313        menuNappi = new PushButton(leveys * 2, korkeus * 2, flamerkuva); 
     314        menuNappi.Position = new Vector(0, (Screen.Bottom + 30)); 
     315        menuNappi.Clicked += new Action(() => AnnaAse(rakennusKoko, rakennusKoko, hinta, rakennusKuva, "flamer")); 
     316        Add(menuNappi); 
     317        Mouse.ListenMovement(1.0, delegate { 
     318            if (Mouse.IsCursorOn(menuNappi)) 
     319            { 
     320                menuHelperNaytto.IsVisible = true; 
     321                menuHelperNaytto.Text = "Ase, " + hinta + " pistettä"; 
    273322                menuHelperNaytto.Position = Mouse.PositionOnScreen + new Vector(menuHelperNaytto.Width / 2 + 10, 0); 
    274323            } 
     
    308357 
    309358        LuoMenu(); 
    310         LuoTorniNappula(Vector.Zero, 50, 50, flamerkuva, 10, 50); 
    311         LuoTykkiNappula(Vector.Zero, 50, 50, Automaattikuva, 10, 50); 
     359        LuoAseNappula(new Vector(80, (Screen.Bottom + 35)), 40, 40, flamerkuva, 200, 100); 
     360        LuoTykkiNappula(new Vector(-80, (Screen.Bottom + 35)), 40, 40, Automaattikuva, 300, 100); 
    312361         
    313362        Camera.Follow(pelaaja1); 
     
    523572        vihollinen.X = Level.Right - 100; 
    524573        vihollinen.Tag = "vihollinen"; 
    525         Add(vihollinen); 
     574        Add(vihollinen,3); 
    526575 
    527576        vihut.Add(vihollinen); 
     
    555604        vihollinen.X = Level.Right - 100; 
    556605        vihollinen.Tag = "vihollinen"; 
    557         Add(vihollinen); 
     606        Add(vihollinen, 2); 
    558607 
    559608        vihut.Add(vihollinen); 
     
    641690    void LuoPistelaskuri() 
    642691    { 
    643         pisteLaskuri = new IntMeter(100); 
     692        pisteLaskuri = new IntMeter(500); 
    644693 
    645694        Label pisteNaytto = new Label(); 
     
    742791        Timer aaltoLaskuri = new Timer(); 
    743792        aaltoLaskuri.Interval = 0.1; 
    744         aaltoLaskuri.Timeout += delegate { aaltoPalkki.Value--; MessageDisplay.Add("Moi"); }; 
     793        aaltoLaskuri.Timeout += delegate { aaltoPalkki.Value--; }; 
    745794        aaltoLaskuri.Start(20); 
    746795    } 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.csproj.Debug.cachefile

    r5380 r5430  
    2121Content\Automaattitykki.xnb 
    2222Content\Este.xnb 
     23Content\tuli.xnb 
    2324Content\musiikki.wma 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/Avaruuspeli.csproj.FileListAbsolute.txt

    r5380 r5430  
    3030C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Automaattitykki.xnb 
    3131C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Este.xnb 
     32C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\tuli.xnb 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/ContentPipeline-{5282F811-AB87-41EF-A580-9908C47A987D}.xml

    r5403 r5430  
    200200      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\Este.xnb</Output> 
    201201      <Time>2014-07-03T14:26:16.4600338+03:00</Time> 
     202    </Item> 
     203    <Item> 
     204      <Source>tuli.png</Source> 
     205      <Name>tuli</Name> 
     206      <Importer>TextureImporter</Importer> 
     207      <Processor>TextureProcessor</Processor> 
     208      <Options>None</Options> 
     209      <Output>C:\MyTemp\JuhanaK\Avaruuspeli\Avaruuspeli\Avaruuspeli\bin\x86\Debug\Content\tuli.xnb</Output> 
     210      <Time>2014-07-04T11:36:44.2693848+03:00</Time> 
    202211    </Item> 
    203212    <BuildSuccessful>true</BuildSuccessful> 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/Avaruuspeli/obj/x86/Debug/cachefile-{5282F811-AB87-41EF-A580-9908C47A987D}-targetpath.txt

    r5380 r5430  
    2222Content\Automaattitykki.xnb 
    2323Content\Este.xnb 
     24Content\tuli.xnb 
  • 2014/27/JuhanaK/Avaruuspeli/Avaruuspeli/AvaruuspeliContent/AvaruuspeliContent.contentproj

    r5380 r5430  
    169169    </Compile> 
    170170  </ItemGroup> 
     171  <ItemGroup> 
     172    <Compile Include="tuli.png"> 
     173      <Name>tuli</Name> 
     174      <Importer>TextureImporter</Importer> 
     175      <Processor>TextureProcessor</Processor> 
     176    </Compile> 
     177  </ItemGroup> 
    171178  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    172179  <!--  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.