source: 2016/24/OliverK/pomppupeli/pomppupeli/pomppupeli/pomppupeli.cs @ 7391

Revision 7391, 5.9 KB checked in by olhekaur, 3 years ago (diff)

pommppupeli

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class pomppupeli : PhysicsGame
10{
11    double nopeus = 700;
12    const double hyppyNopeus = 800;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image palikkakuva = LoadImage("images");
18    Image ukkonKuva = LoadImage("ukko");
19    Image pelaajanKuva = LoadImage("ukko2");
20    Image dl2Kuva = LoadImage("DL2");
21    Image nyancat = LoadImage("nyan cat");
22    Image taustakuva = LoadImage("tausta2");
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25
26    IntMeter pistelaskuri;
27
28
29    PhysicsObject ukko2;
30
31    public double Velocity { get; private set; }
32   
33
34    public override void Begin()
35    {
36
37
38        Gravity = new Vector(0, -1000);
39        LuoKentta();
40        LisaaNappaimet();
41        luoajastin();
42        LuoPistelaskuri();
43        LuoAikalaskuri();
44
45
46        Camera.Follow(pelaaja1);
47        Camera.ZoomFactor = 1.2;
48        Camera.StayInLevel = true;
49    }
50
51    void LuoKentta()
52    {
53        TileMap kentta = TileMap.FromLevelAsset("kentta1");
54        kentta.SetTileMethod('E', LisaaTaso);
55        kentta.SetTileMethod('*', LisaaDL2);
56        kentta.SetTileMethod('N', LisaaPelaaja);
57        kentta.SetTileMethod('#', lisaaPalikka);
58        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
59        Level.CreateBorders();
60        Level.Background.Color = Color.Black;
61        //GameObject tausta = new GameObject(Level.Width, Level.Height);
62        //tausta.Image = taustakuva;
63        //Add(tausta, -3);
64
65
66
67
68
69    }
70
71    void lisaaPalikka(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        taso.Position = paikka; taso.Image = palikkakuva;
75        Add(taso);
76
77
78
79    }
80
81    void LisaaTaso(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
84        taso.Position = paikka;
85        taso.Color = Color.Brown;
86        Add(taso);
87    }
88
89    void LisaaDL2(Vector paikka, double leveys, double korkeus)
90    {
91        PlatformCharacter dl2 = new PlatformCharacter(leveys, korkeus);
92        dl2.Position = paikka;
93        dl2.Image = dl2Kuva;
94        dl2.Tag = "DL2";
95        Add(dl2);
96
97
98    }
99
100    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
101    {
102        pelaaja1 = new PlatformCharacter(leveys, korkeus);
103        pelaaja1.Position = paikka;
104        pelaaja1.Mass = 4.0;
105        pelaaja1.Image = pelaajanKuva;
106        AddCollisionHandler(pelaaja1, "DL2", TormaaTahteen);
107        Add(pelaaja1);
108    }
109
110    void LisaaNappaimet()
111    {
112        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
113        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
114
115        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
116        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
117        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
118
119        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
120
121        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
122        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
123        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
124
125
126
127    }
128
129    void Liikuta(PlatformCharacter hahmo, double nopeus)
130    {
131        hahmo.Walk(nopeus);
132    }
133
134    void Hyppaa(PlatformCharacter hahmo, double nopeus)
135    {
136        hahmo.Jump(nopeus);
137    }
138
139    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
140    {
141        pistelaskuri.Value += 1;
142        maaliAani.Play();
143        MessageDisplay.Add("SAIT DAIMOND LUKON!");
144        tahti.Destroy();
145    }
146    void luoajastin()
147    {
148
149        Timer ajastin = new Timer();
150        ajastin.Interval = 1.5;
151        ajastin.Timeout += luoolio;
152        ajastin.Start();
153
154
155
156
157    }
158
159    void luoolio()
160    {
161        //PlatformCharacter nyanCat = new PlatformCharacter(50.0, 40.0);
162        //nyanCat.Position = new Vector(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top));
163        //nyanCat.Image = nyancat;
164        //Add(nyanCat);
165
166        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
167
168        seuraajanAivot.Speed = 150;                 // Millä nopeudella kohdetta seurataan
169        seuraajanAivot.DistanceFar = 600;           // Etäisyys jolla aletaan seurata kohdetta
170        seuraajanAivot.DistanceClose = 200;         // Etäisyys jolloin ollaan lähellä kohdetta
171
172        //nyanCat.Brain = seuraajanAivot;
173
174
175    }
176
177
178
179
180    void LuoAikalaskuri()
181    {
182        Timer aikaLaskuri = new Timer();
183        aikaLaskuri.Start();
184
185        Label aikaNaytto = new Label();
186        aikaNaytto.TextColor = Color.White;
187        aikaNaytto.Position = new Vector(500, 400);
188        aikaNaytto.DecimalPlaces = 1;
189        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
190        Add(aikaNaytto);
191    }
192
193
194
195    void LuoPistelaskuri()
196    {
197        pistelaskuri = new IntMeter(0,0,46);
198        pistelaskuri.UpperLimit += lopetapeli;
199        Label pisteNaytto = new Label();
200        pisteNaytto.X = Screen.Left + 100;
201        pisteNaytto.Y = Screen.Top - 100;
202        pisteNaytto.TextColor = Color.Black;
203        pisteNaytto.Color = Color.White;
204
205        pisteNaytto.BindTo(pistelaskuri);
206        Add(pisteNaytto);
207    }
208
209
210    void lopetapeli()
211    {
212        MessageDisplay.Add("YOU WINNER");
213
214    }
215
216}
Note: See TracBrowser for help on using the repository browser.