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

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