Ignore:
Timestamp:
2015-07-02 14:59:26 (4 years ago)
Author:
saveviku
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/27/SanteriK/Hundreddays/Hundreddays/Hundreddays/Hundreddays.cs

    r6735 r6763  
    1616    Image valonkuva = LoadImage("valo"); 
    1717    Image laatikonkuva = LoadImage("laatikko"); 
     18    Image kansionkuva = LoadImage("kansio"); 
     19    int zombilaskuri = 0; 
     20    IntMeter kansiolaskuri = new IntMeter(0,0,0); 
    1821    PhysicsObject ukkeli2; 
    1922    PhysicsObject ukkeli1; 
     
    2225    //Kuinka nopeasti ukkeli liikkuu maksimissaan 
    2326    double maxLiikkuminen = 1800.0; 
    24     int AmmuksetLaatikosta = 100; 
     27    int AmmuksetLaatikosta = 20; 
    2528 
    2629    AssaultRifle ase; 
     
    4750    void LuoKentta() 
    4851    { 
     52        zombilaskuri = 0; 
     53        kansiolaskuri = new IntMeter(0, 0, 0); 
    4954        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä"); 
    50  
    5155        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja1); 
    5256        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), LuoPelaaja2); 
    53         ruudut.SetTileMethod(Color.FromHexCode("FF0000"), Luozombi); 
    5457        ruudut.SetTileMethod(Color.FromHexCode("FF006E"), Luolaatikko); 
     58        ruudut.SetTileMethod(Color.FromHexCode("FF6A00"), Luokansio); 
    5559        ruudut.SetTileMethod(Color.Black, LuoTaso); 
    5660        ruudut.SetTileMethod(Color.Gray, LuoLattia); 
     
    6165        Add(pimeys,2); 
    6266 
    63     } 
     67        LuoZombit(); 
     68 
     69        Luolaskuri(); 
     70 
     71 
     72    } 
     73    void Luolaskuri() 
     74    { 
     75        Label pistenäyttö = new Label(); 
     76        pistenäyttö.X = Level.Left + 100; 
     77        pistenäyttö.Y = Level.Top - 100; 
     78        Add(pistenäyttö); 
     79        pistenäyttö.BindTo(kansiolaskuri); 
     80    } 
     81    void LuoZombit() 
     82    { 
     83        ColorTileMap zombiruudut = ColorTileMap.FromLevelAsset("kenttä"); 
     84        zombiruudut.SetTileMethod(Color.FromHexCode("FF0000"), Luozombi); 
     85        zombiruudut.Execute(20, 20); 
     86    } 
     87 
    6488    void LuoTaso(Vector paikka, double leveys, double korkeus) 
    6589    { 
     
    6993        taso.CollisionIgnoreGroup = 1; 
    7094        Add(taso); 
    71  
    72  
    73     } 
     95    } 
     96 
     97 
     98    void Luokansio(Vector paikka, double leveys, double korkeus) 
     99    { 
     100        PhysicsObject kansio = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     101        kansio.Position = paikka; 
     102        kansio.Image = kansionkuva; 
     103        Add(kansio); 
     104        kansiolaskuri.MaxValue++; 
     105    } 
     106 
     107 
    74108    void Luozombi(Vector paikka, double leveys, double korkeus) 
    75109    { 
    76  
    77         Zombi zombi = new Zombi(40, 20); 
    78         zombi.Image = zombinkuva; 
    79         zombi.FlipImage(); 
    80         zombi.AngularDamping = 0.8; 
    81         zombi.Tag = "zombi"; 
    82         Add(zombi); 
    83  
    84         AddCollisionHandler(zombi, "ammus", delegate(PhysicsObject z, PhysicsObject ammus) 
    85         { 
    86             Zombi zo = z as Zombi; 
    87             zo.ElamaLaskuri.Value--; 
    88         }); 
    89  
    90         FollowerBrain seuraajanAivot = new FollowerBrain("ukkeli"); 
    91         seuraajanAivot.TurnWhileMoving = true; 
    92         RandomMoverBrain satunnaisAivot = new RandomMoverBrain(); 
    93         seuraajanAivot.Speed = 50;                 // Millä nopeudella kohdetta seurataan 
    94         seuraajanAivot.DistanceFar = 150;           // Etäisyys jolla aletaan seurata kohdetta 
    95         seuraajanAivot.TurnWhileMoving = true; 
    96         seuraajanAivot.FarBrain = satunnaisAivot;   // Käytetään satunnaisaivoja kun ollaan kaukana 
    97         satunnaisAivot.ChangeMovementSeconds = 3; 
    98  
    99         //Aivot käyttöön oliolle 
    100         zombi.Brain = seuraajanAivot; 
    101  
    102         Timer nakyvyysAjastin = new Timer(); 
    103         nakyvyysAjastin.Interval = 0.05; 
    104         nakyvyysAjastin.Timeout += delegate { TarkistaNakyvyys(zombi); }; 
    105         nakyvyysAjastin.Start(); 
    106     } 
    107  
     110        for (int i = 0; i < 4; i++) 
     111        { 
     112            zombilaskuri++; 
     113 
     114            LuoLattia(paikka, leveys, korkeus); 
     115            Zombi zombi = new Zombi(40, 20); 
     116            zombi.Image = zombinkuva; 
     117            zombi.FlipImage(); 
     118            zombi.AngularDamping = 0.8; 
     119            zombi.Tag = "zombi"; 
     120            zombi.Position = paikka; 
     121            Add(zombi); 
     122 
     123            AddCollisionHandler(zombi, "ammus", delegate(PhysicsObject z, PhysicsObject ammus) 
     124            { 
     125                Zombi zo = z as Zombi; 
     126                zo.ElamaLaskuri.Value--; 
     127            }); 
     128 
     129            FollowerBrain seuraajanAivot = new FollowerBrain("ukkeli"); 
     130            seuraajanAivot.TurnWhileMoving = true; 
     131            RandomMoverBrain satunnaisAivot = new RandomMoverBrain(); 
     132            seuraajanAivot.Speed = 40;                 // Millä nopeudella kohdetta seurataan 
     133            seuraajanAivot.DistanceFar = 150;           // Etäisyys jolla aletaan seurata kohdetta 
     134            seuraajanAivot.TurnWhileMoving = true; 
     135            seuraajanAivot.FarBrain = satunnaisAivot;   // Käytetään satunnaisaivoja kun ollaan kaukana 
     136            satunnaisAivot.ChangeMovementSeconds = 3; 
     137 
     138            //Aivot käyttöön oliolle 
     139            zombi.Brain = seuraajanAivot; 
     140 
     141            Timer nakyvyysAjastin = new Timer(); 
     142            nakyvyysAjastin.Interval = 0.05; 
     143            nakyvyysAjastin.Timeout += delegate { TarkistaNakyvyys(zombi); }; 
     144            nakyvyysAjastin.Start(); 
     145 
     146            zombi.Destroyed += delegate 
     147            { 
     148                zombilaskuri--; 
     149 
     150                if (zombilaskuri == 0) 
     151                { 
     152                    LuoZombit(); 
     153                } 
     154            }; 
     155        } 
     156    } 
    108157 
    109158 
     
    170219        AddCollisionHandler(ukkeli, "zombi", PelaajaosuuVihuun); 
    171220 
    172         GameObject valo = new GameObject(200, 200); 
    173         valo.X = 100; 
     221        GameObject valo = new GameObject(250, 250); 
     222        valo.X = 130; 
    174223        valo.Image = valonkuva; 
    175224        ukkeli.Add(valo); 
     
    187236 
    188237        // //Ammusten määrä aluksi: 
    189         ase.Ammo.Value = 1000; 
     238        ase.Ammo.Value = 100; 
    190239        ase.IsVisible = false; 
    191240        // //Mitä tapahtuu kun ammus osuu johonkin? 
     
    207256 
    208257        // //Ammusten määrä aluksi: 
    209         ase2.Ammo.Value = 1000; 
     258        ase2.Ammo.Value = 100; 
    210259        ase2.IsVisible = false; 
    211260        // //Mitä tapahtuu kun ammus osuu johonkin? 
     
    222271    void Luolaatikko(Vector paikka, double leveys, double korkeus) 
    223272    { 
     273        LuoLattia(paikka, leveys, korkeus); 
    224274        PhysicsObject laatikko = new PhysicsObject(leveys,korkeus); 
    225275        laatikko.Image = laatikonkuva; 
     
    237287        PhysicsObject[] ukkelit = { ukkeli1, ukkeli2 }; 
    238288 
    239         int valonPituus = 150; 
     289        int valonPituus = 200; 
    240290        int valonKulma = 45; 
    241291 
     
    246296                continue; 
    247297 
    248             if (Math.Abs((olio.Position - ukkeli.Position).Angle.Degrees - ukkeli.Angle.Degrees) < valonKulma && Vector.Distance(olio.Position, ukkeli.Position) < valonPituus) 
     298            bool lamppu = Math.Abs((olio.Position - ukkeli.Position).Angle.Degrees - ukkeli.Angle.Degrees) < valonKulma && Vector.Distance(olio.Position, ukkeli.Position) < valonPituus; 
     299            bool lahella = Vector.Distance(olio.Position, ukkeli.Position) < 60; 
     300            if (lamppu || lahella) 
    249301            { 
    250302                piilossa = false; 
     
    258310class Zombi : PhysicsObject 
    259311{ 
    260     private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     312    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5); 
    261313    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    262314 
Note: See TracChangeset for help on using the changeset viewer.