source: 2013/27/OttoW/Stickman jump/Stickman jump/Stickman jump/Stickman_jump.cs @ 4366

Revision 4366, 4.4 KB checked in by otweijo, 8 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 Stickman_jump : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Pelihahmo");
18    Image piikitKuva = LoadImage("piikit");
19    Image maaliKuva = LoadImage("lippu");
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21    int kenttaNro = 1;
22
23
24    public override void Begin()
25    {
26        AloitaPeli();
27    }
28
29    void AloitaPeli()
30    {
31
32        SeuraavaKentta();
33
34       
35    }
36
37    void SeuraavaKentta()
38    {
39        ClearAll();
40        Gravity = new Vector(0, -1100);
41        if (kenttaNro > 1) Exit();
42        else LuoKentta("kentta" + kenttaNro);
43
44        LisaaNappaimet();
45        Camera.Follow(pelaaja1);
46        Camera.ZoomFactor = 1.2;
47        Camera.StayInLevel = true;
48    }
49
50
51    void LuoKentta(string kentanNimi)
52    {
53        TileMap kentta = TileMap.FromLevelAsset(kentanNimi);
54        kentta.SetTileMethod('#', LisaaTaso);
55        kentta.SetTileMethod('*', LisaaPiikit);
56        kentta.SetTileMethod('N', LisaaPelaaja);
57        kentta.SetTileMethod('M', LisaaMaali);
58        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
59        Level.CreateBorders();
60        Level.Background.CreateGradient(Color.Black, Color.Green);
61    }
62
63    void LisaaTaso(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        taso.Position = paikka;
67        taso.Color = Color.Brown;
68        Add(taso);
69    }
70
71    void LisaaPiikit(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        tahti.IgnoresCollisionResponse = true;
75        tahti.Position = paikka;
76        tahti.Image = piikitKuva;
77        tahti.Tag = "piikit";
78        Add(tahti);
79    }
80
81    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
82    {
83        pelaaja1 = new PlatformCharacter(leveys, korkeus);
84        pelaaja1.Position = paikka;
85        pelaaja1.Mass = 4.0;
86        pelaaja1.Image = pelaajanKuva;
87        AddCollisionHandler(pelaaja1, "piikit", TormaaPiikkeihin);
88        AddCollisionHandler(pelaaja1, "maali", PaaseeMaaliin);
89        Add(pelaaja1);
90
91
92    }
93
94    void PaaseeMaaliin(PhysicsObject obj, PhysicsObject toinen)
95    {
96        kenttaNro++;
97        SeuraavaKentta();
98    }
99
100    void LisaaMaali(Vector paikka, double leveys, double korkeus)
101    {
102        PhysicsObject maali = new PhysicsObject(leveys, korkeus);
103        maali.Position = paikka;
104        maali.Image = maaliKuva;
105        maali.Tag = "maali";
106        Add(maali);
107    }
108 
109
110    void LisaaNappaimet()
111    {
112        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
113        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
114       
115        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
116        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
117        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
118        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaPeli, "Aloittaa pelin uudestaan");
119
120
121        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
122
123        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
124        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
125        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
126
127        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
128    }
129
130    void Liikuta(PlatformCharacter hahmo, double nopeus)
131    {
132     hahmo.Walk(nopeus);
133    }
134
135    void Hyppaa(PlatformCharacter hahmo, double nopeus)
136    {
137        hahmo.Jump(nopeus);
138    }
139
140    void TormaaPiikkeihin(PhysicsObject hahmo, PhysicsObject piikit)
141    {
142        maaliAani.Play();
143        MessageDisplay.Add("Törmäsit piikkiin!");
144        pelaaja1.Destroy();
145    }
146}
Note: See TracBrowser for help on using the repository browser.