source: 2014/koodauskerho/38/JaakkoS/Tikku/Tikku/Tikku/Tikku.cs @ 6605

Revision 6605, 4.6 KB checked in by jasukuva, 6 years ago (diff)

tein parannuksia kenttään ja kesken eräinen vihu

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tikku : 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("Pelaaja");
18    Image tahtiKuva = LoadImage("tahti");
19
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21
22    public override void Begin()
23    {
24        Gravity = new Vector(0, -1000);
25
26        LuoKentta();
27        LisaaNappaimet();
28
29        Camera.Follow(pelaaja1);
30        Camera.ZoomFactor = 1.2;
31        Camera.StayInLevel = true;
32    }
33
34    void LuoKentta()
35    {
36        TileMap kentta = TileMap.FromLevelAsset("kentta1");
37        kentta.SetTileMethod('#', LisaaTaso);
38        kentta.SetTileMethod('!', LisaaTappavaTaso);
39        kentta.SetTileMethod('*', LisaaTahti);
40        kentta.SetTileMethod('N', LisaaPelaaja);
41        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
42
43        PhysicsObject alaReuna = Level.CreateBottomBorder();
44        alaReuna.Restitution = 1.0;
45        alaReuna.IsVisible = false;
46        alaReuna.Tag = "alaReuna";
47
48        PhysicsObject oikeaReuna = Level.CreateRightBorder();
49        oikeaReuna.Restitution = 1.0;
50        oikeaReuna.IsVisible = false;
51
52        PhysicsObject vasenReuna = Level.CreateLeftBorder();
53        vasenReuna.Restitution = 1.0;
54        vasenReuna.IsVisible = false;
55     
56
57
58        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
59    }
60
61    void LisaaTaso(Vector paikka, double leveys, double korkeus)
62    {
63        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
64        taso.Position = paikka;
65        taso.Color = Color.Brown;
66        Add(taso);
67    }
68    void LisaaTappavaTaso(Vector paikka, double leveys, double korkeus)
69    {
70        PhysicsObject tappavataso = PhysicsObject.CreateStaticObject(leveys, korkeus);
71        tappavataso.Position = paikka;
72        tappavataso.Color = Color.Brown;
73        tappavataso.Tag = "tappavapalikka";
74        Add(tappavataso);
75    }
76
77    void LisaaTahti(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        tahti.IgnoresCollisionResponse = true;
81        tahti.Position = paikka;
82        tahti.Image = tahtiKuva;
83        tahti.Tag = "tahti";
84        Add(tahti);
85    }
86
87    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
88    {
89        pelaaja1 = new PlatformCharacter(leveys, korkeus);
90        pelaaja1.Position = paikka;
91        pelaaja1.Mass = 4.0;
92        pelaaja1.Image = pelaajanKuva;
93        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
94        AddCollisionHandler(pelaaja1, "alaReuna", Putoaa);
95        AddCollisionHandler(pelaaja1, "tappavapalikka", TormaaTappavaanTasoon);
96        Add(pelaaja1);
97    }
98
99    void LisaaNappaimet()
100    {
101        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
103
104        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
105        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
106
107        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
108
109     
110        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
111        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
112
113        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
114    }
115
116    void Liikuta(PlatformCharacter hahmo, double nopeus)
117    {
118        hahmo.Walk(nopeus);
119    }
120
121    void Hyppaa(PlatformCharacter hahmo, double nopeus)
122    {
123        hahmo.Jump(nopeus);
124    }
125
126    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
127    {
128        maaliAani.Play();
129        MessageDisplay.Add("Voitit pelin!");
130        tahti.Destroy();
131        Timer.SingleShot(3.0, Exit);
132        ClearControls();
133    }
134    void Putoaa(PhysicsObject hahmo, PhysicsObject kolo)
135    {
136        hahmo.Destroy();
137        MessageDisplay.Add("Kuolit :(");
138        Timer.SingleShot(3.0, Exit);
139       
140
141    }
142
143    void TormaaTappavaanTasoon(PhysicsObject hahmo, PhysicsObject tappavataso)
144    {
145        hahmo.Destroy();
146        MessageDisplay.Add("Kuolit :(");
147        Timer.SingleShot(3.0, Exit);
148    }
149
150}
Note: See TracBrowser for help on using the repository browser.