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

Revision 9205, 4.4 KB checked in by npo17_57, 4 years ago (diff)

Toinen asteroidi lisätty

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