Ignore:
Timestamp:
2014-07-02 14:57:12 (5 years ago)
Author:
arosrinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/27/ArttuR/Peli_1/Peli_1/Peli_1/Peli_1/Peli_1.cs

    r5279 r5296  
    1212    PeliVihu hirvio; 
    1313    PhysicsObject ammus; 
     14    PhysicsObject avain; 
     15    PhysicsObject paketti; 
    1416    GameObject tahtain; 
     17    Light valo; 
    1518    Vector suunta; 
    1619 
     
    2629    Image lattiaKuva = LoadImage("Lattia_1"); 
    2730 
     31    DoubleMeter elamaLaskuri; 
     32 
    2833    public override void Begin() 
    2934    { 
    3035        LuoAlkuvalikko(); 
    31  
    32         PhoneBackButton.Listen(ConfirmExit, "Lopueta peli"); 
    33         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    3436    } 
    3537 
     
    4345 
    4446        LuoPelaaja(-1550, 150); 
     47        LuoPaketti(1300, 150); 
    4548        LuoHirvio(500, 0); 
     49        LuoHirvio(-1000, 150); 
    4650        LuoAvain(500, -75); 
     51        LuoValo(); 
    4752        LisaaOhjaimet(); 
    4853        Camera.Follow(pelaaja); 
     54        Camera.Zoom(1.75); 
     55        LuoElamaLaskuri(); 
    4956        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Taso_1"); 
    5057 
     
    6471    } 
    6572 
     73    void LuoElamaLaskuri() 
     74    { 
     75        elamaLaskuri = new DoubleMeter(3); 
     76        elamaLaskuri.MaxValue = 3; 
     77        elamaLaskuri.LowerLimit += ElamaLoppui; 
     78 
     79        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     80        elamaPalkki.X = Screen.Right - 150; 
     81        elamaPalkki.Y = Screen.Top - 20; 
     82        elamaPalkki.Color = Color.White; 
     83        elamaPalkki.BindTo(elamaLaskuri); 
     84        Add(elamaPalkki, 3); 
     85    } 
     86 
     87    void ElamaLoppui() 
     88    { 
     89        MessageDisplay.Add("Elämät loppuivat."); 
     90        LuoKuolemaValikko(); 
     91    } 
     92 
    6693    void AmmusOsui(PhysicsObject ammus, PhysicsObject seina) 
    6794    { 
    6895        if(seina.Tag.Equals("seina")) ammus.Destroy(); 
    69     } 
     96    }  
    7097 
    7198    void HirvioAmmuttiin(PhysicsObject hirvio, PhysicsObject ammus) 
     
    81108    void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject hirvio) 
    82109    { 
     110        elamaLaskuri.Value -= 1; 
     111 
     112        Explosion rajahdys = new Explosion(50); 
     113        rajahdys.Position = pelaaja.Position; 
     114        rajahdys.Speed = 500.0; 
     115        rajahdys.Force = 30; 
     116        rajahdys.IsVisible = false; 
     117        Add(rajahdys); 
     118         
    83119        MessageDisplay.Add("Pelaaja törmäsi!"); 
    84120        ((PeliHahmo)pelaaja).Elamat--; 
     
    90126    } 
    91127 
     128    void PoimiPaketti(PhysicsObject pelaaja, PhysicsObject paketti) 
     129    { 
     130        pelaajanAse.Ammo.Value += 10; 
     131        paketti.Destroy(); 
     132    } 
     133 
     134    void PoimiAvain(PhysicsObject pelaaja, PhysicsObject avain) 
     135    { 
     136        avain.Destroy(); 
     137    } 
     138 
    92139    void LisaaOhjaimet() 
    93140    { 
     141        Keyboard.Listen(Key.Escape, ButtonState.Pressed, LuoPauseValikko, null); 
    94142        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-4000, 0)); 
    95143        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(4000, 0)); 
     
    99147    } 
    100148 
     149    void LuoPauseValikko() 
     150    { 
     151        MultiSelectWindow pauseValikko = new MultiSelectWindow("Pause", "Jatka", "Yritä uudelleen", "Lopeta peli"); 
     152        pauseValikko.AddItemHandler(1, YritaUudelleen); 
     153        pauseValikko.AddItemHandler(2, Exit); 
     154        Add(pauseValikko); 
     155    } 
     156 
    101157    void LiikutaPelaajaa(Vector vektori) 
    102158    { 
     
    112168        pelaaja.X = x; 
    113169        pelaaja.Y = y; 
     170        pelaaja.CollisionIgnoreGroup = 1; 
    114171        pelaaja.LinearDamping = 0.5; 
    115172        pelaaja.Image = pelaajanKuva; 
    116173        pelaaja.CanRotate = false; 
    117174        pelaaja.RotateImage = true; 
    118         Add(pelaaja, 2); 
     175         
     176        Add(pelaaja); 
     177 
    119178 
    120179        pelaajanAse = new AssaultRifle(30, 10); 
    121180        pelaajanAse.Ammo.Value = 1000; 
    122         pelaajanAse.FireRate = 2; 
     181        pelaajanAse.FireRate = 10; 
    123182        pelaajanAse.Image = aseenKuva; 
    124183        pelaajanAse.X = 5; 
     
    129188        LuoTahtain(); 
    130189 
    131         Camera.Zoom(1.75); 
    132  
    133190        Mouse.ListenMovement(1.0, HiiriLiikkui, ""); 
    134191 
    135192        AddCollisionHandler(pelaaja, "hirvio", PelaajaTormasi); 
     193    } 
     194 
     195    void LuoPaketti(double x, double y) 
     196    { 
     197        paketti = new PhysicsObject(20, 20); 
     198        paketti.X = x; 
     199        paketti.Y = y; 
     200         
     201        Add(paketti, 2); 
     202 
     203        AddCollisionHandler(pelaaja, PoimiPaketti); 
    136204    } 
    137205 
     
    147215    void LuoAvain(double x, double y) 
    148216    { 
    149         PhysicsObject avain = new PhysicsObject(20, 20); 
     217        avain = new PhysicsObject(20, 20); 
    150218        avain.Image = avaimenKuva; 
     219        AddCollisionHandler(pelaaja, "avain", PoimiAvain); 
    151220        avain.X = x; 
    152221        avain.Y = y; 
    153         Add(avain, 2); 
     222        avain.Tag = "avain"; 
     223        Add(avain); 
    154224    } 
    155225 
     
    159229        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    160230        seina.Position = paikka; 
    161         seina.Color = Color.Black; 
     231        seina.Color = Color.Green; 
    162232        //seina.Image = seinaKuva; 
    163         seina.CollisionIgnoreGroup = 1; 
     233        seina.CollisionIgnoreGroup = 2; 
    164234        seina.Tag = "seina"; 
    165         Add(seina,2); 
     235        Add(seina); 
    166236    } 
    167237 
     
    199269 
    200270        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); 
    201         seuraajanAivot.Speed = 200; 
     271        seuraajanAivot.Speed = 300; 
    202272        seuraajanAivot.DistanceFar = 400; 
    203273        seuraajanAivot.FarBrain = labyrinttiAivot; 
     
    231301        alkuValikko.Color = Color.Black; 
    232302    } 
     303 
     304    void LuoKuolemaValikko() 
     305    { 
     306        MultiSelectWindow kuolemaValikko = new MultiSelectWindow ("Kuolit...", "Yritä Uudelleen", "Lopeta"); 
     307        Add(kuolemaValikko); 
     308 
     309        kuolemaValikko.AddItemHandler(0, YritaUudelleen); 
     310        kuolemaValikko.AddItemHandler(1, Exit); 
     311    } 
     312 
     313    void YritaUudelleen() 
     314    { 
     315        ClearAll(); 
     316        LuoKentta(); 
     317    } 
     318 
     319    void LuoValo() 
     320    { 
     321        Level.AmbientLight = 0.0; 
     322 
     323        valo = new Light(); 
     324        valo.Intensity = 1; 
     325        valo.Distance = 500; 
     326        valo.Position = pelaaja.Position; 
     327        Add(valo); 
     328    } 
     329 
     330    protected override void Update(Time time) 
     331    { 
     332        if (valo != null && pelaaja != null) 
     333        { 
     334            valo.Position = pelaaja.Position; 
     335        } 
     336        base.Update(time); 
     337    } 
    233338} 
    234339 
Note: See TracChangeset for help on using the changeset viewer.