source: 2015/24/TaneliL/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2.cs @ 6061

Revision 6061, 4.7 KB checked in by sieerinn, 6 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli2 : PhysicsGame
10{
11    PhysicsObject Pelaaja;
12
13    PhysicsObject Alareuna;
14    PhysicsObject Ylareuna;
15
16    Timer Ajastin;
17
18    IntMeter PisteLaskuri;
19    Timer LisataanPisteita;
20
21    EasyHighScore topLista = new EasyHighScore();
22    Image Jouni = LoadImage("Jouninpää");
23    Image AJ = LoadImage("AJpää");
24    Image TrollFace = LoadImage("Problem");
25    Image Reunat = LoadImage("Laidat");
26    Image Ylalaita = LoadImage("Yläreuna");
27
28
29    double liikutusNopeus = 70.0;
30    const double OLETUS_LIIKUTUS_NOPEUS = 70.0;
31
32    public override void Begin()
33    {
34        ClearAll();
35        LuoMaailma(0, 0);
36        LuoEste();
37        LuoPisteLaskuri();
38        LisataaPiste();
39       
40       
41
42       
43        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuta Pelaajaa Ylös", new Vector (0, 1250));
44        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuta Pelaajaa Alas", new Vector(0, -1250));
45        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
46        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
47        Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, "Aloita Alusta");
48    }
49
50    void LuoMaailma(double x, double y)
51    {
52        Pelaaja = new PhysicsObject(70, 70);
53        Pelaaja.Shape = Shape.Circle;
54        Pelaaja.Color = Color.GreenYellow;
55        Pelaaja.Image = Jouni;
56        Pelaaja.LinearDamping = 0.90;
57        Pelaaja.X = x;
58        Pelaaja.Y = y;
59        Add(Pelaaja);
60
61        AddCollisionHandler(Pelaaja, "Este", PelaajaOsuu);
62
63        Alareuna = Level.CreateBottomBorder(0,true);
64        Alareuna.Width = 2000;
65        Ylareuna = Level.CreateTopBorder(0, true);
66        Ylareuna.Width = 2000;
67        Alareuna.Tag = Ylareuna.Tag = "Este";
68        Alareuna.Image = Reunat;
69        Ylareuna.Image = Ylalaita;
70
71
72        //Level.CreateVerticalBorders(0, true, Color.White);
73        Level.Background.Color = Color.Cyan;
74        Camera.Follow(Pelaaja);
75        Camera.FollowsY = false;
76        Camera.ZoomFactor = 1.1;
77
78        Ajastin = new Timer();
79        Ajastin.Interval = 7.5;
80        Ajastin.Timeout += LuoEste;
81        Ajastin.Start();
82
83        liikutusNopeus = OLETUS_LIIKUTUS_NOPEUS;
84    }
85
86
87    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
88    {
89        base.Update(gameTime);
90        Pelaaja.Move(new Vector(liikutusNopeus, 0));
91        Alareuna.X = Pelaaja.X;
92        Ylareuna.X = Pelaaja.X;
93
94        liikutusNopeus++;
95    }
96
97    void LuoEste()
98    {
99        PhysicsObject Este = PhysicsObject.CreateStaticObject(200, 500);
100        Este.Color = Color.Gray;
101        Este.Y = RandomGen.NextDouble(Alareuna.Y + Este.Height * 0.5, Ylareuna.Y - Este.Height * 0.5);
102        Este.X = Pelaaja.X + 1000;
103        Este.Image = AJ;
104        Add(Este, -1);
105        Este.Tag = "Este";
106
107        Ajastin.Interval = RandomGen.NextDouble(3, 5);
108    }
109
110
111    void LiikutaPelaajaa(Vector vektori)
112    {
113        Vector liikutus = new Vector(Pelaaja.Velocity.X, vektori.Y);
114        Pelaaja.Move(liikutus);
115    }
116
117    void PelaajaOsuu(PhysicsObject Pelaaja, PhysicsObject Kohde)
118    {
119        Pelaaja.Destroy();
120        LisataanPisteita.Stop();
121        Explosion rajahdys = new Explosion(1000);
122        rajahdys.Position = Pelaaja.Position;
123        rajahdys.Image = TrollFace;
124        rajahdys.UseShockWave = false;
125        Add(rajahdys, 1);
126        rajahdys.Destroyed += delegate
127        {
128            topLista.EnterAndShow(PisteLaskuri.Value);
129            topLista.HighScoreWindow.Closed += AloitaPeli;
130        };
131    }
132
133    void AloitaAlusta()
134    {
135        PisteLaskuri.Value = PisteLaskuri.DefaultValue;
136    }
137
138    void LuoPisteLaskuri()
139    {
140        PisteLaskuri = new IntMeter(0);
141        PisteLaskuri.MaxValue = 50000000;
142        Label pisteNaytto = new Label();
143        pisteNaytto.X = Screen.Left + 100;
144        pisteNaytto.Y = Screen.Top - 100;
145        pisteNaytto.TextColor = Color.Black;
146        pisteNaytto.Color = Color.White;
147        pisteNaytto.Title = "Pisteet";
148        PisteLaskuri.Value = +1;
149        pisteNaytto.BindTo(PisteLaskuri);
150        Add(pisteNaytto);
151
152        LisataanPisteita = new Timer();
153        LisataanPisteita.Interval = 0.1    ;
154        LisataanPisteita.Timeout += LisataaPiste;
155        LisataanPisteita.Start();
156
157    }
158
159    void LisataaPiste()
160    {
161        PisteLaskuri.Value += 1;
162    }
163
164    public void AloitaPeli(Window senter)
165    { 
166   
167    }
168}
169
170
Note: See TracBrowser for help on using the repository browser.