source: 2017/utsjoki/NilsL/KALAPELI/KALAPELI/KALAPELI/KALAPELI.cs @ 9209

Revision 9209, 4.3 KB checked in by sieerinn, 23 months 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 KALAPELI : PhysicsGame
10{
11    PhysicsObject kala;
12
13    IntMeter pisteLaskuri;
14
15
16    public override void Begin()
17    {
18        // TODO: Kirjoita ohjelmakoodisi tähän
19        ClearAll();
20
21        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
22        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
23        LuoKenttä();
24        //Timer kello = new Timer();
25        LisääLiikuta();
26
27        LuoPistelaskuri();
28
29        //kala = new PhysicsObject(70.0, 70.0, Shape.Rectangle);
30
31        //PhysicsObject kivi = new PhysicsObject(70.0, 70.0);
32        //kivi.Shape = Shape.Circle;
33        //Add(kala);
34        //Add(kivi);
35        //AsetaOhjaimet();
36
37
38
39
40        Level.Background.Color = Color.DarkBlue;
41
42
43    }
44
45    void LuoPistelaskuri()
46    {
47        pisteLaskuri = new IntMeter(0);
48
49        Label pisteNaytto = new Label();
50        pisteNaytto.X = Screen.Left + 100;
51        pisteNaytto.Y = Screen.Top - 100;
52        pisteNaytto.TextColor = Color.Black
53 
54     ;
55        pisteNaytto.Color = Color.White;
56
57        pisteNaytto.BindTo(pisteLaskuri);
58        Add(pisteNaytto);
59    }
60
61    void LisääLiikuta()
62    {
63        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaKalaa, "Up", new Vector(0.0, 130.0));
64        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaKalaa, "Down", new Vector(0.0, -100.0));
65        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaKalaa, "Left", new Vector(100.0, 0.0));
66        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaKalaa, "Right", new Vector(-100.0, 0.0));
67
68
69
70
71
72    }
73    void LiikutaKalaa(Vector suunta)
74    {
75
76
77
78        kala.Push(suunta);
79
80
81    }
82    void LuoKenttä()
83    {
84        TileMap ruudut = TileMap.FromLevelAsset("kentta");
85        ruudut.SetTileMethod('#', LuoPalikka);
86        ruudut.SetTileMethod('H', LuoHahmo);
87        ruudut.SetTileMethod('x', LuoTähti);
88        ruudut.SetTileMethod('A', LuoSeinä);
89        ruudut.Optimize('#');
90        ruudut.Execute(50, 50);
91        ruudut.SetTileMethod('x', LuoPalikka);
92
93        Camera.Follow(kala);
94       
95    }
96    void LuoSeinä(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject seinä = PhysicsObject.CreateStaticObject(leveys, korkeus*6);
99        seinä.Position = paikka;
100        seinä.Tag = "seinä";
101        seinä.Color = Color.White;
102        Add(seinä);
103    }
104    void LuoPalikka(Vector paikka, double leveys, double korkeus)
105    {
106        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
107        palikka.Position = paikka;
108        palikka.Shape = Shape.Rectangle;
109        palikka.Tag = "palikka";
110        palikka.Color = Color.Black;
111        Add(palikka);
112    }
113    void LuoTähti(Vector paikka, double leveys, double korkeus)
114    {
115        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
116        palikka.IgnoresCollisionResponse = true;
117        palikka.Position = paikka;
118        palikka.Shape = Shape.Star;
119        palikka.Tag = "Tähti";
120        palikka.Color = Color.Yellow;
121        Add(palikka);
122    }
123    void LuoHahmo(Vector paikka, double leveys, double korkeus)
124    {
125        kala = new PhysicsObject(leveys * 4, korkeus * 2);
126        kala.Position = paikka;
127        kala.Shape = Shape.Rectangle;
128        kala.Image = LoadImage("kuva");
129     
130        Add(kala);
131        AddCollisionHandler(kala, "palikka", törmääPalikkaan);
132
133        AddCollisionHandler(kala, "Tähti", törmääTähteen);
134        AddCollisionHandler(kala, "seinä", törmääseinään);
135    }
136    void törmääPalikkaan(PhysicsObject pelaaja, PhysicsObject kohde)
137    {
138        pelaaja.Destroy();
139        Label Hävisit = new Label("Hävisit Pelin!");
140        Add(Hävisit);
141
142        Timer.SingleShot(0.1, Begin);
143    }
144    void törmääTähteen(PhysicsObject pelaaja, PhysicsObject kohde)
145    {
146        kohde.Destroy();
147        pisteLaskuri.Value += 1;
148    }
149
150    void törmääseinään(PhysicsObject pelaaja, PhysicsObject kohde)
151    {
152        MessageWindow ikkuna = new MessageWindow("voitit pelin");
153        Add(ikkuna);
154    }
155
156}
157
158
Note: See TracBrowser for help on using the repository browser.