source: 2016/26/JennyN/UnicornJump/UnicornJump/UnicornJump/UnicornJump.cs @ 7585

Revision 7585, 4.9 KB checked in by jehinous, 3 years ago (diff)

Sateenkaari piäisi saada ylös, laskuri toimii

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class UnicornJump : PhysicsGame
10{
11    const double nopeus = 500;
12    const double hyppyNopeus = 1300;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("yksisarvinentaustaton");
18    Image porkkanaKuva = LoadImage("porkkanaa");
19    Image ruoholaattaKuva = LoadImage("ruoholaattaa");
20    Image sateenkaariKuva = LoadImage("sateenkaari");
21
22
23
24
25
26    public override void Begin()
27    {
28        Gravity = new Vector(0, -1000);
29   
30        LuoKentta();
31        LisaaNappaimet();
32        LuoPistelaskuri();
33 
34        Camera.Follow(pelaaja1);
35        Camera.ZoomFactor = 0.3;
36        Camera.StayInLevel = true;
37    }
38    void LuoKentta()
39    {
40        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta");
41        ruudut.SetTileMethod(Color.FromHexCode("FF00DC"), LisaaPelaaja);
42        ruudut.SetTileMethod(Color.FromHexCode("D1D1FF"), LisaaTaso);
43        ruudut.SetTileMethod(Color.FromHexCode("FF8707"), LisaaTahti);
44        ruudut.SetTileMethod(Color.White, LisaaSateenkaari);
45        ruudut.Execute(80, 80);
46    }
47    void LisaaTaso(Vector paikka, double leveys, double korkeus)
48    {
49        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
50        taso.Position = paikka;
51        Add(taso);
52        taso.Image = ruoholaattaKuva;
53    }
54    void LisaaSateenkaari(Vector paikka, double leveys, double korkeus)
55    {
56        PhysicsObject sateenkaari = PhysicsObject.CreateStaticObject(leveys, korkeus);
57        sateenkaari.Position = paikka;
58        sateenkaari.Image = sateenkaariKuva;
59        sateenkaari.Tag = "sateenkaari";
60        Add(sateenkaari);
61
62    }
63    void LisaaTahti(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys/2, korkeus/2);
66        tahti.IgnoresCollisionResponse = true;
67        tahti.Position = paikka;
68        tahti.Image = porkkanaKuva;
69        tahti.Tag = "porkkana";
70        Add(tahti);
71    }
72    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
73    {
74        pelaaja1 = new PlatformCharacter(leveys * 1.5, korkeus);
75        pelaaja1.Position = paikka;
76        pelaaja1.Mass = 4.0;
77        pelaaja1.Image = pelaajanKuva;
78        AddCollisionHandler(pelaaja1, "porkkana", TormaaPorkkanaan);
79        Add(pelaaja1);
80        pelaaja1.Tag = "pelaaja";
81    }
82    void LisaaNappaimet()
83    {
84        Keyboard.Listen(Key.Space, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
85        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
86
87        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
88        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
89        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
90
91        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
92        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
93        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
94        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
95
96        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
97    }
98    void Liikuta(PlatformCharacter hahmo, double nopeus)
99    {
100        hahmo.Walk(nopeus);
101    }
102    void Hyppaa(PlatformCharacter hahmo, double nopeus)
103    {
104        hahmo.Jump(nopeus);
105    }
106    void TormaaPorkkanaan(PhysicsObject hahmo, PhysicsObject porkkana)
107    {
108    porkkana.Destroy();
109        pisteLaskuri.Value += 20;
110    }
111void LuoVihollinen(Vector paikka, double leveys, double korkeus)
112{
113    PhysicsObject vihollinen = new PhysicsObject(leveys, korkeus);
114    vihollinen.Position = paikka;
115    vihollinen.Tag = "porkkana";
116    Add(vihollinen);
117    }
118    IntMeter pisteLaskuri;
119    void LuoPistelaskuri()
120    {
121        pisteLaskuri = new IntMeter(0);
122        Label pisteNaytto = new Label();
123        pisteNaytto.X = Screen.Left + 70;
124        pisteNaytto.Y = Screen.Top - 100;
125        pisteNaytto.TextColor = Color.Black;
126        pisteNaytto.Color = Color.FromHexCode("FF00DC");
127        pisteNaytto.BindTo(pisteLaskuri);
128        Add(pisteNaytto);
129        pisteNaytto.Title = "Paino";
130        pisteLaskuri.Value = 500;
131        IntMeter keratytEsineet = new IntMeter(0);
132        pisteLaskuri.MaxValue = 620;
133        pisteLaskuri.UpperLimit += LopetaPeli;
134    }
135    void LopetaPeli()
136    {
137        Timer.SingleShot(4.0, Exit);
138        MessageDisplay.Add("Hävisit pelin!");
139    }
140}
Note: See TracBrowser for help on using the repository browser.