source: 2017/30/SamuliR/SpeedFloat/SpeedFloat/SpeedFloat/SpeedFloat.cs @ 10335

Revision 9226, 4.7 KB checked in by npo17_57, 2 years ago (diff)

Räjähdys myös reunaosumasta ja 4 asteroidia.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SpeedFloat : PhysicsGame   // Ennätys 140
10{
11    Image OlionKuva = LoadImage("raketti");
12
13    Image EsteenKuva = LoadImage("asteroidi");
14
15    Image EsteenKuva2 = LoadImage("asteroidi2");
16
17    Image EsteenKuva3 = LoadImage("asteroidi3");
18
19    Image EsteenKuva4 = LoadImage("asteroidi4");
20
21    EasyHighScore topLista = new EasyHighScore();
22
23    SoundEffect Explosion28matala = LoadSoundEffect("Explosion28matala");
24    PhysicsObject timantti;
25    Timer lisaysajastin;
26    public override void Begin()
27    {
28       
29
30        LuoPistelaskuri();
31
32        Level.Height = Window.Height;
33
34        Level.Width = 10000000;
35
36        Level.Background.Color = Color.Black;
37
38        Level.Background.CreateStars();
39
40       // PysaytaAjastin();
41
42        timantti = new PhysicsObject(120.0, 50.0);
43        timantti.IgnoresCollisionResponse = true;
44        //timantti.Color = Color.Aqua;
45        //timantti.Shape = Shape.Diamond;
46        timantti.Image = OlionKuva;
47        Add(timantti);
48        Camera.StayInLevel = true;
49        PhysicsObject alareuna = Level.CreateBottomBorder();
50        PhysicsObject ylareuna = Level.CreateTopBorder();
51        alareuna.Tag = ylareuna.Tag = "reuna";
52        Camera.Follow(timantti);
53        AddCollisionHandler(timantti, CollisionHandler.ExplodeObject(740, true));
54        AddCollisionHandler(timantti, delegate (PhysicsObject p1, PhysicsObject p2)
55           //AddCollisionHandler(timantti, CollisionHandler.DestroyTarget());
56
57
58
59
60
61
62        {
63            p2.Destroy();
64            Explosion28matala.Play();
65            Explosion räjähdys = new Explosion(740);
66            räjähdys.Position = timantti.Position;
67            Add(räjähdys);
68
69            PysaytaAjastin();
70            Timer.SingleShot(3.0, delegate
71            { PelaajaKuoli(); });
72        });
73        //AddCollisionHandler(timantti, "reuna", delegate (PhysicsObject p1, PhysicsObject p2) { ClearAll(); Begin(); });
74        // Camera.Follow(timantti);
75
76        Keyboard.Listen(Key.Space, ButtonState.Pressed, Pause, "Pysäyttää pelin");
77
78        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");
79
80        LiikutaPelaajaa(new Vector(49999, 0));
81
82        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
83        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
84
85        Timer ajastin = new Timer();
86        ajastin.Interval = 0.7;
87        ajastin.Timeout += LisaaAsteroideja;
88        ajastin.Start();
89
90       
91
92
93    }
94
95   void LisaaAsteroideja()
96    {
97
98       
99        PhysicsObject este = new PhysicsObject(100.0, 80.0);
100        este.MakeStatic();
101        este.X = timantti.X + 1010.0;
102        double randomiluku = RandomGen.NextDouble(-250.0, 250.0);
103        este.Y = timantti.Y + randomiluku;
104        este.LifetimeLeft = TimeSpan.FromSeconds(60);
105       
106        Add(este);
107        este.Image = RandomGen.SelectOne(EsteenKuva, EsteenKuva2, EsteenKuva3, EsteenKuva4);
108       
109    }
110
111
112    void PelaajaKuoli()
113    {
114        timantti.Destroy();
115        topLista.EnterAndShow(pisteLaskuri.Value);
116        topLista.HighScoreWindow.Closed += delegate { ClearAll(); Begin(); };
117
118    }
119
120    void LiikutaPelaajaa(Vector vektori)
121    {
122
123        timantti.Push(vektori);
124
125    }
126
127    void LuoKentta()
128    {
129        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kuvataso");
130
131           // ruudut.SetTileMethod(Color.Black, LuoKentta);
132
133        ruudut.Execute(20, 20);
134
135
136    }
137
138void LuoTaso(Vector paikka, double leveys, double korkeus)
139{
140    PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
141    taso.Position = paikka;
142    // taso.Image = groundImage;
143    taso.CollisionIgnoreGroup = 1;
144    Add(taso);
145
146}
147
148   
149
150    IntMeter pisteLaskuri;
151
152    void LuoPistelaskuri()
153    {
154        pisteLaskuri = new IntMeter(0);
155
156        Label pisteNaytto = new Label();
157        pisteNaytto.X = Screen.Left + 100;
158        pisteNaytto.Y = Screen.Top - 100;
159        pisteNaytto.TextColor = Color.White;
160        pisteNaytto.Color = Color.Black;
161
162        pisteNaytto.BindTo(pisteLaskuri);
163        Add(pisteNaytto);
164
165        Timer.SingleShot(1.3, delegate {
166             lisaysajastin = new Timer();
167            lisaysajastin.Interval = 0.7;
168            lisaysajastin.Timeout += delegate { pisteLaskuri.AddValue(1); };
169            lisaysajastin.Start();
170           
171        });
172
173       
174
175        pisteLaskuri.MaxValue = 999;
176    }
177
178    void PysaytaAjastin()
179   
180    {
181        lisaysajastin.Stop();
182    }
183
184   
185   
186
187
188
189}
Note: See TracBrowser for help on using the repository browser.