source: 2013/24/EeroR/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2/FysiikkaPeli2.cs @ 4116

Revision 4116, 5.3 KB checked in by eeroutti, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli2 : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Image pelaajankuva = LoadImage("ukeli");
13    Image olionkuva = LoadImage("ukko");
14    Image maalinkuva = LoadImage("maali");
15    int kenttanro = 1;
16    public override void Begin()
17    {
18        seuraavakenttä();
19    }
20
21    void seuraavakenttä()
22    {
23        ClearAll();
24
25
26        Level.BackgroundColor = Color.Black;
27        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
28        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
29        Keyboard.Listen(Key.Left, ButtonState.Down,
30          LiikutaPelaajaa, null, new Vector(-1390, 0));
31        Keyboard.Listen(Key.Right, ButtonState.Down,
32          LiikutaPelaajaa, null, new Vector(1390, 0));
33        Keyboard.Listen(Key.Up, ButtonState.Down,
34          LiikutaPelaajaa, null, new Vector(0, 1390));
35        Keyboard.Listen(Key.Down, ButtonState.Down,
36          LiikutaPelaajaa, null, new Vector(0, -1390));
37
38        if (kenttanro == 1) luokentta("kenttä");
39        if (kenttanro == 2) luokentta("kenttä2");
40        if (kenttanro == 3) luokentta("kenttä3");
41        if (kenttanro == 4) luokentta("kenttä4");
42        if (kenttanro == 5) luokentta("kenttä5");
43        if (kenttanro == 6) luokentta("kenttä6");
44        if (kenttanro == 7) luokentta("kenttä7");
45        if (kenttanro == 8) luokentta("kenttä8");
46        if (kenttanro == 9) Exit();
47       
48    }
49
50    void LiikutaPelaajaa(Vector vektori)
51      {
52      pelaaja.Push(vektori);
53      }
54    void luopelaaja(Vector paikka, double leveys, double korkeus)
55    {
56        pelaaja = new PhysicsObject(leveys, korkeus);
57        pelaaja.Shape = Shape.Circle;
58        pelaaja.Color = Color.White;
59        Add(pelaaja);
60        pelaaja.X = paikka.X;
61        pelaaja.Y = paikka.Y;
62        pelaaja.Image = pelaajankuva;
63        pelaaja.Destroyed += PeliLoppuu;
64        pelaaja.Tag = "pelaaja";
65        pelaaja.CanRotate = false;
66        pelaaja.Restitution = 0;
67        pelaaja.LinearDamping = 0.9;
68
69        Camera.Follow(pelaaja);
70    }
71
72    void PeliLoppuu()
73    {
74        MessageWindow window = new MessageWindow("Asuntosi takavarikoitiin");
75        Add(window);
76        window.Closed += uusipeli;
77    }
78
79    void luoolio(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject olio = new PhysicsObject(40, 40);
82        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja");
83        olio.Brain = seuraajanAivot;
84        seuraajanAivot.Speed = 240;
85        olio.Shape = Shape.Circle;
86        olio.Position = paikka;
87        AddCollisionHandler(olio, "pelaaja", OlioOsuuPelaajaan);
88        Add(olio);
89        olio.Image = olionkuva;
90        olio.Restitution = 0;
91        olio.CanRotate = true;
92    }
93
94    void OlioOsuuPelaajaan(PhysicsObject olio, PhysicsObject pelaaja)
95    {
96        pelaaja.Destroy();
97    }
98
99    void luokentta(string kenttatiedosto)
100    {
101        Level.BackgroundColor = Color.Black;
102        //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
103        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
104        //Keyboard.Listen(Key.Left, ButtonState.Down,
105        //  LiikutaPelaajaa, null, new Vector(-1390, 0));
106        //Keyboard.Listen(Key.Right, ButtonState.Down,
107        //  LiikutaPelaajaa, null, new Vector(1390, 0));
108        //Keyboard.Listen(Key.Up, ButtonState.Down,
109        //  LiikutaPelaajaa, null, new Vector(0, 1390));
110        //Keyboard.Listen(Key.Down, ButtonState.Down,
111        //  LiikutaPelaajaa, null, new Vector(0, -1390));
112
113        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kenttatiedosto);
114        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
115        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
116        ruudut.SetTileMethod(Color.Black, luoseinä);
117        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), luomaali);
118        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), luorikkiseinä);
119        ruudut.Execute(40, 40);
120       
121    }
122
123   
124   
125
126    void luoseinä(Vector paikka, double leveys, double korkeus)
127    {
128        PhysicsObject seinä = PhysicsObject.CreateStaticObject(leveys, korkeus);
129        seinä.Position = paikka;
130        Add(seinä);
131
132    }
133
134    void luorikkiseinä(Vector paikka, double leveys, double korkeus)
135    {
136        PhysicsObject rseinä = new PhysicsObject(leveys, korkeus);
137        rseinä.Position = paikka;
138        Add(rseinä);
139    }
140
141
142    void luomaali(Vector paikka, double leveys, double korkeus)
143    {
144        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
145        maali.Position = paikka;
146        maali.Image = maalinkuva;
147        AddCollisionHandler(maali, "pelaaja", tormasimaaliin);
148        Add(maali);
149    }
150    void tormasimaaliin(PhysicsObject pelaaja, PhysicsObject maali)
151    {
152        MessageWindow window = new MessageWindow("Pääsit karkuun ulosottomiehiltä");
153        Add(window);
154        window.Closed += uusipeli;
155        kenttanro++;
156        seuraavakenttä();
157    }
158
159    void uusipeli(Window ikkuna)
160    {
161        seuraavakenttä();
162    }
163}
164
165
166       
167   
168
Note: See TracBrowser for help on using the repository browser.