source: 2015/27/TapaniS/ProjectStar/ProjectStar/ProjectStar/ProjectStar.cs @ 6695

Revision 6695, 5.8 KB checked in by tasalmik, 5 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 ProjectStar : PhysicsGame
10{
11    int kenttaNro = 1;
12    IntMeter pisteLaskuri;
13
14    SoundEffect hitAani = LoadSoundEffect("hit");
15    Image ganjaKuva = LoadImage("GanjaOljo");
16    Image moabKuva = LoadImage("moab");
17    Image doritosKuva = LoadImage("doritos");
18    Image ukkoKuva = LoadImage("Ganja");
19    Image tasoKuva = LoadImage("goku");
20    Image taustaKuva = LoadImage("Pemppe3");
21    Vector nopeusYlos = new Vector(0, 200);
22    //Vector nopeusOikealle = new Vector(150, 0);
23    //Vector nopeusVasemmalle = new Vector(-150, 0);
24    double nopeus = 300;
25
26
27    PlatformCharacter ukko;
28    //PhysicsObject taso;
29
30
31    public override void Begin()
32
33    {
34        SmoothTextures = false;
35        Reset();
36
37        //SeuraavaKentta();
38    }
39
40    void LiikutaUkkoa()
41    {
42        Keyboard.Listen(Key.Space, ButtonState.Down, Lento, "Ukko: Liikuta ukkoa ylös", ukko);
43        Keyboard.Listen(Key.Space, ButtonState.Pressed, delegate
44        {
45            Timer.SingleShot(0.75, delegate { Keyboard.Disable(Key.Space); });
46            Timer.SingleShot(4, delegate { Keyboard.Enable(Key.Space); });
47         },null);
48        Keyboard.Listen(Key.D, ButtonState.Down, Liiku, "Ukko: Liikuta ukkoa oikealle", ukko, nopeus);
49        Keyboard.Listen(Key.A, ButtonState.Down, Liiku, "Ukko: Liikuta ukkoa vasemmalle", ukko, -nopeus);
50        Keyboard.Listen(Key.W, ButtonState.Down, Hyppy, "Ukko: Liikuta ylös", ukko);
51        Keyboard.Listen(Key.R, ButtonState.Pressed, Reset, "Aloittaa kentän uudestaan");
52    }
53
54    void Liiku(PlatformCharacter Ukko, double nopeus)
55    {
56        //ukko.Velocity = nopeus;
57        ukko.Walk(nopeus);
58    }
59
60    void Lento(PlatformCharacter Ukko)
61    {
62        ukko.Push(new Vector(0, 2000));
63   
64    }
65
66    void Hyppy(PlatformCharacter Ukko)
67    {
68        ukko.Jump(1000);
69
70    }
71
72
73    void LuoPistelaskuri()
74    {
75        pisteLaskuri = new IntMeter(0);
76
77        Label pisteNaytto = new Label();
78        pisteNaytto.X = Screen.Left + 100;
79        pisteNaytto.Y = Screen.Top - 100;
80        pisteNaytto.TextColor = Color.Black;
81        pisteNaytto.Color = Color.White;
82
83        pisteNaytto.BindTo(pisteLaskuri);
84        Add(pisteNaytto);
85        pisteNaytto.Title = "Pisteet";
86        pisteLaskuri.MaxValue = Paloja();
87        pisteLaskuri.UpperLimit += SeuraavaKentta;
88    }
89
90    void SeuraavaKentta()
91    {
92        kenttaNro++;
93        Reset();
94    }
95
96    void PelaajaSaaPisteen(PhysicsObject ukko, PhysicsObject piste)
97    {
98        pisteLaskuri.Value++;
99        piste.Destroy();
100    }
101
102    int Paloja()
103    {
104        return 23 - 3 * kenttaNro;
105    }
106
107    void Reset()
108    {
109
110        ClearAll();
111        Keyboard.Clear();
112        //Level.Background.Image = taustaKuva;
113        Level.Size = new Vector(1500, 1000);
114        //Level.CreateBorders();
115        //Camera.ZoomToLevel();
116        ukko = new PlatformCharacter(40.0, 40.0);
117
118        PhysicsObject randomOlio = new PhysicsObject(80, 80);
119        Add(randomOlio);
120        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
121        randomOlio.Brain = satunnaisAivot;
122        randomOlio.Image = ganjaKuva;
123        randomOlio.Position = new Vector(0, 200);
124
125        PhysicsObject aloitus = new PhysicsObject(80.0, 80.0);
126        aloitus.Shape = Shape.FromImage(moabKuva);
127        aloitus.Position -= new Vector(0, 50);
128        Add(aloitus);
129        aloitus.IgnoresGravity = true;
130        Add(ukko);
131        aloitus.Image = moabKuva;
132
133        ukko.Tag = "ukko";
134        ukko.Color = Color.Purple;
135        AddCollisionHandler(ukko, "piste", PelaajaSaaPisteen);
136        ukko.Image = ukkoKuva;
137
138        AddCollisionHandler(ukko, randomOlio, CollisionHandler.DestroyObject);
139
140        PhysicsObject palkki = PhysicsObject.CreateStaticObject(2000, 10);
141        Add(palkki);
142        palkki.IgnoresGravity = true;
143        palkki.Position -= new Vector(0, 500);
144        palkki.Color = Color.Transparent;
145        AddCollisionHandler(ukko, palkki, CollisionHandler.DestroyObject);
146        //AddCollisionHandler(ukko, taso, CollisionHandler.PlaySound("hit"));
147
148
149        for (int i = 0; i < Paloja(); i++)
150        {
151            Vector kentanPiste = Level.GetRandomPosition();
152            Vector pisteenPiste = Level.GetRandomPosition();
153
154
155            PhysicsObject piste = new PhysicsObject(60, 60);
156            piste.IgnoresGravity = true;
157            Add(piste);
158            piste.Position = pisteenPiste;
159            piste.Color = Color.Blue;
160            piste.Tag = "piste";
161            piste.Image = doritosKuva;
162
163            PhysicsObject taso = PhysicsObject.CreateStaticObject(90.0, 30.0);
164            taso.IgnoresGravity = true;
165            Add(taso);
166            taso.Position = kentanPiste;
167            taso.Image = tasoKuva;
168            taso.Tag = "taso";
169            AddCollisionHandler(ukko, taso, CollisionHandler.PlaySound("hit"));
170
171        }
172
173
174        Gravity = new Vector(0.0, -800.0);
175
176        Level.Background.Image = taustaKuva;
177           
178        //Camera.ZoomToLevel();
179        Level.CreateBorders(1, 1, 2, 1.0, Color.Transparent);
180        //Level.Size = new Vector(1650, 1050);           
181        //Level.Background.FitToLevel();
182
183        LiikutaUkkoa();
184
185        LuoPistelaskuri();
186
187        // TODO: Kirjoita ohjelmakoodisi tähän
188
189        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
190        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
191    }
192
193    void PelaajatTormaavat(PlatformCharacter ukko, PhysicsObject taso )
194    {
195        AddCollisionHandler(ukko, taso, CollisionHandler.PlaySound("hit"));
196
197    }
198
199}
Note: See TracBrowser for help on using the repository browser.