Ignore:
Timestamp:
2016-06-29 13:11:35 (3 years ago)
Author:
empaheik
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/26/EmmaH/Peli/DahlianKoira/DahlianKoira/DahlianKoira/DahlianKoira.cs

    r7563 r7569  
    66using Jypeli.Effects; 
    77using Jypeli.Widgets; 
     8class Dahlia : PlatformCharacter 
     9{ 
     10 
     11    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5); 
     12    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     13 
     14    public Dahlia(double leveys, double korkeus) 
     15        : base (leveys, korkeus) 
     16    { 
     17        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     18    } 
     19} 
     20 
    821 
    922public class DahlianKoira : PhysicsGame 
    1023{ 
    11     PlatformCharacter pelaaja; 
     24    Dahlia pelaaja; 
    1225 
    1326    Image pelaajanKuva = LoadImage("herpderp"); 
    1427    Image kummituksenKuva = LoadImage("kummituskuva"); 
     28    Image paalyTiilenKuva = LoadImage("stone1"); 
     29    Image tayttoTiilenKuva = LoadImage("stonefill"); 
     30    Image aseenKuva = LoadImage("ase"); 
     31    Image ammuksenKuva = LoadImage("ammo1"); 
    1532 
    16     Image tiilenKuva = LoadImage("stone1"); 
    17     Image tiiliTaytto = LoadImage("stonefill"); 
     33    private Animation dahliaIdlaa; 
     34    private Animation dahliaHyppaa; 
     35    private Animation dahliaPutoaa; 
     36    private Animation dahliaJuoksee; 
    1837 
    1938    public override void Begin() 
    2039    { 
    21         //Aamupäivällä? 
    22         //TODO: Beginin siivoaminen (koodi omiin aliohjelmiinsa kuten Pongissa konsanaan) 
    23         //TODO: Zoomaus kenttään, ettei tarvitse siristellä silmiä 
    24         //TODO: Kummituksista liikkuvia 
    25         //TODO: Kummitukset satuttavat pelaajaa 
    2640 
     41        AlustaAnimaatiot(); 
     42        LuoKentta(); 
     43        LisaaOhjaimet(); 
     44        LuoKummitukset(); 
     45    } 
     46 
     47    void AlustaAnimaatiot() 
     48    { 
     49        dahliaIdlaa = LoadAnimation("idle"); 
     50        dahliaHyppaa = LoadAnimation("jump"); 
     51        dahliaPutoaa = LoadAnimation("fallfall"); 
     52        dahliaJuoksee = LoadAnimation("runrun"); 
     53    } 
     54 
     55    void LuoKummitukset() 
     56    { 
     57        int indeksi = 0; 
     58        while(indeksi < 19) 
     59        { 
     60            double xKoordinaatti = RandomGen.NextDouble(Level.Left + 200, Level.Right - 200); 
     61            double yKoordinaatti = RandomGen.NextDouble(Level.Bottom + 200, Level.Top - 200); 
     62            LuoKummitus(new Vector(xKoordinaatti, yKoordinaatti), 60, 60); 
     63 
     64            indeksi++; 
     65        } 
     66    } 
     67 
     68    void LuoKummitus(Vector paikka, double b, double c) 
     69    { 
     70        PhysicsObject kummitus = new PhysicsObject(b, c); 
     71        kummitus.Position = paikka; 
     72        kummitus.Image = kummituksenKuva; 
     73        kummitus.IgnoresCollisionResponse = true; 
     74        kummitus.Tag = "kummitus"; 
     75        Add(kummitus, 3); 
     76 
     77        //FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja"); 
     78        RandomMoverBrain aivot = new RandomMoverBrain(100); 
     79        aivot.WanderRadius = 200; 
     80        kummitus.Brain = aivot; 
     81    } 
     82 
     83    void LuoKentta() 
     84    { 
    2785        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta1"); 
    28         ruudut.SetTileMethod(Color.Black, LuoTaso, tiilenKuva); 
    29         ruudut.SetTileMethod(Color.Red, LuoKummitus); 
    30         ruudut.SetTileMethod(Color.FromHexCode("303030"), LuoTaso, tiiliTaytto); 
     86        ruudut.SetTileMethod(Color.Black, LuoTaso, paalyTiilenKuva); 
     87        ruudut.SetTileMethod(Color.FromHexCode("303030"), LuoTaso, tayttoTiilenKuva); 
    3188        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), LuoPelaaja); 
     89        ruudut.SetTileMethod(Color.FromHexCode("00FF21"), LuoAse); 
     90        //ruudut.SetTileMethod(Color.Red, LuoKummitus); 
    3291        ruudut.Execute(60, 60); 
    3392 
     93        Camera.Follow(pelaaja); 
     94        Camera.StayInLevel = true; 
     95 
     96        Level.Background.Color = Color.Brown; 
     97        Gravity = new Vector(0, -1000); 
     98    } 
     99 
     100    void LuoAse(Vector paikka, double leveys, double korkeus) 
     101    { 
     102        PhysicsObject ase = new PhysicsObject(leveys/2, korkeus/2); 
     103        ase.Position = paikka; 
     104        ase.Image = aseenKuva; 
     105        ase.Tag = "plasmakanuuna"; 
     106        Add(ase); 
     107    } 
     108 
     109    void LisaaOhjaimet() 
     110    { 
    34111        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "", 400.0); 
    35112        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "", -400.0); 
    36113        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, ""); 
     114 
     115        Keyboard.Listen(Key.Space, ButtonState.Pressed, Ammu, "Ammu plasmapanoksia"); 
     116 
     117        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Sulje peli"); 
     118    } 
     119 
     120    void Ammu() 
     121    { 
     122        PhysicsObject ammus = pelaaja.Weapon.Shoot(); 
     123 
     124        if(ammus != null) 
     125        { 
     126            ammus.Size *= 3; 
     127            ammus.Image = ammuksenKuva; 
     128        } 
    37129         
    38         Gravity = new Vector(0, -1000); 
    39  
    40         Camera.ZoomToLevel(); 
    41  
    42         Level.Background.Color = Color.Lime; 
    43  
    44         //Iltapäivällä? 
    45         //TODO: Kummituksia kentälle satunnaisesti 
    46         //TODO: Pelaajalle ase, jolla ampua kummituksia 
    47         //TODO: Animaatio pelaajalle 
    48130    } 
    49131 
    50132    void LuoPelaaja(Vector paikka, double leveys, double korkeus) 
    51133    { 
    52         pelaaja = new PlatformCharacter(80, 120); 
     134        pelaaja = new Dahlia(80, 120); 
    53135        pelaaja.Image = pelaajanKuva; 
    54136        pelaaja.Position = paikka; 
    55137        pelaaja.LinearDamping = 1; 
     138        pelaaja.Tag = "pelaaja"; 
     139        pelaaja.AnimIdle = dahliaIdlaa; 
     140        pelaaja.AnimWalk = dahliaJuoksee; 
     141        pelaaja.AnimJump = dahliaHyppaa; 
     142        pelaaja.AnimFall = dahliaPutoaa; 
    56143        Add(pelaaja); 
     144 
     145        AddCollisionHandler(pelaaja, "kummitus", PelaajaTormaaKummitukseen); 
     146        AddCollisionHandler(pelaaja, "plasmakanuuna", PelaajaPoimiiAseen); 
     147    } 
     148 
     149    void PelaajaTormaaKummitukseen(PhysicsObject tormaaja, PhysicsObject vihu) 
     150    { 
     151        pelaaja.ElamaLaskuri.Value--; 
     152        //Timer.SingleShot(3, Exit); 
     153    } 
     154 
     155    void PelaajaPoimiiAseen(PhysicsObject tormaaja, PhysicsObject kohde) 
     156    { 
     157        pelaaja.Weapon = new AssaultRifle(30, 30); 
     158        pelaaja.Weapon.Image = kohde.Image; // tai pelaaja.Weapon.Image = aseenkuva 
     159        //pelaaja.Weapon.Position += new Vector(-5, 20); 
     160        pelaaja.Weapon.ProjectileCollision = AmmusOsui; 
     161        //pelaaja.Wea 
     162        kohde.Destroy(); 
     163    } 
     164 
     165    void AmmusOsui(PhysicsObject tormaaja, PhysicsObject tormatty) 
     166    { 
     167        tormaaja.Destroy(); 
     168        if(tormatty.Tag == "kummitus") 
     169        { 
     170            tormatty.Destroy(); 
     171        } 
    57172    } 
    58173 
     
    61176        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    62177        taso.Position = paikka; 
    63         taso.Color = Color.Black; 
    64178        taso.Image = kuva; 
    65179        Add(taso); 
    66     } 
    67  
    68     void LuoKummitus(Vector a, double b, double c) 
    69     { 
    70         PhysicsObject kummitus = new PhysicsObject(b, c); 
    71         kummitus.Position = a; 
    72         kummitus.Image = kummituksenKuva; 
    73         Add(kummitus); 
    74180    } 
    75181 
     
    84190    } 
    85191 
    86      
    87  
    88192 
    89193} 
Note: See TracChangeset for help on using the changeset viewer.