source: 2013/26/ArttuR/Pako/Pako/Pako/Pako.cs @ 4222

Revision 4222, 4.3 KB checked in by juiitamm, 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 Pako : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17
18    Image pelaajanKuva = LoadImage("Pako-päähenkilö2");
19    Image morkoKuva = LoadImage("Pako-Mörkö2");
20
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25       
26
27        LuoKentta();
28        SeuraavaKentta();
29       
30        LisaaNappaimet();
31
32        Camera.Follow(pelaaja1);
33        Camera.ZoomFactor = 1.2;
34        Camera.StayInLevel = true;
35    }
36
37    void LuoKentta()
38    {
39        TileMap kentta = TileMap.FromLevelAsset("kentta1");
40        kentta.SetTileMethod('#', LisaaTaso);
41        kentta.SetTileMethod('N', LisaaPelaaja);
42        kentta.SetTileMethod('K', LisaaMorko);
43        kentta.SetTileMethod('M', LisaaMaali);
44        kentta.SetTileMethod('L', LisaaLaava);
45        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
46        Level.CreateBorders();
47        Level.Background.CreateGradient(Color.Gray, Color.BlueGray);
48        Gravity = new Vector(0, -1000);
49    }
50
51    void LisaaLaava(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject laava = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        laava.Position = paikka;
55        laava.Color = Color.OrangeRed;
56        laava.Tag = "laava";
57        Add(laava);
58    }
59
60    void LisaaMorko(Vector paikka, double leveys, double korkeus)
61    {
62        PhysicsObject morko = PhysicsObject.CreateStaticObject(leveys, korkeus);
63        morko.Position = paikka;
64        morko.Image = morkoKuva;
65        morko.Tag = "vihollinen";
66        Add(morko);
67    }
68
69    void TormaaLaavaan(PhysicsObject pelaaja1, PhysicsObject maali)
70    {
71       
72    }
73
74    void SeuraavaKentta()
75    {
76       
77    }
78
79    void LisaaTaso(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        taso.Position = paikka;
83        taso.Color = Color.Blue;
84        Add(taso);
85    }
86
87
88   
89
90    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
91    {
92        pelaaja1 = new PlatformCharacter(leveys, korkeus);
93        pelaaja1.Position = paikka;
94        pelaaja1.Mass = 4.0;
95        pelaaja1.Image = pelaajanKuva;
96        AddCollisionHandler(pelaaja1, "maali", PaaseeMaaliin);
97        AddCollisionHandler(pelaaja1, "vihollinen", AloitaKenttaAlusta);
98        Add(pelaaja1);
99    }
100
101    void AloitaKenttaAlusta(PhysicsObject obj, PhysicsObject morko)
102    {
103        ClearAll();
104        LuoKentta();
105    }
106
107
108    void PaaseeMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
109    {
110
111    }
112
113
114    void LisaaMaali(Vector paikka, double leveys, double korkeus)
115    {
116        PhysicsObject maali = new PhysicsObject(leveys, korkeus);
117        maali.Tag = "maali";
118    }
119
120
121    void LisaaNappaimet()
122    {
123        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
124        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
125
126        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
127        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
128        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
129
130        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
131
132        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
133        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
134        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
135
136        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
137    }
138
139    void Liikuta(PlatformCharacter hahmo, double nopeus)
140    {
141        hahmo.Walk(nopeus);
142    }
143
144    void Hyppaa(PlatformCharacter hahmo, double nopeus)
145    {
146        hahmo.Jump(nopeus);
147    }
148
149   
150   
151}
Note: See TracBrowser for help on using the repository browser.