Ignore:
Timestamp:
2016-06-15 14:41:45 (4 years ago)
Author:
aajualal
Message:
 
File:
1 edited

Legend:

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

    r7304 r7325  
    1212    const double hyppyNopeus = 750; 
    1313    const int RUUDUN_KOKO = 40; 
     14    DoubleMeter elamaLaskuri; 
     15    int kenttaNro = 1; 
    1416 
    1517    bool voiTehdaPommin = true; 
     
    3739    Image chestKuva = LoadImage("ClosedChest"); 
    3840    Image chestopenKuva = LoadImage("OpenChest"); 
     41    Image spikeKuva = LoadImage("Spikes"); 
     42    Image fullhpKuva = LoadImage("HP100%"); 
     43    Image nohpKuva = LoadImage("HP0%"); 
     44    Image flamerKuva = LoadImage("Flamer"); 
     45    Image flameshotKuva = LoadImage("Flame"); 
     46    Image medkitKuva = LoadImage("MedKit"); 
     47 
    3948 
    4049    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    4251    public override void Begin() 
    4352    { 
    44         Gravity = new Vector(0, -1000); 
    45  
     53 
     54        MultiSelectWindow alkuValikko = new MultiSelectWindow("Gun Down: The Cave Adventure", 
     55"Aloita peli", "Lopeta"); 
     56        Add(alkuValikko); 
     57 
     58        alkuValikko.AddItemHandler(0, SeuraavaKentta); 
     59        alkuValikko.AddItemHandler(1, Exit); 
    4660        SmoothTextures = false; 
    4761 
    48         LuoKentta(); 
    49  
     62         
     63         
    5064        MessageDisplay.Add("You have fallen down. Your story begins here!"); 
    5165 
    52         LisaaNappaimet(); 
    53  
    54         Camera.Follow(pelaaja1); 
    55         Camera.ZoomFactor = 2.2; 
    56         Camera.StayInLevel = true; 
     66         
     67 
     68         
    5769    } 
    5870 
    5971    void LuoKentta() 
    6072    { 
    61         TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
     73        TileMap kentta = TileMap.FromLevelAsset("kentta"+kenttaNro); 
    6274        kentta.SetTileMethod('#', LisaaTaso); 
    6375        kentta.SetTileMethod('*', LisaaTahti); 
     
    6880        kentta.SetTileMethod('D', LisaaCrabDemon); 
    6981        kentta.SetTileMethod('C', LisaaChest); 
     82        kentta.SetTileMethod('s', LisaaSpike); 
     83        kentta.SetTileMethod('F', LisaaFlamer); 
     84        kentta.SetTileMethod('M', LisaaMedKit); 
     85 
    7086        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    7187        Level.CreateBorders(); 
    7288        Level.Background.Color = (Color.DarkGray); 
    73  
    74  
     89        LuoElamaLaskuri(); 
     90 
     91        Gravity = new Vector(0, -1000); 
    7592 
    7693        kursori = new GameObject(20, 20); 
     
    110127        AddCollisionHandler(pelaaja1, "vihu", TormaaVihu); 
    111128        AddCollisionHandler(pelaaja1, "Chest", TormaaChest); 
     129        AddCollisionHandler(pelaaja1, "spike", TormaaSpike); 
     130        AddCollisionHandler(pelaaja1, "StageExit", TormasiMaaliin); 
     131        AddCollisionHandler(pelaaja1, "MedKit", TormaaMedKit); 
    112132        Add(pelaaja1); 
    113133 
     
    257277        exit.Position = paikka; 
    258278        exit.Image = exitKuva; 
     279        exit.Tag = "StageExit"; 
    259280        Add(exit); 
    260281    } 
     
    295316    void TormaaVihu(PhysicsObject Tormaaja, PhysicsObject kohde) 
    296317    { 
    297         pelaaja1.Destroy(); 
     318        elamaLaskuri.Value -= 2; 
    298319        if (pelaaja1.Weapon != null) 
    299320            pelaaja1.Weapon.Destroy(); 
    300         MessageDisplay.Add("You Died. Your story ends here..."); 
     321        MessageDisplay.Add("Ouch!"); 
    301322    } 
    302323    void LisaaChest(Vector paikka, double leveys, double korkeus) 
     
    333354 
    334355    } 
     356    void LisaaSpike(Vector paikka, double leveys, double korkeus) 
     357    { 
     358        PhysicsObject spike = PhysicsObject.CreateStaticObject(leveys, korkeus -10); 
     359        spike.Position = paikka; 
     360        spike.Image = spikeKuva; 
     361        spike.Tag = "spike"; 
     362        Add(spike); 
     363    } 
     364    void TormaaSpike(PhysicsObject Tormaaja, PhysicsObject kohde) 
     365    { 
     366        ElamaLoppui(); 
     367        MessageDisplay.Add("You Died..."); 
     368         
     369    } 
     370    void LuoElamaLaskuri() 
     371    { 
     372        elamaLaskuri = new DoubleMeter(10); 
     373        elamaLaskuri.MaxValue = 10; 
     374        elamaLaskuri.LowerLimit += ElamaLoppui; 
     375     
     376 
     377        ProgressBar elamaPalkki = new ProgressBar(20, 20); 
     378        //elamaPalkki.X = Screen.Left + 150; 
     379        elamaPalkki.Y = 40; 
     380        elamaPalkki.BindTo(elamaLaskuri); 
     381        elamaPalkki.Image = (nohpKuva); 
     382        elamaPalkki.BarImage = (fullhpKuva); 
     383        pelaaja1.Add(elamaPalkki); 
     384    } 
     385    void ElamaLoppui() 
     386    { 
     387        MessageDisplay.Add("You Died..."); 
     388        pelaaja1.Destroy(); 
     389        Timer.SingleShot(1.0, delegate { SeuraavaKentta(); }); 
     390    } 
     391    void LisaaFlamer(Vector paikka, double leveys, double korkeus) 
     392    { 
     393 
     394        Vihu flamer = new Vihu(leveys*0.5, korkeus); 
     395 
     396        flamer.Image = flamerKuva; 
     397        flamer.Mass = 4.0; 
     398        flamer.Position = paikka; 
     399        flamer.Tag = "vihu"; 
     400        flamer.MakeStatic(); 
     401        flamer.CollisionIgnoreGroup = 5; 
     402         
     403        Add(flamer); 
     404        Timer Ajastin = new Timer(); 
     405        Ajastin.Interval = 0.8; 
     406        Ajastin.Timeout += delegate 
     407        { 
     408            PhysicsObject Ammus = new PhysicsObject(20,10); 
     409            Ammus.Image = flameshotKuva; 
     410            Ammus.Position = flamer.Position; 
     411            Ammus.IgnoresGravity = true; 
     412            Ammus.Velocity = new Vector(-300,0); 
     413            Add(Ammus); 
     414            Ammus.Tag = "vihu"; 
     415            Ammus.CollisionIgnoreGroup = 5; 
     416            AddCollisionHandler(Ammus, FlameOsuu); 
     417        }; 
     418        Ajastin.Start(); 
     419        flamer.Destroyed += Ajastin.Stop; 
     420    } 
     421    void SeuraavaKentta() 
     422    { 
     423        ClearAll(); 
     424 
     425        if (kenttaNro == 1) LuoKentta(); 
     426        else if (kenttaNro == 2) LuoKentta(); 
     427        else if (kenttaNro > 2) Exit(); 
     428 
     429        LisaaNappaimet(); 
     430 
     431        Camera.Follow(pelaaja1); 
     432        Camera.ZoomFactor = 2.2; 
     433        Camera.StayInLevel = true; 
     434 
     435    } 
     436    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali) 
     437    { 
     438        //Kasvatetaan kenttänumeroa yhdellä ja siirrytään seuraavaan kenttään: 
     439        kenttaNro++; 
     440        SeuraavaKentta(); 
     441    } 
     442    void FlameOsuu(PhysicsObject Tormaaja, PhysicsObject Kohde) 
     443    { 
     444        Tormaaja.Destroy(); 
     445    } 
     446    void LisaaMedKit(Vector paikka, double leveys, double korkeus) 
     447    { 
     448        PhysicsObject med = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     449        med.Position = paikka; 
     450        med.Image = medkitKuva; 
     451        med.Tag = "MedKit"; 
     452        Add(med); 
     453    } 
     454    void TormaaMedKit(PhysicsObject Tormaaja, PhysicsObject Kohde) 
     455    { 
     456        elamaLaskuri.Value += 5; 
     457        Kohde.Destroy(); 
     458    } 
    335459} 
Note: See TracChangeset for help on using the changeset viewer.