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

Revision 7601, 5.1 KB checked in by jehinous, 4 years ago (diff)

Hienosti menee vaikka ei oikeesti mene

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