Ignore:
Timestamp:
2016-06-30 15:01:02 (3 years ago)
Author:
vekoski
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/26/VeetiK/CaveRun/CaveRun/CaveRun/CaveRun/CaveRun.cs

    r7588 r7602  
    1111{ 
    1212    const int RUUDUN_KOKO = 30; 
     13 
     14    bool aseSaatu = false; 
    1315 
    1416    double nopeus = 1000; 
     
    2931    Image seinänkuva = LoadImage("seinäkivi"); 
    3032    SoundEffect AseAani = LoadSoundEffect("Laatikkomusa"); 
    31  
     33    Image veri = LoadImage("nimetön"); 
    3234    DoubleMeter pelaajanHP; 
    3335 
     
    98100    void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
    99101    { 
    100         pelaaja = new PhysicsObject(leveys / 3, korkeus / 3); 
     102        pelaaja = new PhysicsObject(leveys / 0.5, korkeus / 0.75); 
    101103        pelaaja.Position = paikka; 
    102104        Add(pelaaja); 
     
    122124 
    123125        AddCollisionHandler(pelaaja, "zombi", delegate(PhysicsObject p, PhysicsObject kohde) { 
    124             pelaajanHP.Value -= 1.0; ControllerOne.Vibrate(0.5, 0.5, 0.0, 0.0, 30); 
     126            pelaajanHP.Value -= 50.0; ControllerOne.Vibrate(0.5, 0.5, 0.0, 0.0, 0.5); 
    125127        }); 
    126128 
     129        AddCollisionHandler(pelaaja, "ovi", delegate (PhysicsObject ovi, PhysicsObject p) { 
     130            int avaimia = GetObjectsWithTag("avain").Count; 
     131            if (avaimia == 0) 
     132            { 
     133                // seuraava kenttä / voitit pelin 
     134                // VoititPelin(); 
     135                //AloitaAlusta("Voitit pelin"); 
     136                seuraavaKenttä(); 
     137            } 
     138            else 
     139            { 
     140                MessageDisplay.Add("Tarvitset avaimet"); 
     141            } 
     142        }); 
     143 
     144        if (aseSaatu) 
     145            OtaAse(); 
    127146 
    128147        Keyboard.Listen(Key.Left, ButtonState.Down, 
     
    183202    void LuoOvi(Vector paikka, double leveys, double korkeus) 
    184203    { 
    185         PhysicsObject LuoOvi = new PhysicsObject(leveys, 10); 
    186         LuoOvi.Position = paikka; 
     204        PhysicsObject LuoOvi = new PhysicsObject(leveys * 4, 10); 
     205        LuoOvi.Position = paikka + new Vector(RUUDUN_KOKO * 1.5, 0); 
    187206        LuoOvi.Color = Color.Red; 
     207        LuoOvi.Tag = "ovi"; 
    188208        Add(LuoOvi); 
    189209        LuoOvi.MakeStatic(); 
    190  
    191         AddCollisionHandler(LuoOvi, "pelaaja", delegate(PhysicsObject ovi, PhysicsObject p) { 
    192             if (keys.Count == 0) 
    193             { 
    194                 // seuraava kenttä / voitit pelin 
    195                 // VoititPelin(); 
    196                 //AloitaAlusta("Voitit pelin"); 
    197                 seuraavaKenttä(); 
    198             } 
    199             else  
    200             { 
    201                 MessageDisplay.Add("Tarvitset avaimet"); 
    202             } 
    203         }); 
    204210    } 
    205211 
     
    260266        { 
    261267            MessageDisplay.Add("Löysit aseen"); 
    262  
    263268            AseAani.Play(); 
    264             pelaajanAse = new AssaultRifle(30, 10); 
    265              
    266  
    267  
    268  
    269  
    270  
    271  
    272  
    273  
    274  
    275  
    276  
    277  
    278  
    279  
    280  
    281  
    282             //Ammusten määrä aluksi: 
    283             pelaajanAse.Ammo.Value = 10; 
    284             // pelaajanAse.InfiniteAmmo = false; 
    285  
    286  
    287  
    288             //Mitä tapahtuu kun ammus osuu johonkin? 
    289             pelaajanAse.ProjectileCollision = AmmusOsui; 
    290  
    291             pelaaja.Add(pelaajanAse); 
    292             pelaajanAse.IsVisible = false; 
     269 
     270            aseSaatu = true; 
     271            OtaAse(); 
    293272 
    294273            a.Destroy(); 
     
    297276 
    298277        }); 
     278    } 
     279 
     280    void OtaAse() 
     281    { 
     282        pelaajanAse = new AssaultRifle(30, 10); 
     283        pelaajanAse.InfiniteAmmo = false; 
     284        pelaajanAse.ProjectileCollision = AmmusOsui; 
     285        pelaajanAse.Ammo.Value = 10; 
     286        pelaaja.Image=Pelaajakuva; 
     287        pelaaja.Add(pelaajanAse); 
     288        pelaajanAse.IsVisible = false; 
     289       ammuslaskuri = new IntMeter(0); 
     290 
     291        Label pisteNaytto = new Label(); 
     292        pisteNaytto.X = Screen.Left + 100; 
     293        pisteNaytto.Y = Screen.Top - 100; 
     294        pisteNaytto.TextColor = Color.Black; 
     295        pisteNaytto.Color = Color.White; 
     296 
     297        pisteNaytto.BindTo(pelaajanAse); 
     298        Add(pisteNaytto); 
     299 
     300 
    299301    } 
    300302 
     
    305307        Avain.Color = Color.Orange; 
    306308        Avain.IgnoresCollisionResponse = true; 
     309        Avain.Tag = "avain"; 
    307310        Add(Avain); 
    308311        Avain.Image = AvainKuva; 
     312        Avain.IgnoresExplosions = true; 
    309313        keys.Add(Avain); 
    310314 
     
    363367    { 
    364368        //ammus.Destroy(); 
     369       
    365370    } 
    366371    void AmmuAseella() 
     
    375380            ammus.Image = luodinKuva; 
    376381            ammus.Size = new Vector(25 / 2.0, 8 / 2.0); 
    377             //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
    378  
    379             AddCollisionHandler(ammus, delegate(PhysicsObject a, PhysicsObject b) 
     382            AddCollisionHandler(ammus, delegate(PhysicsObject a, PhysicsObject kohde) 
    380383            { 
    381384                a.Destroy(); 
    382385 
    383                 if (b.Tag.ToString() == "zombi") 
     386                if (kohde.Tag.ToString() == "zombi") 
    384387                { 
    385                     b.Destroy(); 
     388                    kohde.Destroy(); 
     389                    Explosion rajahdys = new Explosion(25); 
     390                    rajahdys.Position = kohde.Position; 
     391                    rajahdys.Image = veri; 
     392                    pelaaja.IgnoresExplosions = true; 
     393                    Add(rajahdys); 
    386394                } 
    387395            }); 
Note: See TracChangeset for help on using the changeset viewer.