source: 2012/27/MikaelK/hailstorm/hailstorm/raekuuro.cs @ 3608

Revision 3608, 6.6 KB checked in by mikrats, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class hailstorm : PhysicsGame
10{
11    const double nopeus = 280;
12    const double hyppyNopeus = 1100;
13    const int RUUDUN_KOKO = 40;
14    Image Talvi = LoadImage ("Talvi");
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("meikäläinen");
18    Image tahtiKuva = LoadImage("tahti");
19
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21    ScoreList topLista = new ScoreList(10, false, 0);
22   
23    public override void Begin()
24    {
25      if (DataStorage.Exists("pisteet.xml"))
26      topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml");
27      AlkuValikko();
28     
29 
30    }
31
32    void LuoKentta()
33    {
34        TileMap kentta = TileMap.FromLevelAsset("kentta1");
35        kentta.SetTileMethod('#', LisaaTaso);
36        kentta.SetTileMethod('*', LuoTahti);
37        kentta.SetTileMethod('N', LisaaPelaaja);
38        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
39        Level.CreateBorders();
40        Level.Background.Image = Talvi;
41        Level.Background.FitToLevel();
42    }
43
44    void LisaaTaso(Vector paikka, double leveys, double korkeus)
45    {
46        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
47        taso.Position = paikka;
48        taso.Color = Color.Blue;
49        Add(taso);
50    }
51
52    void LuoTahti(Vector paikka, double leveys, double korkeus)
53    {
54        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        tahti.IgnoresCollisionResponse = true;
56        tahti.Position = paikka;
57        tahti.Image = tahtiKuva;
58        tahti.Tag = "tahti";
59        Add(tahti);
60    }
61
62    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
63    {
64        pelaaja1 = new PlatformCharacter(leveys, korkeus);
65        pelaaja1.Position = paikka;
66        pelaaja1.Mass = 4.0;
67        pelaaja1.Image = pelaajanKuva;
68        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
69        Add(pelaaja1);
70    }
71
72    void LisaaNappaimet()
73    {
74        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
75        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
76        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
77
78        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
79        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
80        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
81
82        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
83
84        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
85        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
86        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
87
88        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
89        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
90    }
91    void Liikuta(PlatformCharacter hahmo, double nopeus)
92    {
93        hahmo.Walk(nopeus);
94    }
95
96    void Hyppaa(PlatformCharacter hahmo, double nopeus)
97    {
98        hahmo.Jump(nopeus);
99    }
100
101    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
102    {
103        maaliAani.Play();
104        MessageDisplay.Add("Keräsit tähden!");
105        tahti.Destroy();
106        pisteLaskuri.Value += 1;
107    }
108
109    IntMeter pisteLaskuri;
110
111       void LuoPistelaskuri()
112    {
113        pisteLaskuri = new IntMeter(0);
114
115        Label pisteNaytto = new Label();
116        pisteNaytto.X = Screen.Left + 100;
117        pisteNaytto.Y = Screen.Top - 100;
118        pisteNaytto.TextColor = Color.Black;
119        pisteNaytto.Color = Color.White;
120        pisteNaytto.Title = "Pisteet";
121        pisteNaytto.BindTo(pisteLaskuri);
122        Add(pisteNaytto);
123
124    }
125
126    void Luorae()
127    {
128        PhysicsObject Rae = new PhysicsObject(30, 30);
129        Rae.Shape = Shape.Circle;
130        Rae.Color = Color.Snow;
131        Rae.X = RandomGen.NextDouble(Level.Left, Level.Right );
132        Rae.Y = Level.Top - 20;
133        Add(Rae);
134        AddCollisionHandler(pelaaja1, Rae, TormaaRakeeseen);
135        AddCollisionHandler(Rae, CollisionHandler.DestroyObject);
136    }
137
138    void TormaaRakeeseen(PhysicsObject pelaaja1, PhysicsObject Rae)
139    {
140        pelaaja1.Destroy();
141        HighScoreWindow topIkkuna = new HighScoreWindow(
142        "Parhaat pisteet",
143        "pääsit top 10 listalle",
144        topLista,pisteLaskuri.Value);
145        topIkkuna.Closed += TallennaPisteet;
146        Add(topIkkuna);
147
148        //MessageDisplay.Add("hävisit pelin")
149       
150    }
151
152    void ajastin()
153    {
154        Timer ajastin = new Timer();
155        ajastin.Interval = 0.2;
156        ajastin.Timeout += Luorae;
157        ajastin.Start();
158
159    }
160   void ajastin2()
161
162   {
163       Timer ajastin2 = new Timer();
164       ajastin2.Interval = 5.0;
165       ajastin2.Timeout += delegate{ 
166           LuoTahti(RandomGen.NextVector(Level.Left,0,Level.Right,100),RUUDUN_KOKO,RUUDUN_KOKO ); 
167       };
168       ajastin2.Start();
169    }
170
171    void AlkuValikko()
172   {
173       MultiSelectWindow AlkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
174      "Aloita peli", "Parhaat pisteet", "Lopeta");
175       AlkuValikko.ItemSelected += PainettiinValikonNappia;
176       AlkuValikko.Color = Color.Snow;
177       Add(AlkuValikko);
178   }
179
180    void PainettiinValikonNappia(int valinta)
181    {
182      switch (valinta)
183        {
184      case 0:
185     
186      Gravity = new Vector(0, -1000);
187      LuoKentta();
188      LisaaNappaimet();
189      Luorae();
190      LuoPistelaskuri();
191      LuoTahti(RandomGen.NextVector(Level.Left,0,Level.Right,100),RUUDUN_KOKO,RUUDUN_KOKO );
192      Camera.Follow(pelaaja1);
193      Camera.ZoomFactor = 1.2;
194      Camera.StayInLevel = true;
195      ajastin();
196      ajastin2();
197      break;
198      case 1:
199      break;
200      case 2:
201      Exit();
202      break;
203        }
204    }
205
206    void tausta()
207    {
208        GameObject talvi = new GameObject(Screen.Width, Screen.Height);
209        talvi.Image = Talvi;
210        Add(talvi, -3);
211        Layers[-3].RelativeTransition = new Vector(0.5, 0.5);   
212    }
213    void TallennaPisteet(Window sender)
214    {
215        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
216    }
217
218 }
219
Note: See TracBrowser for help on using the repository browser.