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

Revision 9183, 4.3 KB checked in by npo17_57, 2 years ago (diff)

lisätty raketti- ja asteroiditekstuurit.

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