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

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