Changeset 1829 for 2011/23


Ignore:
Timestamp:
2011-06-09 16:54:53 (8 years ago)
Author:
anlakane
Message:
 
Location:
2011/23/mianaure/Oma peli/Tasohyppelypeli4
Files:
5 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • 2011/23/mianaure/Oma peli/Tasohyppelypeli4/Tasohyppelypeli4/Peli.cs

    r1745 r1829  
    66using Jypeli.Effects; 
    77using Jypeli.Widgets; 
     8using System.Collections.Generic; 
     9 
    810 
    911public class Peli : PhysicsGame 
     12 
    1013{ 
     14 
    1115    const double nopeus = 200; 
    1216    const double hyppyNopeus = 1000; 
     
    1418 
    1519    PhysicsObject pelaaja1; 
    16      
     20 
    1721    Image pelaajanKuva = LoadImage("norsu"); 
    1822 
     
    2327    int tahtienmaara = 0; 
    2428    int mpainovoima = 5; 
     29    int tasonro = 1; 
     30    double aika = 30; 
    2531 
    2632    SoundEffect maaliAani = LoadSoundEffect("maali"); 
     
    2834 
    2935 
     36    DoubleMeter alaspainLaskuri; 
     37 
     38 
     39 
    3040    public override void Begin() 
    3141    { 
     42 
     43        ClearAll(); 
     44        tahtienmaara = 0; 
     45        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
     46        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
     47        Gravity = new Vector(0, -1000); 
     48        minne = "alas"; 
     49        luoKentta(); 
     50        lisaaNappaimet(); 
     51        Camera.Follow(pelaaja1); 
     52        Camera.ZoomFactor = 1.2; 
     53        Camera.StayInLevel = true; 
     54 
     55        alaspainLaskuri = new DoubleMeter(aika); 
     56 
     57        Timer aikaLaskuri = new Timer(); 
     58        aikaLaskuri.Interval = 0.1; 
     59        aikaLaskuri.Trigger += LaskeAlaspain; 
     60        aikaLaskuri.Start(); 
     61 
     62        Label aikaNaytto = new Label(); 
     63        aikaNaytto.TextColor = Color.Black; 
     64        aikaNaytto.DecimalPlaces = 1; 
     65        aikaNaytto.BindTo(alaspainLaskuri); 
     66        Add(aikaNaytto); 
     67    } 
     68 
     69 
     70 
     71    void uusialku() 
     72    { 
     73        ClearAll(); 
     74        tahtienmaara = 0; 
     75        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
     76        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
     77        Gravity = new Vector(0, -1000); 
     78        minne = "alas"; 
     79        luoKentta(); 
     80        lisaaNappaimet(); 
     81        Camera.Follow(pelaaja1); 
     82        Camera.ZoomFactor = 1.2; 
     83        Camera.StayInLevel = true; 
     84 
     85        Label aikaNaytto = new Label(); 
     86        aikaNaytto.TextColor = Color.Black; 
     87        aikaNaytto.DecimalPlaces = 1; 
     88        aikaNaytto.BindTo(alaspainLaskuri); 
     89        Add(aikaNaytto); 
     90    } 
     91 
     92    void LaskeAlaspain(Timer timer) 
     93    { 
     94        alaspainLaskuri.Value -= 0.1; 
    3295         
    33         MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
    34         MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
    35         Gravity = new Vector(0, -1000); 
    36         minne = "alas"; 
    37         luoKentta(); 
    38         lisaaNappaimet(); 
    39         Camera.Follow(pelaaja1); 
    40         Camera.ZoomFactor = 1.2; 
    41         Camera.StayInLevel = true; 
    42         tahtienmaara = 0; 
    43  
    44  
    45     } 
     96 
     97        if (alaspainLaskuri.Value <= 0) 
     98        { 
     99            MessageDisplay.Add("Aika loppui..."); 
     100            timer.Stop(); 
     101        
     102            // täydennä mitä tapahtuu, kun aika loppuu 
     103        } 
     104    } 
     105 
    46106 
    47107    void luoKentta() 
     
    52112        kentta['N'] = lisaaPelaaja; 
    53113        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); 
    54         Level.CreateBorders(); 
     114        //Level.CreateBorders(); 
    55115        Level.Background.CreateGradient(Color.White, Color.LightGray); 
     116        AddCollisionHandler(pelaaja1, osuTahteen); 
    56117    } 
    57118 
     
    73134    PhysicsObject lisaaPelaaja() 
    74135    { 
    75         pelaaja1 = new PhysicsObject (40, 40, Shape.Circle); 
     136        pelaaja1 = new PhysicsObject(40, 40, Shape.Circle); 
    76137        pelaaja1.Mass = 4.0; 
    77138        pelaaja1.Image = pelaajanKuva; 
    78139        pelaaja1.Restitution = 0.5; 
    79140        pelaaja1.CanRotate = false; 
    80  
    81  
    82          
    83         AddCollisionHandler(pelaaja1, osuTahteen); 
    84141        return pelaaja1; 
    85142    } 
     
    87144    void lisaaNappaimet() 
    88145    { 
    89          
     146 
    90147        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    91148        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
    92149        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus); 
    93         Keyboard.Listen(Key.Space, ButtonState.Pressed, painov, "Pelaaja hyppää"); 
     150        Keyboard.Listen(Key.Space, ButtonState.Pressed, painov, "Painovoiman muutos"); 
     151        Keyboard.Listen(Key.Enter, ButtonState.Pressed, ulosruudusta, "Aloita taso alusta"); 
    94152 
    95153        //ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    99157    } 
    100158 
    101  
    102159    void liikuta(PhysicsObject hahmo, double nopeus) 
    103160    { 
    104161        //hahmo.Walk(nopeus); 
     162 
    105163        if (hahmo.Velocity.Magnitude < 200) 
    106164        { 
    107             if (minne == "alas") 
    108             { 
    109  
    110                 hahmo.Hit(new Vector(nopeus, 0)); 
    111             } 
    112             if (minne == "ylös") 
    113             { 
    114                 hahmo.Hit(new Vector(nopeus, 0)); 
    115             } 
    116             if (minne == "oikea") 
    117             { 
    118                 hahmo.Hit(new Vector(0, nopeus)); 
    119             } 
    120             if (minne == "vasen") 
    121             { 
    122                 hahmo.Hit(new Vector(0, nopeus)); 
    123             } 
    124         } 
    125     } 
     165            hahmo.Hit(new Vector(nopeus, 0)); 
     166        } 
     167 
     168    } 
     169    void ulosruudusta() 
     170    { 
     171        alaspainLaskuri.Value -= 10; 
     172        if (tasonro == 1) 
     173        { 
     174            uusialku(); 
     175        } 
     176        if (tasonro == 2) 
     177        { 
     178            taso2(); 
     179        } 
     180        if (tasonro == 3) 
     181        { 
     182            taso3(); 
     183        } 
     184        if (tasonro == 4) 
     185        { 
     186            taso4(); 
     187        } 
     188 
     189    } 
     190 
    126191 
    127192 
     
    134199        if (kohde.Tag.ToString() == "tahti") 
    135200        { 
    136  
    137201            maaliAani.Play(); 
    138202            tahtienmaara++; 
    139203            MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
     204            alaspainLaskuri.Value += 10; 
    140205            kohde.Destroy(); 
    141206            if (tahtienmaara == 3) 
    142207            { 
    143208                MessageDisplay.Add("Selvisit tason!!! "); 
    144                 Timer.SingleShot(1.5, taso2); 
     209                aika = alaspainLaskuri.Value; 
     210                alaspainLaskuri.Value += 11.5; 
     211                if (tasonro == 1) 
     212                { 
     213                    Timer.SingleShot(1.5, taso2); 
     214                } 
     215                if (tasonro == 2) 
     216                { 
     217                    Timer.SingleShot(1.5, taso3); 
     218                } 
     219                if (tasonro == 3) 
     220                { 
     221                    Timer.SingleShot(1.5, taso4); 
     222                } 
     223                 
     224                tasonro++; 
    145225            } 
    146226        } 
    147227    } 
     228 
     229 
    148230    void painov() 
    149231    { 
    150        if (mpainovoima > 0) 
    151         { 
    152            mpainovoima--; 
    153            MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
     232        if (mpainovoima > 0) 
     233        { 
     234            mpainovoima--; 
     235            MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
    154236            if (minne == "alas") 
    155237            { 
     
    157239                Gravity = new Vector(0, 1000); 
    158240                minne = "ylös"; 
     241                pelaaja1.Image = pelaajanKuva3; 
     242 
    159243            } 
    160             else 
     244            else if (minne == "ylös") 
    161245            { 
    162246                Gravity = new Vector(0, 0); 
    163247                Gravity = new Vector(0, -1000); 
    164248                minne = "alas"; 
     249                pelaaja1.Image = pelaajanKuva; 
     250 
    165251            } 
    166252        } 
    167253    } 
     254 
     255 
     256 
     257 
     258 
    168259    void taso2() 
    169260    { 
    170261 
    171         minne = "alas"; 
    172         Gravity = new Vector(0, -1000); 
    173         pelaaja1.Destroy(); 
     262        ClearAll(); 
     263        MessageDisplay.TextColor = Color.Black; 
     264        tahtienmaara = 0; 
     265        mpainovoima = 5; 
    174266        TileMap kentta = TileMap.FromFile("kentta2.txt"); 
    175267        kentta['#'] = lisaaTaso; 
     
    177269        kentta['N'] = lisaaPelaaja; 
    178270        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); 
    179         Level.CreateBorders(); 
     271        //Level.CreateBorders(); 
    180272        Level.Background.CreateGradient(Color.White, Color.LightGray); 
    181          
    182         lisaaNappaimet(); 
    183         painov(); 
    184         Camera.Follow(pelaaja1); 
    185         Camera.ZoomFactor = 1.2; 
    186         Camera.StayInLevel = true; 
    187         tahtienmaara = 0; 
    188         mpainovoima = 5; 
    189         MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
    190  
    191     } 
    192   
    193  
     273 
     274        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
     275        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
     276        Gravity = new Vector(0, -1000); 
     277        minne = "alas"; 
     278        lisaaNappaimet(); 
     279        AddCollisionHandler(pelaaja1, osuTahteen); 
     280        Camera.Follow(pelaaja1); 
     281        Camera.ZoomFactor = 1.2; 
     282        Camera.StayInLevel = true; 
     283 
     284        Label aikaNaytto = new Label(); 
     285        aikaNaytto.TextColor = Color.Black; 
     286        aikaNaytto.DecimalPlaces = 1; 
     287        aikaNaytto.BindTo(alaspainLaskuri); 
     288        Add(aikaNaytto); 
     289 
     290 
     291 
     292 
     293    } 
     294 
     295 
     296    void taso3() 
     297    { 
     298 
     299        ClearAll(); 
     300 
     301        tahtienmaara = 0; 
     302        mpainovoima = 6; 
     303        TileMap kentta = TileMap.FromFile("kentta3.txt"); 
     304        kentta['#'] = lisaaTaso; 
     305        kentta['*'] = lisaaTahti; 
     306        kentta['N'] = lisaaPelaaja; 
     307        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); 
     308        //Level.CreateBorders(); 
     309        Level.Background.CreateGradient(Color.White, Color.LightGray); 
     310        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
     311        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
     312        lisaaNappaimet(); 
     313        AddCollisionHandler(pelaaja1, osuTahteen); 
     314        Camera.Follow(pelaaja1); 
     315        Camera.ZoomFactor = 1.2; 
     316        Camera.StayInLevel = true; 
     317        Gravity = new Vector(0, -1000); 
     318        minne = "alas"; 
     319        Label aikaNaytto = new Label(); 
     320        aikaNaytto.TextColor = Color.Black; 
     321        aikaNaytto.DecimalPlaces = 1; 
     322        aikaNaytto.BindTo(alaspainLaskuri); 
     323        Add(aikaNaytto); 
     324 
     325    } 
     326 
     327    void taso4() 
     328    { 
     329 
     330        ClearAll(); 
     331 
     332        tahtienmaara = 0; 
     333        mpainovoima = 6; 
     334        TileMap kentta = TileMap.FromFile("kentta4.txt"); 
     335        kentta['#'] = lisaaTaso; 
     336        kentta['*'] = lisaaTahti; 
     337        kentta['N'] = lisaaPelaaja; 
     338        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); 
     339        //Level.CreateBorders(); 
     340        Level.Background.CreateGradient(Color.White, Color.LightGray); 
     341        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); 
     342        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); 
     343        lisaaNappaimet(); 
     344        AddCollisionHandler(pelaaja1, osuTahteen); 
     345        Camera.Follow(pelaaja1); 
     346        Camera.ZoomFactor = 1.2; 
     347        Camera.StayInLevel = true; 
     348        Gravity = new Vector(0, -1000); 
     349        minne = "alas"; 
     350        Label aikaNaytto = new Label(); 
     351        aikaNaytto.TextColor = Color.Black; 
     352        aikaNaytto.DecimalPlaces = 1; 
     353        aikaNaytto.BindTo(alaspainLaskuri); 
     354        Add(aikaNaytto); 
     355 
     356    } 
    194357    public string minne { get; set; } 
    195358 
    196359    public object taso { get; set; } 
     360 
     361    protected override void Update(Time time) 
     362    { 
     363 
     364        if (pelaaja1.X < Level.Left || pelaaja1.X > Level.Right || pelaaja1.Y < Level.Bottom || pelaaja1.Y > Level.Top) 
     365        { 
     366            ulosruudusta(); 
     367        } 
     368        base.Update(time); 
     369    } 
    197370} 
  • 2011/23/mianaure/Oma peli/Tasohyppelypeli4/Tasohyppelypeli4/Tasohyppelypeli4.csproj

    r1736 r1829  
    111111  </ItemGroup> 
    112112  <ItemGroup> 
     113    <Compile Include="..\..\..\Oma peli parempi.cs" /> 
    113114    <Compile Include="Ohjelma.cs" /> 
    114     <Compile Include="Peli.cs" /> 
    115115    <Compile Include="Properties\AssemblyInfo.cs" /> 
    116116  </ItemGroup> 
    117117  <ItemGroup> 
     118    <Content Include="kentta7.txt"> 
     119      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     120    </Content> 
     121    <Content Include="kentta6.txt"> 
     122      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     123    </Content> 
     124    <Content Include="kentta5.txt"> 
     125      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     126    </Content> 
     127    <Content Include="kentta4.txt"> 
     128      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     129    </Content> 
     130    <Content Include="kentta3.txt"> 
     131      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     132    </Content> 
    118133    <Content Include="Game.ico" /> 
    119134    <Content Include="GameThumbnail.png" /> 
Note: See TracChangeset for help on using the changeset viewer.