Ignore:
Timestamp:
2014-07-24 15:01:31 (6 years ago)
Author:
vilmikvi
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/ViljamiV/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs

    r5595 r5645  
    1010{    
    1111     
    12         Image auto = LoadImage("redcar8-bit"); 
    13         Image poliisi = LoadImage("copcar8-bit"); 
    14         Image kentta = LoadImage("kentta"); 
    15         Image kentta2 = LoadImage("kentta2"); 
     12        Image autoKuva = LoadImage("redcar8-bit"); 
     13        Image poliisiKuva = LoadImage("copcar8-bithessu"); 
     14        Image kentta = LoadImage("kentta2"); 
     15        Image kenttatausta = LoadImage("kenttatausta"); 
     16        Image esteKuva = LoadImage("este"); 
     17        Image kiviKuva = LoadImage("kivi"); 
     18        Image loppuKuva = LoadImage("loppu402"); 
     19 
     20        const int ylaY = 150; 
     21        const int keskiY = -130; 
     22        const int alaY = -410; 
     23 
     24        PhysicsObject pelaaja; 
     25        PhysicsObject poliisi; 
    1626 
    1727        GameObject bg; 
    1828        GameObject bg2; 
    19         double tasonnopeus = 3000; 
     29        double tasonnopeus = 1000; 
     30        const double MAXNOPEUS = 7000; 
    2031 
    2132    public override void Begin() 
     
    2839    } 
    2940 
     41    void LisaaOhjaimet() 
     42    { 
     43        Keyboard.Listen(Key.E, ButtonState.Pressed, LiikutaAutoa, null, pelaaja, 1); 
     44        Keyboard.Listen(Key.W, ButtonState.Pressed, LiikutaAutoa, null, pelaaja, -1); 
     45    } 
     46 
     47    void LuoAikaLaskuri() 
     48    { 
     49        Timer aikaLaskuri = new Timer(); 
     50        aikaLaskuri.Start(); 
     51 
     52        Label aikaNaytto = new Label(); 
     53        aikaNaytto.TextColor = Color.White; 
     54        aikaNaytto.DecimalPlaces = 1; 
     55        aikaNaytto.Position = new Vector(Screen.Left+40,Screen.Top-40); 
     56        aikaNaytto.TextColor = Color.BloodRed; 
     57        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
     58        Add(aikaNaytto); 
     59    } 
     60 
     61 
     62 
     63    void LiikutaAutoa(PhysicsObject auto, int suunta) 
     64    { 
     65        if (suunta > 0 && auto.Y != ylaY) 
     66        { 
     67            if (auto.Y == alaY) { auto.Y = keskiY; LiikutaPoliisia(keskiY); } 
     68            else { auto.Y = ylaY; LiikutaPoliisia(ylaY); } 
     69        } 
     70 
     71        else if (suunta < 0 && auto.Y != alaY) 
     72        { 
     73            if (auto.Y == ylaY) { auto.Y = keskiY; LiikutaPoliisia(keskiY); } 
     74            else { auto.Y = alaY; LiikutaPoliisia(alaY); } 
     75        } 
     76    } 
     77 
     78    void ArvoEsteita() 
     79    { 
     80        Timer esteAjastin = new Timer(); 
     81        esteAjastin.Interval = 5; 
     82        esteAjastin.Timeout += delegate { LuoEste(120, 120, RandomGen.SelectOne(ylaY, keskiY, alaY), RandomGen.SelectOne(esteKuva, kiviKuva)); }; 
     83        esteAjastin.Start(); 
     84    } 
     85 
     86    void LuoEste(int leveys, int korkeus, int paikka, Image kuva) 
     87    { 
     88        PhysicsObject este = new PhysicsObject(leveys, korkeus); 
     89        este.Y = paikka; 
     90        este.X = Screen.Right + leveys; 
     91        if (kuva.Equals(esteKuva)) este.Tag = "este"; 
     92        else este.Tag = "kivi"; 
     93        este.Image = kuva; 
     94        este.CollisionIgnoreGroup = 1; 
     95        Add(este); 
     96        este.MoveTo(new Vector(Screen.Left + leveys, paikka) , tasonnopeus, delegate { este.Destroy(); }); 
     97    } 
     98 
     99    void LiikutaPoliisia(int paikka) 
     100    { 
     101        Timer.SingleShot(0.3, delegate { poliisi.Y = paikka; }); 
     102    } 
     103 
    30104 
    31105    public void AloitaPeli(Window sender) 
    32106    { 
    33107        LuoAlkuvalikko(); 
     108 
    34109    } 
    35110 
     
    38113    { 
    39114        ClearAll(); 
    40  
    41  
    42  
     115        tasonnopeus = 1000; 
     116        LuoAikaLaskuri(); 
     117 
     118        pelaaja = LuoAuto(autoKuva, "pelaaja", new Vector(-160, keskiY)); 
     119        poliisi = LuoAuto(poliisiKuva, "poliisi", new Vector(-700, keskiY)); 
     120        poliisi.CollisionIgnoreGroup = 1; 
     121 
     122        AddCollisionHandler(pelaaja, "kivi", PelaajaTormasi); 
     123        AddCollisionHandler(pelaaja, "este", PelaajaTormasi); 
     124 
     125 
     126 
     127        LisaaOhjaimet(); 
     128        ArvoEsteita(); 
     129 
     130        LisaaVaikeusAjastin(); 
    43131         
    44132        //LuoPistelaskuri(); 
     
    60148        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    61149    } 
    62     void Liikutatausta() 
    63     { 
    64         bg.Position = Screen.Center; 
    65         bg.MoveTo(Screen.Center + new Vector(-Screen.Width, 0), tasonnopeus, Liikutatausta); 
    66     } 
    67     void Liikutatausta2() 
    68     { 
    69         bg2.Y = Screen.Center.Y; 
    70         bg2.X = Screen.Center.X + bg.Size.X; 
    71         bg2.MoveTo(Screen.Center, tasonnopeus, Liikutatausta2); 
    72     } 
    73  
    74     void LuoAlkuvalikko() 
    75     { 
    76         //IsMouseVisible = true; 
    77  
     150 
     151 
     152    void LisaaVaikeusAjastin() 
     153    { 
     154        Timer vaikeusAjastin = new Timer(); 
     155        vaikeusAjastin.Interval = 0.05; 
     156        vaikeusAjastin.Timeout += delegate { tasonnopeus++; if (tasonnopeus >= MAXNOPEUS) vaikeusAjastin.Stop(); }; 
     157        vaikeusAjastin.Start(); 
     158    } 
     159 
     160 
     161    PhysicsObject LuoAuto(Image kuva, string tag, Vector paikka) 
     162    { 
     163        PhysicsObject auto = new PhysicsObject(400, 160); 
     164        auto.Image = kuva; 
     165        auto.Position = paikka; 
     166        auto.Tag = tag; 
     167        Add(auto); 
     168        return auto; 
     169    } 
     170 
     171    void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject este) 
     172    { 
     173        Explosion rajahdys = new Explosion(50); 
     174        rajahdys.Position = pelaaja.Position; 
     175        Add(rajahdys); 
     176        Timer.SingleShot(1, PeliLoppui); 
     177    } 
     178 
     179 
     180    void PeliLoppui() 
     181    { 
     182        ClearAll(); 
     183        MessageDisplay.Add("HÄVISIT"); 
     184        GameObject alkuruutu = new GameObject(Screen.Width, Screen.Height); 
     185        alkuruutu.Position = Screen.Center; 
     186        alkuruutu.Image = loppuKuva; 
     187        Add(alkuruutu, -3); 
    78188        MediaPlayer.Play("owen"); 
    79189        MediaPlayer.Volume = 0.5; 
     
    81191         
    82192         
    83         Level.Background.Image = kentta; 
     193        //Level.Background.Image = kentta; 
    84194        Level.Background.ScaleToLevel(); 
    85195        Level.Background.Color = Color.Black; 
    86         Timer.SingleShot(2, delegate 
     196        Timer.SingleShot(3, delegate 
    87197        { 
    88198            MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 
     199 
    89200            Add(alkuValikko); 
    90201            alkuValikko.AddItemHandler(0, AloitaPeli); 
     
    95206        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    96207        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     208     
     209    } 
     210 
     211    void Liikutatausta() 
     212    { 
     213        bg.Position = Screen.Center; 
     214        bg.MoveTo(Screen.Center + new Vector(-Screen.Width, 0), tasonnopeus, Liikutatausta); 
     215    } 
     216 
     217 
     218    void Liikutatausta2() 
     219    { 
     220        bg2.Y = Screen.Center.Y; 
     221        bg2.X = Screen.Center.X + bg.Size.X; 
     222        bg2.MoveTo(Screen.Center, tasonnopeus, Liikutatausta2); 
     223    } 
     224 
     225 
     226    void LuoAlkuvalikko() 
     227    { 
     228        //IsMouseVisible = true; 
     229 
     230 
     231        //Level.Background.Image = kenttatausta; 
     232 
     233        GameObject alkuruutu = new GameObject(Screen.Width, Screen.Height); 
     234        alkuruutu.Position = Screen.Center; 
     235        alkuruutu.Image = kenttatausta; 
     236        Add(alkuruutu, -3); 
     237 
     238        MediaPlayer.Play("owen"); 
     239        MediaPlayer.Volume = 0.5; 
     240        MediaPlayer.IsRepeating = true; 
     241         
     242         
     243        //Level.Background.Image = kentta; 
     244        Level.Background.ScaleToLevel(); 
     245        Level.Background.Color = Color.Black; 
     246        Timer.SingleShot(1, delegate 
     247        { 
     248            MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 
     249 
     250            Add(alkuValikko); 
     251            alkuValikko.AddItemHandler(0, AloitaPeli); 
     252            //alkuValikko.AddItemHandler(1, ParhaatPisteet); 
     253            alkuValikko.AddItemHandler(2, Exit); 
     254        }); 
     255 
     256        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     257        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    97258    } 
    98259} 
Note: See TracChangeset for help on using the changeset viewer.