source: 2013/26/RoopeR/The Random game/The Random game/The Random game/The_Random_game.cs @ 4233

Revision 4233, 5.0 KB checked in by rotaraih, 10 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class The_Random_game : PhysicsGame
10{
11
12    const double nopeus = 200;
13    const double hyppyNopeus = 3000;
14    const int RUUDUN_KOKO = 60;
15    int kenttaNro = 1;
16    PlatformCharacter pelaaja1;
17
18
19    Image tahtiKuva = LoadImage("tahti");
20    Image esteKuva = LoadImage("Este");
21    Image pelaajakuva = LoadImage("pelaaja");
22    Image maalikuva = LoadImage("Untitled");
23   
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25
26    public override void Begin()
27    {
28        Gravity = new Vector(0, -3000);
29
30        SeuraavaKentta();
31        LisaaNappaimet();
32
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 1.2;
35        Camera.StayInLevel = true;
36    }
37
38    void TormaaMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
39    {
40
41    }
42    void SeuraavaKentta()
43    {
44        if (kenttaNro == 1) LuoKentta("kentta1");
45        else if (kenttaNro == 2) LuoKentta("kentta2");
46        else if (kenttaNro == 3) LuoKentta("kentta3");
47        else if (kenttaNro > 3) Exit();
48    }
49
50
51    void LuoKentta(string kentanNimi)
52    {
53        TileMap kentta = TileMap.FromLevelAsset(kentanNimi);
54        kentta.SetTileMethod('#', LisaaTaso);
55        kentta.SetTileMethod('!', LisaaEste);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58        kentta.SetTileMethod('M', LisaaMaali);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        Level.BackgroundColor = Color.SkyBlue;
62
63    }
64
65    void LisaaMaali(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        maali.Tag = "maali";
69        maali.Image = maalikuva;
70        Add(maali);
71        maali.Color = Color.HotPink;
72        maali.Position = paikka;
73
74    }
75
76
77    void LisaaTaso(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        este.Position = paikka;
81        este.Color = Color.Green;
82        Add(este);
83
84
85    }
86
87
88
89    void LisaaEste(Vector paikka, double leveys, double korkeus)
90    {
91        PhysicsObject este = PhysicsObject.CreateStaticObject(leveys * 1.5, korkeus);
92        este.Image = esteKuva;
93        este.Shape = Shape.FromImage(esteKuva);
94        este.Position = paikka + new Vector(0, -5); ;
95        este.Color = Color.Magenta;
96        Add(este);
97        este.Restitution = (5.0);
98
99    }
100
101    void LisaaTahti(Vector paikka, double leveys, double korkeus)
102    {
103        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
104        tahti.IgnoresCollisionResponse = true;
105        tahti.Position = paikka;
106        tahti.Image = tahtiKuva;
107        tahti.Tag = "random";
108        Add(tahti);
109        tahti.Restitution = (2.0);
110    }
111
112    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
113    {
114        pelaaja1 = new PlatformCharacter(leveys, korkeus);
115        pelaaja1.Position = paikka;
116        pelaaja1.Mass = 5.0;
117        pelaaja1.Restitution = 5.0;
118        pelaaja1.Image = pelaajakuva;
119        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
120        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
121        Add(pelaaja1);
122        pelaaja1.LifetimeLeft = TimeSpan.FromSeconds(60.0);
123        pelaaja1.Push(new Vector(1000, 0));
124    }
125   
126
127
128    void LisaaNappaimet()
129    {
130        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
131        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
132
133        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
134        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
135        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
136        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
137        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
138
139        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
140        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
141        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
142
143        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
144    }
145
146    void Liikuta(PlatformCharacter hahmo, double nopeus)
147    {
148        hahmo.Walk(nopeus * 10);
149    }
150
151    void Hyppaa(PlatformCharacter hahmo, double nopeus)
152    {
153        hahmo.Jump(nopeus * 2);
154    }
155
156    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
157    {
158        // maaliAani.Play();
159        MessageDisplay.Add("Onnea keräsit tähden!!! :)");
160        tahti.Destroy();
161    }
162}
163   
164
165   
Note: See TracBrowser for help on using the repository browser.