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

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