Ignore:
Timestamp:
2017-07-27 14:52:27 (23 months ago)
Author:
sieerinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/utsjoki/JounaL/mailmanympäri/mailmanympäri/mailmanympäri/mailmanympäri.cs

    r9130 r9174  
    2828        : base(leveys, korkeus) 
    2929    { 
    30          
     30 
    3131    } 
    3232} 
     
    4747    public override void Begin() 
    4848    { 
     49        MultiSelectWindow alkuValikko = new MultiSelectWindow("mailmanympäri", "Aloita peli", "Lopeta"); 
     50        alkuValikko.AddItemHandler(0, AloitaPeli); 
     51        alkuValikko.AddItemHandler(1, Exit); 
     52 
     53        Add(alkuValikko); 
     54    } 
     55   
     56 
     57    void AloitaPeli() 
     58    { 
     59        MediaPlayer.Play("368392_electrodynamix"); 
     60        MediaPlayer.IsRepeating = true; 
    4961        Gravity = new Vector(0, -1000); 
    50  
     62        Mouse.IsCursorVisible = true; 
    5163        LuoKentta(); 
    5264        LisaaNappaimet(); 
    5365        LuoPistelaskuri(); 
    54       
    55  
    56  
    57          
     66        //LisaaAlkuvalikko(); 
    5867    } 
    5968 
     
    6271        TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
    6372        kentta.SetTileMethod('#', LisaaTaso); 
     73        kentta.SetTileMethod('A', LisaaPunainen); 
    6474        kentta.SetTileMethod('*', LisaaTahti); 
    6575        kentta.SetTileMethod('N', LisaaPelaaja); 
     
    6878        Level.CreateBorders(); 
    6979        Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
     80        Level.Background.Image = LoadImage("tausta"); 
     81        Level.Background.FitToLevel(); 
    7082    } 
    7183    void LisaaOlio(Vector paikka, double leveys, double korkeus) 
    7284    { 
    73         Olio olio = new Olio(leveys*2, korkeus*2); 
     85        Olio olio = new Olio(leveys * 2, korkeus * 2); 
    7486        olio.Position = paikka; 
    7587        olio.Color = Color.Red; 
     
    8193        seuraajanAivot.DistanceFar = 600;           // Etäisyys jolla aletaan seurata kohdetta 
    8294        seuraajanAivot.DistanceClose = 200;         // Etäisyys jolloin ollaan lähellä kohdetta 
    83          
    84                                                     //    seuraajanAivot.FarBrain = satunnaisAivot;   // Käytetään satunnaisaivoja kun ollaan kaukana 
     95 
     96        //    seuraajanAivot.FarBrain = satunnaisAivot;   // Käytetään satunnaisaivoja kun ollaan kaukana 
    8597 
    8698        // Tapahtuma, joka tapahtuu kun ollaan lähellä kohdetta 
     
    92104        { 
    93105            olio.Destroy(); 
     106 
     107            Explosion rajahdys = new Explosion(100); 
     108            rajahdys.Position = olio.Position; 
     109            rajahdys.Speed = 50; 
     110            Add(rajahdys); 
    94111 
    95112            LisaaTahti(olio.Position + RandomGen.NextVector(0, 20), 40, 40); 
     
    103120 
    104121        Add(olio); 
    105   
    106      
    107 } 
    108 // Aliohjelma joka ajetaan kun olio on tarpeeksi lähellä kohdetta. 
    109 void mitaTapahtuuKunOllaanLahella() 
    110 { 
    111           //  olio.Color = Color.Red; 
    112          
     122 
     123 
     124    } 
     125    // Aliohjelma joka ajetaan kun olio on tarpeeksi lähellä kohdetta. 
     126    void mitaTapahtuuKunOllaanLahella() 
     127    { 
     128        //  olio.Color = Color.Red; 
     129 
    113130    } 
    114131    void LisaaTaso(Vector paikka, double leveys, double korkeus) 
     
    119136        Add(taso); 
    120137        taso.Tag = "Taso"; 
     138    } 
     139 
     140    void LisaaPunainen(Vector paikka, double leveys, double korkeus) 
     141    { 
     142        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     143        taso.Position = paikka; 
     144        taso.Color = Color.Red; 
     145        Add(taso); 
     146        taso.Tag = "Punainen"; 
    121147    } 
    122148 
     
    129155        tahti.Tag = "tahti"; 
    130156        Add(tahti); 
    131     } 
    132     
     157 
     158        Timer.SingleShot(5, tahti.Destroy); 
     159    } 
     160 
    133161 
    134162    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
     
    137165        pelaaja1.Position = paikka; 
    138166        pelaaja1.Mass = 4.0; 
     167        pelaaja1.StaticFriction = 0; 
     168        pelaaja1.KineticFriction = 0; 
    139169        pelaaja1.Image = pelaajanKuva; 
    140170        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
    141171        AddCollisionHandler(pelaaja1, "olio", Tormaaolioon); 
     172        AddCollisionHandler(pelaaja1, "Punainen", TormaaPunaiseen); 
    142173        Add(pelaaja1); 
    143174        aloituspaikka = paikka; 
     
    169200        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    170201        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Lyö, ""); 
     202        Mouse.Listen(MouseButton.Right, ButtonState.Down, kiipeä, ""); 
     203 
     204    } 
     205    void kiipeä() 
     206    { 
     207        int määrä = GetObjectsAt(pelaaja1.Position + pelaaja1.FacingDirection.GetVector() * pelaaja1.Width * 0.7 + new Vector(0,-40)).Count; 
     208        //MessageDisplay.Add(""+määrä); 
     209        if (määrä > 0) 
     210        { 
     211            pelaaja1.Y += 3; 
     212            //pelaaja1.X= (int)(pelaaja1.X / 40) * 40 - 20; 
     213            pelaaja1.ForceJump(100); 
     214            pelaaja1.Velocity = new Vector(0, 100); 
     215        } 
    171216    } 
    172217 
     
    188233        pisteLaskuri.Value += 1; 
    189234    } 
     235 
     236    void TormaaPunaiseen(PhysicsObject hahmo, PhysicsObject punainen) 
     237    { 
     238        hahmo.Destroy();ClearAll(); 
     239        Begin(); 
     240    } 
     241 
     242    
     243 
    190244    void Lyö() 
    191245    { 
     
    194248        Add(Lyönti); 
    195249        AddCollisionHandler(Lyönti, "Taso", lyöntiosuu); 
    196         AddCollisionHandler<PhysicsObject,Olio>(Lyönti, "olio", lyöntiosuuolioon); 
     250        AddCollisionHandler<PhysicsObject, Olio>(Lyönti, "olio", lyöntiosuuolioon); 
    197251        Lyönti.LifetimeLeft = TimeSpan.FromSeconds(0.2); 
    198252        Lyönti.IgnoresGravity = false; 
     
    211265            LisaaTaso(Taso.Position, 40, 40); 
    212266        }); 
    213     } 
    214  
    215 IntMeter pisteLaskuri; 
    216  
    217 void LuoPistelaskuri() 
    218 { 
    219     pisteLaskuri = new IntMeter(0); 
    220     Label pisteNaytto = new Label(); 
    221     pisteNaytto.X = Screen.Left + 100; 
    222     pisteNaytto.Y = Screen.Top - 100; 
    223     pisteNaytto.TextColor = Color.Red; 
    224     pisteNaytto.Color = Color.Green; 
     267         
     268    } 
     269 
     270    IntMeter pisteLaskuri; 
     271 
     272    void LuoPistelaskuri() 
     273    { 
     274        pisteLaskuri = new IntMeter(0); 
     275        Label pisteNaytto = new Label(); 
     276        pisteNaytto.X = Screen.Left + 100; 
     277        pisteNaytto.Y = Screen.Top - 100; 
     278        pisteNaytto.TextColor = Color.Red; 
     279        pisteNaytto.Color = Color.Green; 
    225280 
    226281        Label elamanaytto = new Label(); 
     
    233288 
    234289        pisteNaytto.BindTo(pisteLaskuri); 
    235     Add(pisteNaytto); 
     290        Add(pisteNaytto); 
    236291        PushButton osto = new PushButton("osta"); 
    237292        osto.Left = Screen.Left; 
    238         osto.Top = Screen.Top-150; 
     293        osto.Top = Screen.Top - 150; 
    239294        Add(osto); 
    240295        osto.Clicked += ostaminen; 
     
    242297    void ostaminen() 
    243298    { 
    244         
    245             if (pisteLaskuri.Value >= 10) 
     299 
     300        if (pisteLaskuri.Value >= 10) 
     301        { 
     302            if (pelaaja1.ElamaLaskuri.Value < 10) 
    246303            { 
    247                 if (pelaaja1.ElamaLaskuri.Value < 10) 
    248                 { 
    249                     pelaaja1.ElamaLaskuri.Value += 1; 
    250                     pisteLaskuri.Value -= 10; 
    251                 } 
    252                 else { MessageDisplay.Add("Max hp"); } 
    253                 } 
    254             else 
    255             { 
    256                 MessageDisplay.Add("ei ole rahaa"); 
     304                pelaaja1.ElamaLaskuri.Value += 1; 
     305                pisteLaskuri.Value -= 10; 
    257306            } 
    258          
    259     } 
     307            else { MessageDisplay.Add("Max hp"); } 
     308        } 
     309        else 
     310        { 
     311            MessageDisplay.Add("ei ole rahaa"); 
     312        } 
     313        { 
     314 
     315        } 
     316    } 
     317 
    260318} 
    261319 
     
    392450 
    393451 
    394      
    395      
    396          
    397      
    398  
    399  
     452 
     453 
     454 
     455 
     456 
     457 
Note: See TracChangeset for help on using the changeset viewer.