source: 2016/24/JamiP/sokkelo/sokkelo/sokkelo/sokkelo.cs @ 7347

Revision 7347, 4.0 KB checked in by karkaite, 4 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 sokkelo : PhysicsGame
10{
11
12    PhysicsObject pelaaja;
13    private string kenttaMenossa = "kentta";
14    public override void Begin()
15    {
16        // TODO: Kirjoita ohjelmakoodisi tähän
17        LuoKentta();
18        Camera.ZoomFactor = 30;
19        Camera.FollowedObject = pelaaja;
20        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
21        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
22    }
23
24    void LuoKentta()
25    {
26        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
27        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kenttaMenossa);
28
29        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
30        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja);
31        ruudut.SetTileMethod(Color.Black, LuoSeina);
32        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), LuoMaali);
33        ruudut.SetTileMethod(Color.Yellow, LuoTahti);
34        LuoRotta();
35        //3. Execute luo kentän
36        //   Parametreina leveys ja korkeus
37        ruudut.Execute(20, 20);
38        Level.Background.Color = Color.Gray;
39    }
40
41    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
42    {
43        pelaaja = new PhysicsObject(10, 10);
44        pelaaja.Position = paikka;
45        //AddCollisionHandler(pelaaja, "tahti", TormaaTahteen);
46        Add(pelaaja);
47        pelaaja.Shape = Shape.Circle;
48        pelaaja.Restitution = 0;
49        AddCollisionHandler(pelaaja, "maali", PelaajaOsuuMaaliin);
50        AddCollisionHandler(pelaaja, "rotta", PelaajaOsuuRottaan);
51
52        Keyboard.Listen(Key.Left, ButtonState.Down,
53           LiikutaPelaajaa, null, new Vector(-250, 0));
54        Keyboard.Listen(Key.Right, ButtonState.Down,
55          LiikutaPelaajaa, null, new Vector(250, 0));
56        Keyboard.Listen(Key.Up, ButtonState.Down,
57          LiikutaPelaajaa, null, new Vector(0, 250));
58        Keyboard.Listen(Key.Down, ButtonState.Down,
59          LiikutaPelaajaa, null, new Vector(0, -250));
60
61    }
62
63
64    void LuoRotta()
65    {
66        const int RUUDUN_KOKO = 10; 
67        PhysicsObject rotta = new PhysicsObject(RUUDUN_KOKO / 2, RUUDUN_KOKO / 2);
68        Add(rotta);
69        rotta.Tag = "rotta";
70
71        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(RUUDUN_KOKO);
72        labyrinttiAivot.Speed = 50.0;
73        labyrinttiAivot.LabyrinthWallTag = "seina";
74
75
76        rotta.Brain = labyrinttiAivot;
77    }
78
79
80    void PelaajaOsuuMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
81    {
82        ClearAll();
83        kenttaMenossa = "kentta2";
84        Begin();
85    }
86
87    void PelaajaOsuuRottaan(PhysicsObject pelaaja, PhysicsObject rotta)
88    {
89        pelaaja.Destroy();
90    }
91
92    void LuoSeina(Vector paikka, double leveys, double korkeus)
93    {
94        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
95        seina.Position = paikka;
96        //seina.Image = groundImage;
97        seina.CollisionIgnoreGroup = 1;
98        Add(seina);
99        seina.Color = Color.Black;
100    }
101
102    void LuoMaali(Vector paikka, double leveys, double korkeus)
103    {
104        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
105        maali.Position = paikka;
106        //seina.Image = groundImage;
107        Add(maali);
108        maali.Tag = "maali";
109        maali.Color = Color.Red;
110    }
111
112
113    void LuoTahti(Vector paikka, double leveys, double korkeus)
114    {
115        PhysicsObject tahti = new PhysicsObject(5, 5);
116        tahti.IgnoresCollisionResponse = true;
117        tahti.Position = paikka;
118        //tahti.Image = tahdenKuva;
119        tahti.Tag = "tahti";
120        Add(tahti, 1);
121    }
122
123    void LiikutaPelaajaa(Vector vektori)
124    {
125        pelaaja.Push(vektori);
126    }
127}
Note: See TracBrowser for help on using the repository browser.