source: 2014/24/UrhoP/pallopeli1/pallopeli1/pallopeli1/pallopeli1.cs @ 4934

Revision 4934, 4.2 KB checked in by urpynnon, 8 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 pallopeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17
18
19    Image pelaajanKuva1 = LoadImage("pallo");
20    Image tahtiKuva = LoadImage("tahti");
21    Image pelaajanKuva2 = LoadImage("pallo1");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25    public override void Begin()
26    {
27        Gravity = new Vector(0, -1000);
28
29
30        LuoKentta();
31        LisaaNappaimet();
32        LuoPistelaskuri();
33
34        Camera.Follow(pelaaja1);
35        Camera.ZoomFactor = 1.2;
36        Camera.StayInLevel = true;
37    }
38
39    void LuoKentta()
40    {
41        TileMap kentta = TileMap.FromLevelAsset("kentta1");
42        kentta.SetTileMethod('#', LisaaTaso);
43        kentta.SetTileMethod('*', LisaaTahti);
44        kentta.SetTileMethod('P', LisaaPelaaja1);
45        kentta.SetTileMethod('p', LisaaPelaaja2);
46        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
47        Level.CreateBorders();
48        Level.Background.CreateGradient(Color.MediumBlue, Color.MediumBlue);
49    }
50
51    void LisaaTaso(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        taso.Position = paikka;
55        taso.Color = Color.Black;
56        Add(taso);
57    }
58
59    void LisaaTahti(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        tahti.IgnoresCollisionResponse = true;
63        tahti.Position = paikka;
64        tahti.Image = tahtiKuva;
65        tahti.Tag = "tahti";
66        Add(tahti);
67    }
68
69    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus)
70    {
71        pelaaja1 = new PlatformCharacter(leveys, korkeus);
72        pelaaja1.Position = paikka;
73        pelaaja1.Mass = 4.0;
74        pelaaja1.Image = pelaajanKuva1;
75        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
76        Add(pelaaja1);
77    }
78
79    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
80    {
81        PlatformCharacter pelaaja2 = new PlatformCharacter(leveys, korkeus);
82        pelaaja2.Position = paikka;
83        pelaaja2.Mass = 3.8;
84        pelaaja2.Image = pelaajanKuva2;
85        AddCollisionHandler(pelaaja2, "tahti", TormaaTahteen);
86        Add(pelaaja2);
87    }
88
89
90    void LisaaNappaimet()
91    {
92        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
93        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
94
95        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
96        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
97        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
98
99
100
101
102        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
103
104
105
106        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
107    }
108
109    void Liikuta(PlatformCharacter hahmo, double nopeus)
110    {
111        hahmo.Walk(nopeus);
112    }
113
114    void Liikuta2(PlatformCharacter hahmo1, double nopeus)
115    {
116        hahmo1.Walk(nopeus);
117    }
118
119    void Hyppaa2(PlatformCharacter hahmo1, double nopeus)
120    {
121        hahmo1.Jump(nopeus);
122    }
123
124
125    void Hyppaa(PlatformCharacter hahmo, double nopeus)
126    {
127        hahmo.Jump(nopeus);
128    }
129
130    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
131    {
132
133        MessageDisplay.Add("Keräsit tähden!");
134        tahti.Destroy();
135        pisteLaskuri.Value += 1;
136    }
137
138
139    IntMeter pisteLaskuri;
140
141    void LuoPistelaskuri()
142    {
143        pisteLaskuri = new IntMeter(0);
144
145        Label pisteNaytto = new Label();
146        pisteNaytto.X = Screen.Left + 100;
147        pisteNaytto.Y = Screen.Top - 100;
148        pisteNaytto.TextColor = Color.Black;
149        pisteNaytto.Color = Color.White;
150
151        pisteNaytto.BindTo(pisteLaskuri);
152        Add(pisteNaytto);
153        pisteNaytto.Title = "Tähdet";
154    }
155
156
157
158}
Note: See TracBrowser for help on using the repository browser.