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

Revision 4080, 3.2 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    public override void Begin()
15    {
16        seuraavakenttä();
17    }
18
19    void seuraavakenttä()
20    {
21        ClearAll();
22
23
24        Level.BackgroundColor = Color.Black;
25        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
26        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
27        luokentta();
28        Keyboard.Listen(Key.Left, ButtonState.Down,
29          LiikutaPelaajaa, null, new Vector(-1290, 0));
30        Keyboard.Listen(Key.Right, ButtonState.Down,
31          LiikutaPelaajaa, null, new Vector(1290, 0));
32        Keyboard.Listen(Key.Up, ButtonState.Down,
33          LiikutaPelaajaa, null, new Vector(0, 1290));
34        Keyboard.Listen(Key.Down, ButtonState.Down,
35          LiikutaPelaajaa, null, new Vector(0, -1290));
36    }
37
38    void LiikutaPelaajaa(Vector vektori)
39      {
40      pelaaja.Push(vektori);
41      }
42    void luopelaaja(Vector paikka, double leveys, double korkeus)
43    {
44        pelaaja = new PhysicsObject(leveys, korkeus);
45        pelaaja.Shape = Shape.Circle;
46        pelaaja.Color = Color.White;
47        Add(pelaaja);
48        pelaaja.X = paikka.X;
49        pelaaja.Y = paikka.Y;
50        pelaaja.Image = pelaajankuva;
51        pelaaja.Destroyed += PeliLoppuu;
52        pelaaja.Tag = "pelaaja";
53        pelaaja.CanRotate = false;
54        pelaaja.Restitution = 0;
55        pelaaja.LinearDamping = 0.9;
56
57        Camera.Follow(pelaaja);
58    }
59
60    void PeliLoppuu()
61    {
62        MessageWindow window = new MessageWindow("Hävisit pelin");
63        Add(window);
64        window.Closed += uusipeli;
65    }
66
67    void luoolio(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject olio = new PhysicsObject(40, 40);
70        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja");
71        olio.Brain = seuraajanAivot;
72        seuraajanAivot.Speed = 200;
73        olio.Shape = Shape.Circle;
74        olio.Position = paikka;
75        AddCollisionHandler(olio, "pelaaja", OlioOsuuPelaajaan);
76        Add(olio);
77        olio.Image = olionkuva;
78        olio.Restitution = 0;
79        olio.CanRotate = true;
80    }
81
82    void OlioOsuuPelaajaan(PhysicsObject olio, PhysicsObject pelaaja)
83    {
84        pelaaja.Destroy();
85    }
86
87    void luokentta()
88    {
89        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttä");
90        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), luopelaaja);
91        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), luoolio);
92        ruudut.SetTileMethod(Color.Black, luoseinä);
93         ruudut.Execute(40, 40);
94       
95    }
96
97    void luoseinä(Vector paikka, double leveys, double korkeus)
98    {
99        PhysicsObject seinä = PhysicsObject.CreateStaticObject(leveys, korkeus);
100        seinä.Position = paikka;
101        Add(seinä);
102
103    }
104
105    void uusipeli(Window ikkuna)
106    {
107        seuraavakenttä();
108    }
109}
110
111
112       
113   
114
Note: See TracBrowser for help on using the repository browser.