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

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