source: 2017/27/PinjaV/RunAwayFromYourFear/RunAwayFromYourFear/RunAwayFromYourFear/RunAwayFromYourFear.cs @ 8849

Revision 8849, 5.0 KB checked in by npo17_49, 2 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 RunAwayFromYourFear : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter Ben;
16    PlatformCharacter Link;
17    Image pelaajanKuva = LoadImage("link");
18    Image pelaajan2Kuva = LoadImage("link2");
19    Image tahtiKuva = LoadImage("tahti");
20    int kenttaNro = 1;
21    int indeksi = 0;
22
23    Image[] rubiiniKuvat = LoadImages("timanttipunainen", "timanttilime", "timanttioranssi", "timanttisininen", "timanttivaalee");
24
25    SoundEffect maaliAani = LoadSoundEffect("maali");
26
27    IntMeter rubiiniLaskuri;
28
29    public override void Begin()
30    {
31        Gravity = new Vector(0, -1000);
32
33        LuoKentta("Labyrint");
34        LisaaNappaimet();
35        LuoPisteLaskuri();
36
37        Camera.Follow(Ben, Link);
38        Camera.ZoomFactor = 1.2;
39        // Camera.StayInLevel = true;
40    }
41
42    void LuoKentta(string pv)
43    {
44        ColorTileMap kentta = ColorTileMap.FromLevelAsset(pv);
45        kentta.SetTileMethod(Color.Black, LisaaTaso);
46        kentta.SetTileMethod(Color.FromHexCode("A518EC"), LisaaTahti);
47        kentta.SetTileMethod(Color.Red, LisaaPelaaja);
48        kentta.SetTileMethod(Color.FromHexCode("FF0026FF"), LuoLink2);
49        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders();
51        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
52    }
53
54    void LisaaTaso(Vector paikka, double leveys, double korkeus)
55    {
56        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
57        taso.Position = paikka;
58        taso.Color = Color.Green;
59        Add(taso);
60    }
61
62    void LisaaTahti(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
65        tahti.IgnoresCollisionResponse = true;
66        tahti.Position = paikka;
67        tahti.Image = rubiiniKuvat[indeksi++];
68        tahti.Tag = "tahti";
69        Add(tahti);
70    }
71
72    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
73    {
74        Ben = new PlatformCharacter(leveys, korkeus * 1.5);
75        Ben.Position = paikka;
76        Ben.Mass = 4.0;
77        Ben.Image = pelaajanKuva;
78        AddCollisionHandler(Ben, "Link", Ded);
79        Ben.Tag = "Ben";
80        Add(Ben);
81    }
82    void Ded(PhysicsObject Ben, PhysicsObject Link)
83    {
84        MessageDisplay.Add("Ded! Ben won!");
85        Link.Destroy();
86        Timer.SingleShot(3, Exit);
87    }
88
89    void LinkVoittaa()
90    {
91        MessageDisplay.Add("Ben u lost and Link won");
92        Ben.Destroy();
93        Timer.SingleShot(3, Exit);
94    }
95    void LuoLink2(Vector paikka, double leveys, double korkeus)
96    {
97        Link = new PlatformCharacter(leveys, korkeus * 1.5);
98        Link.Position = paikka;
99        Link.Mass = 4.0;
100        Link.Image = pelaajan2Kuva;
101        Link.Tag = "Link";
102        AddCollisionHandler(Link, "tahti", TormaaTahteen);
103        Add(Link);
104    }
105
106
107
108    void LuoPisteLaskuri()
109    {
110        rubiiniLaskuri = new IntMeter(0, 0, 5);
111        rubiiniLaskuri.UpperLimit += LinkVoittaa;
112
113        Label pisteNaytto = new Label();
114        pisteNaytto.X = Screen.Left + 100;
115        pisteNaytto.Y = Screen.Top - 100;
116        pisteNaytto.TextColor = Color.Black;
117        pisteNaytto.Color = Color.White;
118        pisteNaytto.Title = "Linkin keräämät rubiinit";
119
120
121        pisteNaytto.BindTo(rubiiniLaskuri);
122        Add(pisteNaytto);
123
124    }
125    void LisaaNappaimet()
126    {
127        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
128        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
129
130        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Ben, -nopeus);
131        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Ben, nopeus);
132        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", Ben, hyppyNopeus);
133
134        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Link, -nopeus);
135        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Link, nopeus);
136        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", Link, hyppyNopeus);
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    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
151    {
152        maaliAani.Play();
153        MessageDisplay.Add("Keräsit tähden!");
154        tahti.Destroy();
155        rubiiniLaskuri.Value++;
156        if (rubiiniLaskuri.Value == 5)
157        {
158
159        }
160    }
161    void SeuraavaKentta()
162    {
163
164        if (kenttaNro == 1) LuoKentta("Labyrint1");
165        else if (kenttaNro == 2) LuoKentta("Labyrint2");
166    }
167}
Note: See TracBrowser for help on using the repository browser.