source: 2015/27/AnttiV/306/jtn/jtn/jtn/jtn.cs @ 6601

Revision 6601, 5.0 KB checked in by misakana, 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 jtn : PhysicsGame
10{
11
12    List<Label> valikonKohdat;
13    List<Label> valikko;
14    const double nopeus = 200;
15    const double hyppyNopeus = 750;
16    const int RUUDUN_KOKO = 40;
17
18    PlatformCharacter pelaaja1;
19
20    Image pelaajanKuva = LoadImage("norsu");
21    Image tahtiKuva = LoadImage("tahti");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25    public override void Begin()
26    {
27        Valikko();
28       
29    }
30
31    void LuoKentta()
32    {
33        TileMap kentta = TileMap.FromLevelAsset("kentta1");
34        kentta.SetTileMethod('#', LisaaTaso);
35        kentta.SetTileMethod('*', LisaaPalikka);
36        kentta.SetTileMethod('N', LisaaPelaaja);
37        kentta.SetTileMethod('P', LisaaPiikki);
38        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
39        Level.CreateBorders();
40        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
41    }
42
43    void LisaaTaso(Vector paikka, double leveys, double korkeus)
44    {
45        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
46        taso.Position = paikka;
47        taso.Color = Color.Green;
48        Add(taso);
49    }
50
51    void LisaaPalikka(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        palikka.IgnoresCollisionResponse = true;
55        palikka.Position = paikka;
56        palikka.Image = tahtiKuva;
57        palikka.Tag = "palikka";
58        Add(palikka);
59    }
60
61    void LisaaPiikki();
62
63    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
64    {
65        pelaaja1 = new PlatformCharacter(leveys, korkeus);
66        pelaaja1.Position = paikka;
67        pelaaja1.Mass = 4.0;
68        pelaaja1.Image = pelaajanKuva;
69        AddCollisionHandler(pelaaja1, "palikka", TormaaPalikkaan);
70        Add(pelaaja1);
71    }
72
73    void LisaaNappaimet()
74    {
75        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
76        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
77
78        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
79        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
80        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
81
82        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
83
84        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
85        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
86        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
87
88        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
89    }
90
91    void Liikuta(PlatformCharacter hahmo, double nopeus)
92    {
93        hahmo.Walk(nopeus);
94    }
95
96    void Hyppaa(PlatformCharacter hahmo, double nopeus)
97    {
98        hahmo.Jump(nopeus);
99    }
100
101    void TormaaPalikkaan(PhysicsObject hahmo, PhysicsObject tahti)
102    {
103        maaliAani.Play();
104    }
105void alkuValikko()
106{
107        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
108"Aloita peli", "Lopeta");
109        Add(alkuValikko);
110        alkuValikko.AddItemHandler(0, AloitaPeli);
111        alkuValikko.AddItemHandler(1, Exit);
112        Mouse.IsCursorVisible = true;
113        alkuValikko.AddItemHandler(0, AloitaPeli);
114        alkuValikko.AddItemHandler(1, Exit);
115        Mouse.IsCursorVisible = true;
116        alkuValikko.DefaultCancel = 3;
117        alkuValikko.DefaultCancel = -1;
118        alkuValikko.Color = Color.Red;
119        List<Label> valikonKohdat;
120        List<Label> valikko;
121    }
122void AloitaPeli()
123{
124    ClearAll();
125
126    Gravity = new Vector(0, -1000);
127
128    LuoKentta();
129    LisaaNappaimet();
130
131    Camera.Follow(pelaaja1);
132    Camera.ZoomFactor = 1.2;
133    Camera.StayInLevel = true;
134}
135void ValikossaLiikkuminen(AnalogState hiirenTila)
136{
137    foreach (Label kohta in valikonKohdat)
138    {
139        if (Mouse.IsCursorOn(kohta))
140        {
141            kohta.TextColor = Color.Red;
142        }
143        else
144        {
145            kohta.TextColor = Color.Black;
146        }
147    }
148}
149
150void Valikko()
151{
152    ClearAll();
153    IsMouseVisible = true;
154    Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
155
156    valikonKohdat = new List<Label>();
157
158    Label kohta1 = new Label("Aloita uusi peli");
159    kohta1.Position = new Vector(0, 40);
160    valikonKohdat.Add(kohta1);
161    Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
162
163
164    foreach (Label valikonKohta in valikonKohdat)
165    {
166        Add(valikonKohta);
167
168    }
169    Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
170}
171               
172
173}
Note: See TracBrowser for help on using the repository browser.