source: 2016/27/TuukkaH/LaiskiaisSiulaattori/LaiskiaisSiulaattori/LaiskiaisSiulaattori/LaiskiaisSiulaattori.cs @ 7856

Revision 7856, 3.7 KB checked in by karkaite, 3 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 LaiskiaisSiulaattori : PhysicsGame
10{
11    const double nopeus = 100;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PhysicsObject pelaaja1;
16
17    GameObject oksa1;
18    GameObject oksa2;
19        GameObject oksa3;
20
21    Image pelaajanKuva = LoadImage("Laiskiainen");
22    Image tahtiKuva = LoadImage("tahti");
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25
26    public override void Begin()
27    {
28        LuoKentta();
29        LisaaNappaimet();
30
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35
36    void LuoKentta()
37    {
38        TileMap kentta = TileMap.FromLevelAsset("kentta1");
39        kentta.SetTileMethod('1', LisaaOksa1);
40        kentta.SetTileMethod('2', LisaaOksa2);
41        kentta.SetTileMethod('3', LisaaOksa3);
42        kentta.SetTileMethod('*', LisaaTahti);
43        kentta.SetTileMethod('N', LisaaPelaaja);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
47    }
48
49    GameObject LuoOksa(Vector paikka, double leveys, double korkeus)
50    {
51        GameObject oksa = new GameObject(Level.Width, korkeus * 0.2);
52        oksa.Position = paikka;
53        oksa.Left = Level.Left;
54        oksa.Color = Color.Brown;
55        Add(oksa);
56        return oksa;
57    }
58
59    void LisaaOksa1(Vector paikka, double leveys, double korkeus)
60    {
61        oksa1 = LuoOksa(paikka, leveys, korkeus);
62    }
63
64    void LisaaOksa2(Vector paikka, double leveys, double korkeus)
65    {
66        oksa2 = LuoOksa(paikka, leveys, korkeus);
67    }
68
69    void LisaaOksa3(Vector paikka, double leveys, double korkeus)
70    {
71        oksa3 = LuoOksa(paikka, leveys, korkeus);
72    }
73
74    void LisaaTahti(Vector paikka, double leveys, double korkeus)
75    {
76        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
77        tahti.IgnoresCollisionResponse = true;
78        tahti.Position = paikka;
79        tahti.Image = tahtiKuva;
80        tahti.Tag = "tahti";
81        Add(tahti);
82    }
83
84    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
85    {
86        pelaaja1 = new PhysicsObject(leveys * 3, korkeus * 3);
87        pelaaja1.Position = paikka;
88        pelaaja1.Mass = 4.0;
89        pelaaja1.Image = pelaajanKuva;
90        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
91        Add(pelaaja1);
92
93        pelaaja1.Velocity = new Vector(nopeus, 0);
94    }
95
96    void LisaaNappaimet()
97    {
98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
100
101        //Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
102        Keyboard.Listen(Key.Q, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, oksa1);
103        Keyboard.Listen(Key.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, oksa2);
104        Keyboard.Listen(Key.Z, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, oksa3);
105
106
107        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
108    }
109
110    void Hyppaa(PhysicsObject hahmo, GameObject oksa)
111    {
112        hahmo.MoveTo(new Vector(hahmo.X,oksa.Y), 800, () =>
113        {
114            pelaaja1.Velocity = new Vector(nopeus, 0);
115        });
116    }
117
118    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
119    {
120        maaliAani.Play();
121        MessageDisplay.Add("Keräsit tähden!");
122        tahti.Destroy();
123    }
124}
Note: See TracBrowser for help on using the repository browser.