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

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