Changeset 5773


Ignore:
Timestamp:
2014-11-15 15:00:22 (9 years ago)
Author:
sieerinn
Message:
 
Location:
2014/koodauskerho/38/PietuR/Weaporage
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • 2014/koodauskerho/38/PietuR/Weaporage/Weaporage/Weaporage/Weaporage.cs

    r5755 r5773  
    99class Pommi : PhysicsObject 
    1010{ 
    11     public Pommi(double leveys, double korkeus) 
     11    Weaporage peli; 
     12 
     13    public Pommi(Weaporage peli, double leveys, double korkeus) 
    1214        : base(leveys, korkeus) 
    1315    { 
     16        this.peli = peli; 
     17    } 
     18 
     19    public void Sytyta() 
     20    { 
     21        Animation = new Animation(peli.Pomminposaus); 
     22        Animation.FPS = 1; 
     23        Animation.Played += delegate 
     24        { 
     25            Explosion rajahdys = new Explosion(1000); 
     26            rajahdys.Position = Position; 
     27            rajahdys.Image = peli.Rajahdyskuva; 
     28            rajahdys.ShockwaveReachesObject += PaineaaltoOsuu; 
     29            rajahdys.Speed = 700; 
     30            peli.Add(rajahdys); 
     31            Destroy(); 
     32        }; 
     33        Animation.Start(); 
     34    } 
     35 
     36    void PaineaaltoOsuu(IPhysicsObject olio, Vector shokki) 
     37    { 
     38        Pelaaja pelaaja = peli.EtsiOmistaja(olio as PhysicsObject); 
     39 
     40        if (pelaaja != null) 
     41        { 
     42            pelaaja.Elamat.Value -= 6; 
     43        } 
     44    } 
     45} 
     46 
     47 
     48public class Pelaaja 
     49{ 
     50    List<PhysicsObject> ruumiinOsat = new List<PhysicsObject>(); 
     51    public List<PhysicsObject> RuumiinOsat { get { return ruumiinOsat; } } 
     52 
     53    IntMeter elamat; 
     54 
     55    public IntMeter Elamat { get { return elamat; } } 
     56 
     57    bool otetaanko = false; 
     58    public AxleJoint vasenKasi; 
     59    public AxleJoint oikeaKasi; 
     60 
     61    public bool OtetaankoKiinni 
     62    { 
     63        get 
     64        { 
     65            return otetaanko; 
     66        } 
     67        set 
     68        { 
     69            otetaanko = value; 
     70            foreach (var item in ruumiinOsat) 
     71            { 
     72                if ("oikeaKammen".Equals(item.Tag)) 
     73                { 
     74                    if (oikeaKasi != null) return; 
     75                    if (otetaanko) item.Color = Color.Red; 
     76                    else item.Color = Color.Black; 
     77                } 
     78                if ("vasenKammen".Equals(item.Tag)) 
     79                { 
     80                    if (vasenKasi != null) return; 
     81                    if (otetaanko) item.Color = Color.Red; 
     82                    else item.Color = Color.Black; 
     83                } 
     84            } 
     85        } 
     86    } 
     87 
     88    public Pelaaja(int defaultHp) 
     89    { 
     90        elamat = new IntMeter(defaultHp, 0, defaultHp); 
    1491    } 
    1592} 
     
    24101    Pelaaja pelaaja3; 
    25102    Pelaaja pelaaja4; 
     103 
     104    public Image Pomminkuva = LoadImage("Pommi1"); 
     105    public Image Rajahdyskuva = LoadImage("Rajahdys"); 
     106    public Image[] Pomminposaus = LoadImages("Pommi2", "Pommi3", "Pommi4", "Pommi5", "Pommi6"); 
    26107 
    27108    Image Miekankuva = LoadImage("Miekka"); 
     
    32113    Image Pistoolinkuva = LoadImage("Pistooli"); 
    33114    Image Luodinkuva = LoadImage("Luoti"); 
    34     Image Pomminkuva = LoadImage("Pommi1"); 
    35     private Image[] Pomminposaus = LoadImages("Pommi2", "Pommi3", "Pommi4", "Pommi5", "Pommi6"); 
    36     Image Rajahdyskuva = LoadImage("Rajahdys"); 
     115     
     116     
     117     
    37118    Image Pallonkuva = LoadImage("Pallo"); 
    38119 
     
    47128 
    48129        Level.Background.CreateGradient(RandomGen.NextColor(), RandomGen.NextColor()); 
     130         
    49131        IsFullScreen = true; 
    50132         
    51         pelaaja1 = new Pelaaja(5); 
    52         pelaaja2 = new Pelaaja(5); 
    53         pelaaja3 = new Pelaaja(5); 
    54         pelaaja4 = new Pelaaja(5); 
     133        pelaaja1 = new Pelaaja(10); 
     134        pelaaja2 = new Pelaaja(10); 
     135        pelaaja3 = new Pelaaja(10); 
     136        pelaaja4 = new Pelaaja(10); 
    55137 
    56138        IsMouseVisible = true; 
    57139 
    58         PhysicsObject pallo = new PhysicsObject(20, 20, Shape.Circle); 
    59         Add(pallo); 
     140       /* PhysicsObject pallo = new PhysicsObject(200, 200); 
     141        pallo.Position = new Vector(0, 0); 
     142        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(2000); 
     143        pallo.Image = Pallonkuva; 
     144        pallo.Brain = satunnaisAivot; 
     145        satunnaisAivot.ChangeMovementSeconds = 100; 
     146        pallo.Shape = Shape.Circle; 
     147        pallo.AngularAcceleration = 10000; 
     148        pallo.RotateImage = true; 
     149        pallo.Tag = "ase"; 
     150        Add(pallo);*/ 
    60151 
    61152 
     
    167258            PhysicsObject ase2 = new PhysicsObject(30, 70); 
    168259            ase2.Position = asepaikka; 
     260            ase2.Mass = 1; 
    169261            ase2.Image = Tikarinkuva; 
    170262            ase2.Shape = Shape.FromImage(Tikarinkuva); 
     
    176268            PhysicsObject ase3 = new PhysicsObject(50, 150); 
    177269            ase3.Position = asepaikka; 
     270            ase3.Mass = 10; 
    178271            ase3.Image = Miekankuva; 
    179272            ase3.CollisionIgnoreGroup = 20000; 
     
    203296        else if (asenumero == 6) 
    204297        { 
    205             PhysicsObject ase6 = new PhysicsObject(60, 30); 
     298            PhysicsObject ase6 = new PhysicsObject(120, 60); 
    206299            ase6.Position = asepaikka; 
    207300            ase6.Image = Pistoolinkuva; 
     
    213306            { 
    214307 
    215                 PhysicsObject Luoti = new PhysicsObject(15, 7); 
     308                PhysicsObject Luoti = new PhysicsObject(30, 14); 
    216309                Luoti.Position = ase6.Position; 
    217310                Luoti.Image = Luodinkuva; 
     
    226319        else if (asenumero == 7) 
    227320        { 
    228             Pommi ase7 = new Pommi(50, 50); 
     321            Pommi ase7 = new Pommi(this, 50, 50); 
    229322            ase7.Position = asepaikka; 
    230323            ase7.Image = Pomminkuva; 
     
    234327        } 
    235328    } 
    236  
    237329    void LiikutaTatilla(AnalogState tatti, Pelaaja pelaaja) 
    238330    { 
     
    270362        PhysicsObject oikeaKammen = LuoRuumiinOsa(perusKoko / 2, perusKoko / 2, Shape.Circle, collisionIgnoreGroup + 1, keskiVartalo.Position + new Vector(115, 40), vari); 
    271363        oikeaKammen.Tag = "oikeaKammen"; 
     364 
     365        keskiVartalo.Tag = "ruumis"; 
     366        paa.Tag = "ruumis"; 
    272367 
    273368 
     
    348443    } 
    349444 
    350     void Sytytapommi(PhysicsObject pommi) 
    351     { 
    352         pommi.Animation = new Animation(Pomminposaus); 
    353         pommi.Animation.FPS = 1; 
    354         pommi.Animation.Played += delegate 
    355         { 
    356             Explosion rajahdys = new Explosion(1000); 
    357             rajahdys.Position = pommi.Position; 
    358             rajahdys.Image = Rajahdyskuva; 
    359             rajahdys.Speed = 500; 
    360             Add(rajahdys); 
    361             posahdus(rajahdys); 
    362             pommi.Destroy(); 
    363         }; 
    364         pommi.Animation.Start(); 
    365  
    366     } 
    367     void posahdus(Explosion rajahdys) 
    368     { 
    369         PhysicsObject posaus = new PhysicsObject(500, 500); 
    370         posaus.Position = rajahdys.Position; 
    371         posaus.Shape = Shape.Circle; 
    372         posaus.LifetimeLeft = TimeSpan.FromSeconds(3); 
    373         posaus.Tag = "ase"; 
    374         Add(posaus); 
    375  
    376     } 
    377445    void KeraaAseVasempaanKateen(PhysicsObject kasi, PhysicsObject ase, Pelaaja pelaaja) 
    378446    { 
     
    383451            if (ase is Pommi) 
    384452            { 
    385                 Sytytapommi(ase); 
     453                (ase as Pommi).Sytyta(); 
     454                //Sytytapommi(ase); 
    386455            } 
    387456        } 
     
    398467            if (ase is Pommi) 
    399468            { 
    400                 Sytytapommi(ase); 
     469                (ase as Pommi).Sytyta(); 
    401470            } 
    402471        } 
     
    431500    } 
    432501 
     502    public Pelaaja EtsiOmistaja(PhysicsObject osa) 
     503    { 
     504        if (OmistaaOsan(pelaaja1, osa)) return pelaaja1; 
     505        if (OmistaaOsan(pelaaja2, osa)) return pelaaja2; 
     506        if (OmistaaOsan(pelaaja3, osa)) return pelaaja3; 
     507        if (OmistaaOsan(pelaaja4, osa)) return pelaaja4; 
     508        return null; 
     509    } 
     510 
     511    bool OmistaaOsan(Pelaaja pelaaja, PhysicsObject osa) 
     512    { 
     513        foreach (var obj in pelaaja.RuumiinOsat) 
     514        { 
     515            if (obj == osa) 
     516                return true; 
     517        } 
     518        return false; 
     519    } 
    433520} 
    434  
    435 public class Pelaaja 
    436 { 
    437     List<PhysicsObject> ruumiinOsat = new List<PhysicsObject>(); 
    438     public List<PhysicsObject> RuumiinOsat { get { return ruumiinOsat; } } 
    439     IntMeter elamat; 
    440     public IntMeter Elamat { get { return elamat; } } 
    441     bool otetaanko = false; 
    442     public AxleJoint vasenKasi; 
    443     public AxleJoint oikeaKasi; 
    444  
    445     public bool OtetaankoKiinni 
    446     { 
    447         get 
    448         { 
    449             return otetaanko; 
    450         } 
    451         set 
    452         { 
    453             otetaanko = value; 
    454             foreach (var item in ruumiinOsat) 
    455             { 
    456                 if ("oikeaKammen".Equals(item.Tag)) 
    457                 { 
    458                     if (oikeaKasi != null) return; 
    459                     if (otetaanko) item.Color = Color.Red; 
    460                     else item.Color = Color.Black; 
    461                 } 
    462                 if ("vasenKammen".Equals(item.Tag)) 
    463                 { 
    464                     if (vasenKasi != null) return; 
    465                     if (otetaanko) item.Color = Color.Red; 
    466                     else item.Color = Color.Black; 
    467                 } 
    468             } 
    469         } 
    470     } 
    471  
    472     public Pelaaja(int defaultHp) 
    473     { 
    474         elamat = new IntMeter(defaultHp, 0, defaultHp); 
    475     }         
    476 } 
Note: See TracChangeset for help on using the changeset viewer.