Ignore:
Timestamp:
2016-07-06 13:49:33 (3 years ago)
Author:
anvinurm
Message:

aseet ja hitpointsit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/AnttiN/SalainenTehtävä/SalainenTehtävä/SalainenTehtävä/SalainenTehtävä.cs

    r7866 r7882  
    2424    Image SahkoansaTykkiKuva = LoadImage("SahkoansaTykki"); 
    2525    Image SahkoansaSahkoKuva = LoadImage("SahkoansaSahko"); 
    26     ase.Image = null; 
     26    Image RajahdysKuva = LoadImage("Rajahdys"); 
    2727 
    2828    AssaultRifle pelaajan1Ase; 
    2929 
    3030    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    31     ase.AttackSound = null; 
    3231 
    3332    public override void Begin() 
    3433    { 
    35  
     34        IsMouseVisible = true; 
    3635        LuoKentta(); 
    3736        LisaaNappaimet(); 
     
    8180        pelaaja1.Mass = 4.0; 
    8281        pelaaja1.Image = pelaajanKuva; 
     82        AddCollisionHandler(pelaaja1, "SahkoansaSahko", TuhoaPelaaja); 
    8383        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
    8484        AddCollisionHandler(pelaaja1, "Laskeutuminen", TormaaLaskeutumiseen); 
     
    8888 
    8989        pelaajan1Ase = new AssaultRifle(30, 10); 
    90         pelaajan1Ase = new AssaultRifle(30, 10); 
     90        pelaajan1Ase.Power.MaxValue = 50; 
     91        pelaajan1Ase.FireRate = 1; 
    9192        pelaajan1Ase.ProjectileCollision = AmmusOsui; 
    9293        pelaaja1.Add(pelaajan1Ase); 
    9394 
    94         //pelaaja1 on PlatformCharacter-tyyppinen 
    95         pelaaja1.Weapon = new AssaultRifle(30, 10); 
    96  
    97         //Ammusten määrä aluksi: 
    98         pelaaja1.Weapon.Ammo.Value = 1000000; 
    99  
    100         //Mitä tapahtuu kun ammus osuu johonkin? 
    101         pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 
    102  
     95        
    10396    } 
    10497 
     
    136129        Sahkoansa.RotateImage = true; 
    137130        Sahkoansa.Angle = kaanna; 
     131 
     132        Label pisteNaytto = new Label(); 
     133        pisteNaytto.TextColor = Color.Black; 
     134        pisteNaytto.Color = Color.White; 
     135        pisteNaytto.BindTo(Sahkoansa.ElamaLaskuri); 
     136        Sahkoansa.Add(pisteNaytto); 
    138137    } 
    139138 
     
    160159        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Pelaaja liikkuu ylöspäin", pelaaja1, new Vector(0, nopeus)); 
    161160        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "pelaaja liikkuu alaspäin", pelaaja1, new Vector(0, -nopeus)); 
    162         Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase); 
    163         Mouse.ListenMovement(0.1, Tahtaa, "tähtää aseella"); 
     161        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase); 
     162        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 
    164163 
    165164 
     
    192191    } 
    193192 
     193 
     194    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     195    { 
     196        ammus.Destroy(); 
     197        if(kohde.Tag.ToString() == "SahkoansaTykki") 
     198        { 
     199            ((SahkoansaTykki)kohde).ElamaLaskuri.Value -= 10; 
     200        } 
     201    } 
     202 
     203    void Tahtaa(AnalogState hiirenLiike) 
     204    { 
     205        Vector suunta = (Mouse.PositionOnWorld - pelaajan1Ase.AbsolutePosition).Normalize(); 
     206        pelaajan1Ase.Angle = suunta.Angle; 
     207    } 
     208    void AmmuAseella(AssaultRifle ase) 
     209    { 
     210        PhysicsObject ammus = ase.Shoot(); 
     211 
     212        if (ammus != null) 
     213        { 
     214            ammus.Size *= 1; 
     215            //ammus.Image = ... 
     216            ammus.MaximumLifetime = TimeSpan.FromSeconds(20.0); 
     217        } 
     218    } 
     219 
     220    void TuhoaPelaaja(PhysicsObject pelaaja, PhysicsObject kohde) 
     221    { 
     222        pelaaja.Destroy(); 
     223        Explosion rajahdys = new Explosion(500); 
     224        rajahdys.Position = pelaaja.Position; 
     225        Add(rajahdys); 
     226        Mouse.Disable(MouseButton.Left); 
     227        Timer.SingleShot(2, Havisit); 
     228    } 
     229 
     230    void Havisit() 
     231    { 
     232        ClearAll(); 
     233        Level.Background.Color = Color.Black; 
     234        MultiSelectWindow alkuValikko = new MultiSelectWindow("Hävisit pelin","Aloita alusta", "Lopeta"); 
     235        Add(alkuValikko); 
     236        alkuValikko.AddItemHandler(0, Begin); 
     237        alkuValikko.AddItemHandler(1, Exit); 
     238    } 
    194239} 
     240     
     241 
    195242 
    196243class SahkoansaTykki : PhysicsObject 
     
    209256    } 
    210257 
    211     void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
    212     { 
    213         ammus.Destroy(); 
    214     } 
    215  
    216     void AmmuAseella(AssaultRifle ase) 
    217     { 
    218         PhysicsObject ammus = ase.Shoot(); 
    219  
    220         if (ammus != null) 
    221         { 
    222             ammus.Size *= 3; 
    223             ammus.Image = ... 
    224             ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
    225             pyssy.Angle += Angle.FromDegrees(1); 
    226  
    227             AssaultRifle pyssy = new AssaultRifle(20, 5); 
    228             pyssy.ProjectileCollision = AmmusOsui; 
    229             ase.InfiniteAmmo = true; 
    230             ase.Power.Value = 2000; 
    231             ase.Power.DefaultValue = 2000; 
    232             ase.FireRate = 0.5; 
    233             ase.AmmoIgnoresGravity = false; 
    234             ase.AmmoIgnoresExplosions = false; 
    235             ase.CanHitOwner = false; 
    236             ase.Image = aseenKuva; 
    237             ase.AttackSound = aseenAani; 
    238             ase.X = 10.0; 
    239             ase.Y = -5.0; 
    240         } 
    241     } 
    242  
    243     void Tahtaa(AnalogState hiirenLiike) 
    244     { 
    245         Vector suunta = (Mouse.PositionOnWorld - pelaaja1.Weapon.AbsolutePosition).Normalize(); 
    246         pelaaja1.Weapon.Angle = suunta.Angle; 
    247     } 
     258 
     259 
    248260 
    249261} 
Note: See TracChangeset for help on using the changeset viewer.