Ignore:
Timestamp:
2014-06-12 12:57:20 (5 years ago)
Author:
ottjerju
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/24/OttoH/TasoHyppyV1/TasoHyppyV1/TasoHyppyV1/TasoHyppyV1.cs

    r4942 r4969  
    1515    const double hyppyNopeus = 550; 
    1616    const int RUUDUN_KOKO = 20; 
    17  
     17    Timer aikaLaskuri; 
    1818    PlatformCharacter pelaaja1; 
     19    PhysicsObject laava; 
     20    Image tasonKuva = LoadImage("ruoho2"); 
    1921    Image piikinKuva = LoadImage("piikki2"); 
    2022    Image vihunKuva = LoadImage("pommi2"); 
    2123    Image pelaajanKuva = LoadImage("sieni4"); 
    2224    Image tahtiKuva = LoadImage("mariostar2"); 
    23  
     25    Image taustaKuva = LoadImage("pilvet"); 
     26    Image ilmatasonKuva = LoadImage("mariotaso2"); 
     27    Image laavanKuva = LoadImage("laava"); 
     28    Image taytetasonKuva = LoadImage("multa"); 
     29    Image taustaPilvetKuva = LoadImage("pilvi2"); 
     30    Image lopunKuva = LoadImage("portal"); 
    2431    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     32 
    2533 
    2634    public override void Begin() 
     
    3442        ClearAll(); 
    3543 
    36         MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
     44        MultiSelectWindow alkuValikko = new MultiSelectWindow("1UP's Adventure", 
    3745            "Aloita alusta", "Lopeta"); 
    3846        Add(alkuValikko); 
    3947 
     48        MessageDisplay.Add("Paina F1 niin näet näppäimet. Välilyönnistä ammut panoksen jonka avulla voit hyppiä paikkoihin joihin et normaalisti pysty. Vaatii harjoitusta. Kerää 12 Kaikki Tähteä."); 
     49        MessageDisplay.TextColor = Color.Orange; 
     50        MessageDisplay.MessageTime = new TimeSpan(0, 0, 20); 
     51        
    4052 
    4153        alkuValikko.AddItemHandler(0, AloitaPeli); 
     
    5062        LisaaNappaimet(); 
    5163 
    52         Camera.Follow(pelaaja1); 
    53         Camera.ZoomFactor = 1.2; 
    54         Camera.StayInLevel = true; 
     64        //Camera.ZoomToAllObjects(); 
     65       Camera.Follow(pelaaja1); 
     66       Camera.ZoomFactor = 1; 
     67       Camera.StayInLevel = true; 
    5568    } 
    5669 
     
    5871    { 
    5972        TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
    60          
     73        kentta.SetTileMethod('L', LisaaLoppu); 
     74        kentta.SetTileMethod('K', LisaaIlmaTaso); 
    6175        kentta.SetTileMethod('#', LisaaTaso); 
    6276        kentta.SetTileMethod('*', LisaaTahti); 
     
    6579        kentta.SetTileMethod('V', LisaaVihu); 
    6680        kentta.SetTileMethod('P', LisaaPiikki); 
     81        kentta.SetTileMethod('Y', LisaaLaava); 
    6782        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    6883        Level.CreateBorders(); 
    69         Level.Background.CreateStars( 2500 ); 
     84        Level.Background.Color = Color.SkyBlue; 
    7085        Level.Background.FitToLevel(); 
     86        LuoAikaLaskuri(); 
     87        GameObject taustaPilvet = new GameObject(100, 50); 
     88        taustaPilvet.Image = taustaPilvetKuva; 
     89        taustaPilvet.Position = new Vector(Level.Left + 200, Level.Top -10) * 0.5; 
     90        Add(taustaPilvet, 3); 
     91        Layers[3].RelativeTransition = new Vector(0.5, 0.5); 
     92 
     93    } 
     94    void LisaaLoppu(Vector paikka, double leveys, double korkeus) 
     95    { 
     96        PhysicsObject loppu = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     97        loppu.Position = paikka; 
     98        loppu.Image = lopunKuva; 
     99        Add(loppu); 
     100 
     101        loppu.Tag = "loppu"; 
     102    } 
     103    void LisaaLaava(Vector paikka, double leveys, double korkeus) 
     104    { 
     105        laava = new PhysicsObject(leveys, Level.Height); 
     106        laava.CanRotate = false; 
     107        laava.IgnoresGravity = true; 
     108        laava.IgnoresExplosions = true; 
     109        laava.IgnoresCollisionResponse = true; 
     110        laava.Position = new Vector((Level.Left + leveys/2),0); 
     111        laava.Image = laavanKuva; 
     112        laava.Restitution = 1.0; 
     113        Add(laava); 
     114 
     115        laava.Tag = "laava"; 
     116        AddCollisionHandler(laava, pelaaja1, TuhoaPelaaja); 
     117        AddCollisionHandler(laava, TuhoaEste); 
     118 
     119        laava.Velocity = new Vector(20, 0); 
     120 
     121    } 
     122 
     123    void TuhoaPelaaja(PhysicsObject laava, PlatformCharacter pelaaja) 
     124    { 
     125        pelaaja.Destroy(); 
     126        LuoAlkuValikko(); 
     127    } 
     128 
     129    void TuhoaEste(PhysicsObject laava, PhysicsObject kappale) 
     130    { 
     131        kappale.Destroy(); 
    71132    } 
    72133 
     
    86147       PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    87148        taso.Position = paikka; 
    88         taso.Color = Color.DarkGray; 
     149        taso.Image = tasonKuva; 
    89150        taso.Tag = "taso"; 
    90151        Add(taso); 
     
    111172        Add(pelaaja1); 
    112173        AddCollisionHandler(pelaaja1, "piikki", TormaaVihuun); 
    113         pelaaja1.Weapon = new AssaultRifle (30, 10); 
     174        pelaaja1.Weapon = new Cannon (0, 0); 
    114175        pelaaja1.Weapon.Ammo.Value = 70;  
    115176        pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 
    116          
    117  
    118     } 
    119  
     177        AddCollisionHandler(pelaaja1, "loppu", tormaaLoppuun); 
     178 
     179    } 
     180    void tormaaLoppuun(PhysicsObject pelaaja, PhysicsObject loppu) 
     181    { 
     182        ClearAll(); 
     183        Level.Background.Color = Color.Black; 
     184        Label teksti = new Label("Onneksi olkoon läpäisit pelin! Lopetat pelin ESC. Aikasi oli " +aikaLaskuri.SecondCounter.Value); 
     185        teksti.TextColor = Color.LimeGreen; 
     186        Add(teksti); 
     187        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli"); 
     188    } 
    120189    void TormaaVihuun(PhysicsObject pelaaja, PhysicsObject vihu) 
    121190    { 
     
    178247    { 
    179248        maaliAani.Play(); 
    180         MessageDisplay.Add("Pelastit tähden!"); 
     249        MessageDisplay.Add("Keräsit tähden!"); 
    181250        tahti.Destroy(); 
    182251    } 
     
    184253    void LisaaTayteTaso(Vector paikka, double leveys, double korkeus) 
    185254    { 
    186         GameObject taso = new GameObject(leveys, korkeus); 
     255        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     256        taso.IgnoresGravity = true; 
    187257        taso.Position = paikka; 
    188         taso.Color = Color.DarkGray; 
     258        taso.Image = taytetasonKuva; 
    189259        Add(taso); 
    190260    } 
     
    193263    void AmmusOsui (PhysicsObject ammus, PhysicsObject kohde) 
    194264    { 
    195         //Destroy(); 
    196       
     265        ammus.Destroy(); 
     266        Explosion rajahdys = new Explosion(50); 
     267        rajahdys.Force = 2000; 
     268        rajahdys.Position = ammus.Position; 
     269        Add(rajahdys); 
    197270    } 
    198271 
     
    200273    { 
    201274        PhysicsObject ammus = pelaaja.Weapon.Shoot(); 
     275         
    202276 
    203277        if (ammus != null) 
     
    208282            AddCollisionHandler(ammus, "vihu", CollisionHandler.DestroyBoth); 
    209283            AddCollisionHandler(ammus, "taso", CollisionHandler.DestroyObject); 
     284            AddCollisionHandler(ammus, "laava", CollisionHandler.DestroyObject); 
    210285        } 
    211286    } 
    212      
     287 
     288    void LisaaIlmaTaso(Vector paikka, double leveys, double korkeus) 
     289    { 
     290        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     291        taso.Position = paikka; 
     292        taso.Image = ilmatasonKuva; 
     293        taso.Tag = "ilmataso"; 
     294        Add(taso); 
     295    } 
     296    void LuoAikaLaskuri() 
     297    { 
     298        aikaLaskuri = new Timer(); 
     299        aikaLaskuri.Start(); 
     300 
     301        Label aikaNaytto = new Label(); 
     302        aikaNaytto.TextColor = Color.Black; 
     303        aikaNaytto.DecimalPlaces = 1; 
     304        aikaNaytto.X = Screen.Right - 100; 
     305        aikaNaytto.Y = Screen.Top - 100; 
     306        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
     307        Add(aikaNaytto); 
     308    } 
     309 
    213310   } 
    214311 
Note: See TracChangeset for help on using the changeset viewer.