Ignore:
Timestamp:
2014-06-12 14:54:19 (6 years ago)
Author:
ilkarist
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/24/IlariR/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs

    r4958 r4979  
    1313    AssaultRifle hirviniemiase; 
    1414    Image munamieskuva = LoadImage("munamieskuva"); 
    15     Image gigakuva= LoadImage("gigapudding"); 
     15    Image gigakuva = LoadImage("gigapudding"); 
    1616    Image ammuksenkuva = LoadImage("nakki"); 
    1717    Image tahtaimenkuva = LoadImage("tahtain"); 
     18    IntMeter elamaLaskuri = new IntMeter(10, 0, 10); 
     19    int vihollistenKasvuLkm = 1; 
     20    int vihollistenAlkuLkm = 2; 
     21    int vihollistenLkm = 2; 
     22 
    1823    public override void Begin() 
    1924    { 
    2025        MediaPlayer.Play("taustamusiikki"); 
     26        MediaPlayer.IsRepeating = true; 
     27 
    2128        SmoothTextures = false; 
    2229        Image taustaKuva = LoadImage("planeettataustakuva"); 
    2330        Level.Background.Image = taustaKuva; 
     31        Level.Background.Color = Color.Black; 
     32 
    2433        Camera.ZoomToLevel(); 
     34        Camera.Follow(hirviniemi); 
     35        Camera.Zoom(1.5); 
     36        elamaLaskuri.LowerLimit += delegate { hirviniemi.Destroy(); }; 
     37 
    2538        LuoKentta(); 
    26         Level.Background.Color = Color.Black; 
     39         
     40 
     41 
    2742        Mouse.IsCursorVisible = true; 
    28         Camera.Follow(hirviniemi); 
    29         Camera.Zoom(2.9); 
     43         
     44 
     45 
    3046        GameObject tahtain = new GameObject(20, 20); 
    3147        tahtain.Image = tahtaimenkuva; 
    3248        Add(tahtain); 
     49 
     50 
    3351 
    3452        Timer tahtaimenLiikutus = new Timer(); 
     
    3755        tahtaimenLiikutus.Start(); 
    3856 
     57 
     58 
    3959        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    40         Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(-500, 0)); 
    41         Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(500, 0)); 
    42         Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(0, 500)); 
    43         Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(0, -500)); 
     60        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(-400, 0)); 
     61        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(400, 0)); 
     62        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(0, 400)); 
     63        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(0, -400)); 
    4464        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    4565        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", hirviniemi); 
     66 
     67        Keyboard.Listen(Key.LeftControl, ButtonState.Down, MuutaAmpumaNopeutta, null, false); 
     68        Keyboard.Listen(Key.LeftControl, ButtonState.Up, MuutaAmpumaNopeutta, null, true); 
     69 
    4670        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 
    4771    } 
    4872 
     73 
     74    void MuutaAmpumaNopeutta(bool arvo) 
     75    { 
     76        if(arvo) hirviniemiase.TimeBetweenUse = TimeSpan.FromMilliseconds(500); 
     77        else hirviniemiase.TimeBetweenUse = TimeSpan.FromMilliseconds(1); 
     78    } 
     79 
     80 
    4981    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    50 { 
    51     ammus.Destroy(); 
    52 } 
     82    { 
     83        ammus.Destroy(); 
     84        if (kohde.Tag != "seinä" && !kohde.IsDestroying) 
     85        { 
     86            kohde.Destroy(); 
     87            vihollistenLkm--; 
     88 
     89            if (vihollistenLkm <= 0) 
     90            { 
     91                int i = 0; 
     92                vihollistenAlkuLkm += vihollistenKasvuLkm; 
     93                while (i < vihollistenAlkuLkm) 
     94                { 
     95                    LuoVihollinen(); 
     96                    i++; 
     97                } 
     98                vihollistenLkm = (vihollistenAlkuLkm*2); 
     99            } 
     100        } 
     101    } 
    53102    void Tahtaa(AnalogState hiirenLiike) 
    54103    { 
     
    59108    void AmmuAseella(PhysicsObject hirviniemi) 
    60109    { 
    61        PhysicsObject ammus = hirviniemiase.Shoot(); 
    62        if (ammus != null)  
    63        ammus.Image = ammuksenkuva; 
     110        PhysicsObject ammus = hirviniemiase.Shoot(); 
     111        if (ammus != null) 
     112            ammus.Image = ammuksenkuva; 
    64113    } 
    65114 
     
    88137        //   Parametreina leveys ja korkeus 
    89138        ruudut.Execute(20, 20); 
    90         LuoVihollinen(); LuoVihollinen(); LuoVihollinen(); LuoVihollinen(); LuoVihollinen(); LuoVihollinen(); 
    91     } 
     139        LuoVihollinen(); 
     140 
     141    } 
     142 
    92143 
    93144    void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
     
    101152        hirviniemi.LinearDamping = 0.90; 
    102153        hirviniemiase = new AssaultRifle(30, 10); 
    103         hirviniemiase.Ammo.Value = 1000; 
     154        hirviniemiase.Ammo.Value = 100000; 
     155        hirviniemiase.TimeBetweenUse = TimeSpan.FromMilliseconds(500); 
    104156        //hirviniemiase.ProjectileCollision = AmmusOsui; 
    105157        hirviniemiase.IsVisible = false; 
    106158        hirviniemiase.ProjectileCollision = AmmusOsui; 
     159        AddCollisionHandler(hirviniemi, "vihollinen", PelaajaanOsuu); 
    107160        hirviniemi.Add(hirviniemiase); 
    108161        Add(hirviniemi); 
     
    116169        taso.CollisionIgnoreGroup = 1; 
    117170        taso.Color = Color.Transparent; 
     171        taso.Tag = "seinä"; 
    118172        Add(taso); 
    119173    } 
     
    121175    { 
    122176        PhysicsObject vihollinen = new PhysicsObject(30, 30); 
    123         vihollinen.Position = new Vector( RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top)); 
     177        vihollinen.Image = munamieskuva; 
     178        vihollinen.Position = new Vector(RandomGen.NextDouble(Level.Left +30, Level.Right-30), RandomGen.NextDouble(Level.Bottom +30, Level.Top -30)); 
     179        vihollinen.Tag = "vihollinen"; 
    124180        Add(vihollinen); 
    125  
    126     } 
    127  
    128  
     181        FollowerBrain seuraajanAivot = new FollowerBrain(hirviniemi); 
     182        vihollinen.Brain = seuraajanAivot; 
     183 
     184        PhysicsObject vihollinen2 = new PhysicsObject(30, 30); 
     185        vihollinen2.Image = gigakuva; 
     186        vihollinen2.Position = new Vector(RandomGen.NextDouble(Level.Left +30, Level.Right-30), RandomGen.NextDouble(Level.Bottom +30, Level.Top -30)); 
     187        vihollinen2.Tag = "vihollinen"; 
     188        Add(vihollinen2); 
     189        FollowerBrain seuraajanAivot2 = new FollowerBrain(hirviniemi); 
     190        vihollinen2.Brain = seuraajanAivot2; 
     191 
     192    } 
     193 
     194    void PelaajaanOsuu(PhysicsObject pelaaja, PhysicsObject kohde) 
     195    { 
     196        elamaLaskuri.Value--; 
     197        kohde.Destroy(); 
     198        LuoVihollinen(); 
     199    } 
    129200} 
Note: See TracChangeset for help on using the changeset viewer.