source: 2010/31/hesasnel/Teron seikkailu/Peli.cs @ 1626

Revision 1626, 5.9 KB checked in by hesasnel, 9 years ago (diff)

Kenttää on tehty. Lisää animaatiota yritetty tehdä, taikajuoman ansiosta voi leijua. Textuureita on tehty lisää.

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6
7class Tasohyppely : PhysicsGame
8{
9    const int ruudunKorkeus = 30;
10    const int ruudunLeveys = 30;
11    const double nopeus = 400;
12    const double hyppyVoima = 3500;
13
14    Vector normaalipainovoima = new Vector(0, -1000);
15    Vector leijumisvoima = new Vector(0, 50);
16
17    Image paikallaanVasemmalle = LoadImage("Tero vasen");
18    Image paikallaanOikealle = LoadImage("Tero");
19    Image[] kavelyVasemmalle = LoadImages("Tero vasen", "Tero 2 vasen");
20    Image[] kavelyOikealle = LoadImages("Tero", "Tero 2");
21    Image[] hyppyOikealle = LoadImages("Tero hyppää");
22    Image[] hyppyVasemmalle = LoadImages ("Tero hyppää vasen");
23    Image[] leijuntaOikealle = LoadImages("ropelli pyörii","ropelli pyörii2");
24    Image[] leijuntaVasemmalle = LoadImages("ropelli pyörii vasen,ropelli pyörii2 vasen");
25    Image[] multa = LoadImages("multa");
26    Image[] ruoho = LoadImages("Ruohikko");
27    Image[] ovi = LoadImages("Ovi");
28    Image[] taikajuoma = LoadImages("Taikajuoma");
29    Image[] tramppa = LoadImages("Tramppa");
30
31    bool taikajuomakaytossa = false;
32
33    Animation hyppyanim;
34    Animation kavelyanim;
35    PlatformCharacter pelaaja1;
36
37    protected override void Begin()
38    {
39        Gravity = new Vector(0, -1000);
40        hyppyanim = new Animation(hyppyOikealle);
41        //kavelyanim = new Animation();
42
43        luoKentta();
44        lisaaNappaimet();
45
46        Camera.Follow(pelaaja1);
47        Camera.ZoomFactor = 2.0;
48        Camera.StayInLevel = true;
49    }
50
51    void luoKentta()
52    {
53        TileMap ruudut = TileMap.FromFile("Kenttä1.txt");
54        ruudut['='] = LuoMulta;
55        ruudut['.'] = LuoRuohikko;
56        ruudut['F'] = LuoTaikajuoma;
57        ruudut['T'] = LuoTramppa;
58        ruudut['M'] = LuoOvi;
59        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
60        Level.CreateBorders();
61        Level.Background.CreateGradient(Color.SkyBlue, Color.SkyBlue);
62
63
64        lisaaPelaajat();
65    }
66
67    void lisaaTaso(double x, double y)
68    {
69        PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 30);
70        taso.Color = Color.Green;
71        taso.X = x;
72        taso.Y = y;
73        Add(taso);
74    }
75
76    void lisaaPelaajat()
77    {
78        pelaaja1 = new PlatformCharacter(70, 100);
79        pelaaja1.Mass = 4.0;
80        pelaaja1.KineticFriction = 1.0;       
81        pelaaja1.Image = LoadImage("Tero");
82        AddCollisionHandler(pelaaja1, KasittelePelaajanTormays);
83
84        pelaaja1.X = 0;
85        pelaaja1.Y = Level.Bottom + 120;
86        pelaaja1.LeftIdleAnimation = new Animation(paikallaanVasemmalle);
87        pelaaja1.RightIdleAnimation = new Animation(paikallaanOikealle);
88
89        pelaaja1.LeftWalkingAnimation = new Animation(kavelyVasemmalle);
90        pelaaja1.RightWalkingAnimation = new Animation(kavelyOikealle);
91
92        Add(pelaaja1);
93    }
94
95    void KasittelePelaajanTormays(PhysicsObject pelaaja, PhysicsObject kohde)
96    {
97        string tagi = kohde.Tag.ToString();
98
99        if (tagi == "taikajuoma")
100        {
101            kohde.Destroy();
102            taikajuomakaytossa = true;
103           
104        }
105        if (tagi == "taso")
106        {
107            //Gravity = normaalipainovoima;
108        }
109    }
110
111    void lisaaNappaimet()
112    {
113        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
114        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
115
116        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
117        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
118        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
119        Keyboard.Listen(Key.Space, ButtonState.Down, leiju, "Leiju");
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, hyppyVoima);
126
127    }
128
129    void leiju()
130    {
131        if (taikajuomakaytossa)
132        {
133            //Gravity = new Vector(0, -200);
134            pelaaja1.Hit(leijumisvoima);
135        }
136    }
137
138    void liikuta(PlatformCharacter hahmo, double nopeus)
139    {
140        hahmo.Walk(nopeus);
141    }
142
143    void hyppaa(PlatformCharacter hahmo, double voima)
144    {
145        hahmo.Jump(voima);
146        hahmo.Animation = new Animation(hyppyOikealle);
147        hahmo.Animation.Start(1);
148    }
149    PhysicsObject LuoMulta()
150{
151    PhysicsObject multa = PhysicsObject.CreateStaticObject(31.0,31.0);
152    multa.Image = LoadImage("multa");
153    return multa;
154       
155}
156    PhysicsObject LuoRuohikko()
157    {
158    PhysicsObject Ruohikko = PhysicsObject.CreateStaticObject(31.0, 31.0);
159    Ruohikko.Image = LoadImage("Ruohikko");
160    Ruohikko.Tag = "taso";
161    return Ruohikko;
162    }
163    PhysicsObject LuoTaikajuoma()
164    {
165        PhysicsObject Taikajuoma = PhysicsObject.CreateStaticObject(50.0, 80.0);
166        Taikajuoma.Image = LoadImage("Taikajuoma");
167        Taikajuoma.Tag = "taikajuoma";
168        return Taikajuoma;
169    }
170    PhysicsObject LuoTramppa()
171    {
172        PhysicsObject Tramppa = PhysicsObject.CreateStaticObject(80.0, 50.0);
173        Tramppa.Image = LoadImage("Tramppa");
174        return Tramppa;
175    }
176    PhysicsObject LuoOvi()
177    {
178        PhysicsObject Ovi = PhysicsObject.CreateStaticObject(50.0, 100.0);
179        Ovi.Image = LoadImage("Ovi");
180        return Ovi;
181    }
182
183    protected override void Update(Time time)
184    {
185        //if (pelaaja1.a
186        base.Update(time);
187    }
188       
189} 
Note: See TracBrowser for help on using the repository browser.