source: 2014/30/EikkaH/TheKitchen/TheKitchen/TheKitchen/TheKitchen.cs @ 5669

Revision 5669, 4.7 KB checked in by sieerinn, 7 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 TheKitchen : PhysicsGame
10{
11    private Image[] ukkelinKavely = LoadImages("Tyyppi1", "Tyyppi2", "Tyyppi3");
12    private Image[] ukkelinSeisominen = LoadImages("Tyyppi1");
13
14
15
16    const double nopeus = 675;
17    const double hyppyNopeus = 500;
18    const int RUUDUN_KOKO = 40;
19
20    PlatformCharacter pelaaja1;
21
22    Image Timu = LoadImage("Timu");
23    Image Bookself = LoadImage("Bookself");
24    Image Chest = LoadImage("Chest");
25    Image Clouds = LoadImage("Clouds");
26    Image Bricks = LoadImage("Bricks");
27    Image CobbleStone = LoadImage("CobbleStone");
28    Image dirt = LoadImage("Dirt");
29    Image pelaajanKuva = LoadImage("Tyyppi1");
30    Image tahtiKuva = LoadImage("Diamond");
31
32    SoundEffect maaliAani = LoadSoundEffect("maali");
33
34    public override void Begin()
35    {
36        SmoothTextures = false;
37        Gravity = new Vector(0, -1000);
38
39        LuoKentta();
40        LisaaNappaimet();
41
42        Camera.Follow(pelaaja1);
43        Camera.ZoomFactor = 1.2;
44        Camera.StayInLevel = true;
45    }
46
47    void LuoKentta()
48    {
49        TileMap kentta = TileMap.FromLevelAsset("kentta1");
50
51        kentta.SetTileMethod('T', LisaaTaso, Timu);
52        kentta.SetTileMethod('K', LisaaTaso, Bookself);
53        kentta.SetTileMethod('C', LisaaTaso, Chest);
54        kentta.SetTileMethod('G', LisaaTaso, CobbleStone);
55        kentta.SetTileMethod('#', LisaaTaso, dirt);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58        kentta.SetTileMethod('B', LisaaTaso, Bricks);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        //Level.Background.CreateGradient(Image.Backround);
62
63        Level.Background.Image = Clouds;
64        Level.Background.FitToLevel();
65    }
66
67    void LisaaTahti(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject Diamond = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        Diamond.IgnoresCollisionResponse = true;
71        Diamond.Position = paikka;
72        Diamond.Image = tahtiKuva;
73        Diamond.Tag = "Diamond";
74        Add(Diamond);
75    }
76
77    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
78    {
79        pelaaja1 = new PlatformCharacter(leveys, korkeus);
80        pelaaja1.Position = paikka;
81        pelaaja1.Mass = 4.0;
82        pelaaja1.Image = pelaajanKuva;
83        AddCollisionHandler(pelaaja1, "Diamond", TormaaTahteen);
84        pelaaja1.AnimWalk = new Animation(ukkelinKavely);
85        pelaaja1.AnimWalk.FPS = 9;
86        pelaaja1.AnimIdle = new Animation(ukkelinSeisominen);
87        Add(pelaaja1);
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.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
96        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
97        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
98        Keyboard.Listen(Key.Space, ButtonState.Pressed, HeitaKranaatti, "Pelaaja hyppää", pelaaja1);
99
100        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
101
102        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
103        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
104        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
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 Hyppaa(PlatformCharacter hahmo, double nopeus)
115    {
116        hahmo.Jump(nopeus);
117    }
118
119    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject Diamond)
120    {
121        maaliAani.Play();
122        MessageDisplay.Add("You found a Diamond!");
123        Diamond.Destroy();
124    }
125
126
127    void HeitaKranaatti(PlatformCharacter pelaaja)
128    {
129        Grenade kranu = new Grenade(4.0);
130        pelaaja.Throw(kranu, Angle.FromDegrees(45), 10000);
131    }
132
133    void LisaaTaso(Vector paikka, double leveys, double korkeus, Image kuva)
134    {
135        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
136        taso.Position = paikka;
137        taso.Image = kuva;
138
139        Add(taso);
140    }
141}
142
143
Note: See TracBrowser for help on using the repository browser.