Ignore:
Timestamp:
2016-06-14 14:59:01 (5 years ago)
Author:
aajualal
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/koodauskerho/AarniAR/GunDown/GunDown/GunDown/GunDown.cs

    r7255 r7304  
    1313    const int RUUDUN_KOKO = 40; 
    1414 
     15    bool voiTehdaPommin = true; 
     16 
    1517    PlatformCharacter pelaaja1; 
    1618    PlasmaCannon pelaajan1Ase; 
     
    1921    Image pelaajanKuva = LoadImage("MainChar"); 
    2022    Image[] pelaajarunkuva = LoadImages("MainCharRun1", "MainCharRun2"); 
     23    Image[] crabdemonmoveKuva = LoadImages("CrabDemon1", "CrabDemon2", "CrabDemon3"); 
     24    Image crabKuva = LoadImage("CrabDemon1"); 
    2125    Image tahtiKuva = LoadImage("DiamondGem"); 
    2226    Image aseenkuvaOikea = LoadImage("Revolver"); 
     
    3135    Image stoneKuva = LoadImage("Stone"); 
    3236    Image topKuva = LoadImage("StoneTop"); 
     37    Image chestKuva = LoadImage("ClosedChest"); 
     38    Image chestopenKuva = LoadImage("OpenChest"); 
    3339 
    3440    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    4147 
    4248        LuoKentta(); 
     49 
     50        MessageDisplay.Add("You have fallen down. Your story begins here!"); 
    4351 
    4452        LisaaNappaimet(); 
     
    5866        kentta.SetTileMethod('S', LisaaCrackStone); 
    5967        kentta.SetTileMethod('T', LisaaStonetop); 
     68        kentta.SetTileMethod('D', LisaaCrabDemon); 
     69        kentta.SetTileMethod('C', LisaaChest); 
    6070        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    6171        Level.CreateBorders(); 
     
    7989    void LisaaTahti(Vector paikka, double leveys, double korkeus) 
    8090    { 
    81         PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     91        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys*0.5, korkeus*0.5); 
    8292        tahti.IgnoresCollisionResponse = true; 
    8393        tahti.Position = paikka; 
     
    8999    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    90100    { 
    91         pelaaja1 = new PlatformCharacter(leveys, korkeus); 
     101        pelaaja1 = new PlatformCharacter(leveys * 0.5, korkeus); 
    92102        pelaaja1.Position = paikka; 
    93103        pelaaja1.Mass = 4.0; 
     
    98108 
    99109        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     110        AddCollisionHandler(pelaaja1, "vihu", TormaaVihu); 
     111        AddCollisionHandler(pelaaja1, "Chest", TormaaChest); 
    100112        Add(pelaaja1); 
    101113 
     
    106118        pelaajan1Ase.X = 3; 
    107119        pelaajan1Ase.Y = -3; 
    108         pelaajan1Ase.ProjectileCollision = AmmusOsui; 
     120        pelaajan1Ase.ProjectileCollision = Ammusosuuvihuun; 
     121 
     122         
    109123 
    110124        pelaaja1.Add(pelaajan1Ase); 
     
    121135        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    122136        Keyboard.Listen(Key.E, ButtonState.Pressed, AsetaPommi, "Pelaaja asettaa pommin", pelaaja1); 
    123         Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 
     137        Mouse.ListenMovement(0.0, Tahtaa, "Tähtää aseella"); 
    124138        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Pelaaja Ampuu", pelaajan1Ase); 
    125139 
     
    148162    { 
    149163        maaliAani.Play(); 
    150         MessageDisplay.Add("Keräsit tähden!"); 
     164         
    151165        tahti.Destroy(); 
    152166    } 
     
    168182    void AmmuAseella(PlasmaCannon ase) 
    169183    { 
     184        if (pelaaja1.IsDestroyed) 
     185            return; 
     186 
    170187        PhysicsObject ammus = ase.Shoot(); 
    171188        //TimeSpan aika = new TimeSpan(0, 0, 2); 
    172189        //ammus.MaximumLifetime = aika; 
    173190 
     191        //ammus. += Ammusosuuvihuun; 
    174192 
    175193        if (ammus != null) 
     
    177195            ammus.Size *= 1; 
    178196            ammus.Image = bulletKuva; 
     197            ammus.Tag = "Bullet"; 
    179198            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.5); 
    180199        } 
     
    183202    { 
    184203        ammus.Destroy(); 
     204 
     205         
     206             
     207         
    185208    } 
    186209    void LisaaCrackStone(Vector paikka, double leveys, double korkeus) 
     
    200223    void LisaaPommi() 
    201224    { 
    202         PhysicsObject pommi = new PhysicsObject(20, 20); 
    203         pommi.Position = pelaaja1.Position; 
    204         pommi.Image = bombKuva; 
    205         Add(pommi); 
    206         Timer.SingleShot(1.0, delegate { rajahda(pommi); }); 
     225        if (voiTehdaPommin) 
     226        { 
     227            voiTehdaPommin = false; 
     228            PhysicsObject pommi = new PhysicsObject(20, 20); 
     229            pommi.Position = pelaaja1.Position; 
     230            pommi.Image = bombKuva; 
     231            Add(pommi); 
     232            Timer.SingleShot(1.0, delegate { rajahda(pommi); voiTehdaPommin = true; }); 
     233        } 
    207234    } 
    208235    void rajahda(PhysicsObject pommi) 
     
    239266        Add(top); 
    240267    } 
     268    void LisaaCrabDemon(Vector paikka, double leveys, double korkeus) 
     269    { 
     270 
     271        Vihu crab = new Vihu(leveys, korkeus * 0.5); 
     272        crab.AnimWalk = new Animation(crabdemonmoveKuva); 
     273        crab.AnimWalk.FPS = 5; 
     274        crab.Mass = 4.0; 
     275        crab.Position = paikka; 
     276        crab.Tag = "vihu"; 
     277        Add(crab); 
     278 
     279        PlatformWandererBrain tasoAivot = new PlatformWandererBrain(); 
     280        tasoAivot.Speed = 100; 
     281 
     282        crab.Brain = tasoAivot; 
     283    } 
     284    class Vihu : PlatformCharacter 
     285    { 
     286        private IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     287        public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
     288 
     289        public Vihu(double leveys, double korkeus) 
     290            : base(leveys, korkeus) 
     291        { 
     292            elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     293        } 
     294    } 
     295    void TormaaVihu(PhysicsObject Tormaaja, PhysicsObject kohde) 
     296    { 
     297        pelaaja1.Destroy(); 
     298        if (pelaaja1.Weapon != null) 
     299            pelaaja1.Weapon.Destroy(); 
     300        MessageDisplay.Add("You Died. Your story ends here..."); 
     301    } 
     302    void LisaaChest(Vector paikka, double leveys, double korkeus) 
     303    { 
     304        PhysicsObject chest = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     305        chest.Position = paikka; 
     306        chest.Image = chestKuva; 
     307        chest.Tag = "Chest"; 
     308        Add(chest); 
     309    } 
     310    void TormaaChest(PhysicsObject Tormaaja, PhysicsObject kohde) 
     311    { 
     312        if (kohde.Image == chestKuva) 
     313        { 
     314 
     315            PhysicsObject diamond = new PhysicsObject(20, 20); 
     316            diamond.Position = pelaaja1.Position; 
     317            diamond.Image = tahtiKuva; 
     318            diamond.Tag = "tahti"; 
     319            Add(diamond); 
     320            kohde.Image = chestopenKuva; 
     321            MessageDisplay.Add("You opened the chest. There was a Diamond inside!"); 
     322        } 
     323    } 
     324   void  Ammusosuuvihuun(PhysicsObject Tormaaja, PhysicsObject kohde) 
     325    { 
     326        Tormaaja.Destroy(); 
     327 
     328        if ((string)kohde.Tag == "vihu") 
     329        { 
     330 
     331            kohde.Destroy(); 
     332        } 
     333 
     334    } 
    241335} 
Note: See TracChangeset for help on using the changeset viewer.