source: 2016/26/HeiniI/CloudJump/CloudJump/CloudJump/CloudJump.cs @ 7597

Revision 7597, 5.1 KB checked in by hekaihal, 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 CloudJump : PhysicsGame
10{
11   
12    PlatformCharacter lammas;
13    Image pelaajanKuva = LoadImage("lammas");
14    Image Oikeatausta = LoadImage("oikeatausta2");
15    Image pinkkilaattakuva = LoadImage("pinkkilaatta");
16    Image liilalaattakuva = LoadImage("liilalaatta");
17    Image pilvikuva = LoadImage("pilvi");
18    const double nopeus = 200;
19    const double hyppyNopeus = 750;
20
21    double kameranraja;
22    PhysicsObject kuolotaso;
23
24    public override void Begin()
25    {
26
27
28        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
29        "Aloita peli", "Lopeta");
30        Add(alkuValikko);
31
32        alkuValikko.AddItemHandler(0, AloitaPeli);
33        alkuValikko.AddItemHandler(1, Exit);
34
35
36    }
37        void AloitaPeli()
38         {
39        kameranraja = Level.Bottom;
40        Gravity = new Vector(0, -1000);
41        LuoKentta();
42        LisaaNappaimet();
43
44        Camera.FollowX(lammas);
45        Camera.ZoomFactor = 1.2;
46        Camera.StayInLevel = true;
47    }
48
49    protected override void Update(Time time)
50    {
51
52        if (lammas != null && lammas.Y > kameranraja)
53        {
54            Camera.Y = lammas.Y;
55            kameranraja = Camera.Y;
56            kuolotaso.Y = Camera.Y - 170;
57        }
58        else
59        {
60            Camera.Y = kameranraja;
61           
62        }
63        base.Update(time);
64    }
65
66    void LuoKentta()
67    {
68
69        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("oikeatausta2");
70       
71        ruudut.SetTileMethod(Color.FromHexCode("#FFFF3A61"),LisaaPilvi);
72        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LisaaLammas);
73        ruudut.SetTileMethod(Color.Black, PohjaLaatta);
74        ruudut.SetTileMethod(Color.FromHexCode("#FF10FF04"), PuunRunko);
75
76        ruudut.Execute(20, 20);
77        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
78        Kuolotaso();
79
80    }
81    void LisaaPilvi(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject pilvi = PhysicsObject.CreateStaticObject(leveys+30, korkeus);
84        pilvi.Position = paikka;
85        pilvi.Image = pilvikuva;
86        Add(pilvi);
87    }
88    void LisaaLammas(Vector paikka, double leveys, double korkeus)
89    {
90        lammas = new PlatformCharacter(leveys+20, korkeus+20);
91        lammas.Position = paikka;
92        lammas.Image = pelaajanKuva;
93        lammas.Tag = "lammas";
94        AddCollisionHandler(lammas, "alaraja", PelaajaOsuu);
95        Add(lammas);
96
97    }
98    void LuoTaso(Vector paikka,double leveys, double korkeus)
99    {
100        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
101        taso.Position = paikka;
102        taso.Image = Oikeatausta;
103        Add(taso);
104    }
105   void PohjaLaatta(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject pinkkilaatta = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        pinkkilaatta.Position = paikka;
109        pinkkilaatta.Image = pinkkilaattakuva;
110        Add(pinkkilaatta);
111    }
112
113    void PuunRunko(Vector paikka, double leveys, double korkeus)
114    {
115        PhysicsObject liilalaatta = PhysicsObject.CreateStaticObject(leveys, korkeus);
116        liilalaatta.Position = paikka;
117        liilalaatta.Image = liilalaattakuva;
118        Add(liilalaatta);
119    }
120    void LisaaNappaimet()
121    {
122        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
123        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
124
125        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", lammas, -nopeus);
126        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", lammas, nopeus);
127        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", lammas, hyppyNopeus);
128
129        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
130
131        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", lammas, -nopeus);
132        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", lammas, nopeus);
133        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", lammas, hyppyNopeus);
134
135        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
136       
137
138    }
139
140    void Liikuta(PlatformCharacter hahmo, double nopeus)
141    {
142        hahmo.Walk(nopeus);
143    }
144
145    void Hyppaa(PlatformCharacter hahmo, double nopeus)
146    {
147        hahmo.Jump(nopeus);
148    }
149   
150
151    void Kuolotaso()
152    {
153         kuolotaso = new PhysicsObject(Level.Width, 20);
154        kuolotaso.Position = new Vector(0,Level.Bottom);
155        kuolotaso.Tag = "alaraja";
156        kuolotaso.IgnoresPhysicsLogics = true;
157        kuolotaso.IgnoresCollisionResponse = true;
158        Add(kuolotaso);
159    }
160    void PelaajaOsuu(PhysicsObject lammas, PhysicsObject kuolotaso)
161    {
162        lammas.Destroy();
163        ClearAll();
164        Begin();
165    }
166}
Note: See TracBrowser for help on using the repository browser.