source: 2014/koodauskerho/38/OttoR/Z_Game/Z_Game/Z_Game/Z_Game.cs @ 5737

Revision 5737, 4.9 KB checked in by hesahave, 6 years ago (diff)

päivä ohi.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Z_Game : PhysicsGame
10{
11    const double nopeus = 190;
12    const double hyppyNopeus = 700;
13    const int RUUDUN_KOKO = 40;
14
15    private Image[] kavelyAnimaatio = LoadImages("Player3juoksu1", "Player3juoksu2");
16    private Image[] paikallaanAnimaatio = LoadImages("Player3");
17
18
19    PlatformCharacter pelaaja1;
20
21    DoubleMeter elamaLaskuri;
22
23
24    Image pelaajanKuva = LoadImage("Player3");
25    Image tahtiKuva = LoadImage("tahti");
26    Image tasokuva = LoadImage("ruoho");
27    Image taso2kuva = LoadImage("maa");
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33
34        SmoothTextures = false;
35        LuoKentta();
36        LisaaNappaimet();
37
38        Camera.Follow(pelaaja1);
39        Camera.ZoomFactor = 2.5;
40        Camera.StayInLevel = true;
41    }
42
43    void LuoKentta()
44    {
45        TileMap kentta = TileMap.FromLevelAsset("kentta1");
46        kentta.SetTileMethod('#', LisaaTaso);
47        kentta.SetTileMethod('*', LisaaTahti);
48        kentta.SetTileMethod('M', LisaaTaso2);
49        kentta.SetTileMethod('N', LisaaPelaaja);
50        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
51        Level.CreateBorders();
52        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
53    }
54
55    void LisaaTaso(Vector paikka, double leveys, double korkeus)
56    {
57        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
58        taso.Position = paikka;
59        taso.Color = Color.Green;
60        taso.Image = tasokuva;
61        Add(taso);
62    }
63    void LisaaTaso2(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        taso2.Position = paikka;
67        taso2.Color = Color.Green;
68        taso2.Image = taso2kuva;
69        Add(taso2);
70    }
71
72
73    void LisaaTahti(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        tahti.IgnoresCollisionResponse = true;
77        tahti.Position = paikka;
78        tahti.Image = tahtiKuva;
79        tahti.Tag = "tahti";
80        Add(tahti);
81    }
82
83    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
84    {
85        pelaaja1 = new PlatformCharacter(leveys, korkeus);
86        pelaaja1.Position = paikka;
87        pelaaja1.Mass = 4.0;
88        pelaaja1.Image = pelaajanKuva;
89        pelaaja1.Size = new Vector(50, 75);
90        pelaaja1.AnimWalk = new Animation(kavelyAnimaatio);
91        pelaaja1.AnimIdle = new Animation(paikallaanAnimaatio);
92        pelaaja1.AnimWalk.FPS = 5;
93
94
95        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
96        Add(pelaaja1);
97        LuoElamaLaskuri();
98    }
99    void LuoElamaLaskuri()
100    {
101        elamaLaskuri = new DoubleMeter(100);
102        elamaLaskuri.MaxValue = 100;
103        elamaLaskuri.LowerLimit += pelaaja1.Destroy;
104
105        ProgressBar elamaPalkki = new ProgressBar(390, 20);
106        elamaPalkki.BindTo(elamaLaskuri);
107        //Taustaväri:
108        elamaPalkki.Color = Color.Red;
109
110        //Palkin väri:
111        elamaPalkki.BarColor = Color.BrightGreen;
112
113        //Reunan väri:
114        elamaPalkki.BorderColor = Color.Black;
115
116        elamaPalkki.X = Screen.Left + 285;
117        elamaPalkki.Y = Screen.Top - 1001;
118
119
120
121        Add(elamaPalkki);
122    }
123
124
125
126   
127
128
129    void LisaaNappaimet()
130    {
131        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
132        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
133
134        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
135        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
136        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
137
138        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
139
140        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
141        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
142        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
143
144        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
145    }
146
147    void Liikuta(PlatformCharacter hahmo, double nopeus)
148    {
149        hahmo.Walk(nopeus);
150    }
151
152    void Hyppaa(PlatformCharacter hahmo, double nopeus)
153    {
154        hahmo.Jump(nopeus);
155    }
156
157    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
158    {
159        maaliAani.Play();
160        MessageDisplay.Add("Keräsit tähden!");
161        tahti.Destroy();
162    }
163}
Note: See TracBrowser for help on using the repository browser.