source: 2010/31/arsajukk/fat-man adventures/fat-man adventures/Peli.cs @ 1625

Revision 1625, 6.4 KB checked in by arsajukk, 11 years ago (diff)

Jatkettiin pelii

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using System.Collections.Generic;
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 200;
10    const double hyppyVoima = 4000;
11    const int ruudunLeveys = 50;
12    const int ruudunKorkeus = 50;
13    PlatformCharacter pelaaja1;
14    PhysicsObject vasenReuna;
15    PhysicsObject oikeaReuna;
16    PhysicsObject alaReuna;
17    Image taustaKuva = LoadImage("background");
18    Image pelaajanKuva = LoadImage("Fat-man");
19    Image pelaajanKuva2 = LoadImage("Fat-man 2");
20    Image vihollinenKuva = LoadImage("Hamburger");
21
22    List<PhysicsObject> viholliset;
23
24    protected override void Begin()
25    {
26        LuoKentta();
27        lisaaNappaimet();
28
29        Camera.Follow(pelaaja1);
30        Camera.ZoomFactor = -100.0;
31        Camera.StayInLevel = true;
32
33
34
35
36    }
37
38    void LuoKentta()
39    {
40        viholliset = new List<PhysicsObject>();
41        TileMap ruudut = TileMap.FromFile("Kentta1.txt");
42        ruudut['='] = LuoPalikka;
43        ruudut['*'] = LuoTahti;
44        ruudut['1'] = lisaaPelaajat;
45        ruudut['-'] = LuoPalikka3;
46        ruudut['_'] = LuoPalikka4;
47        ruudut[','] = LuoPalikka2;
48        ruudut['.'] = LuoPalikka5;
49        ruudut[':'] = LuoOmena;
50        ruudut['2'] = lisaaVihollinen;
51        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
52        Gravity = new Vector(0.0, -850.0);
53        PhysicsObject vasenReuna = Level.CreateLeftBorder();
54        vasenReuna.Restitution = 1.0;
55        vasenReuna.IsVisible = false;
56        PhysicsObject oikeaReuna = Level.CreateRightBorder();
57        vasenReuna.Restitution = 1.0;
58        vasenReuna.IsVisible = false;
59        alaReuna = Level.CreateBottomBorder();
60        Level.Background.Image = taustaKuva;
61        Level.Background.Height = Level.Height;
62        Level.Background.Width = Level.Width;
63
64        TeeVihollisilleAivot();
65
66
67
68    }
69
70    void TeeVihollisilleAivot()
71    {
72        foreach (PhysicsObject vihu in viholliset)
73        {
74            List<Vector> polku = new List<Vector>();
75            polku.Add(new Vector(vihu.X-100,vihu.Y));
76            polku.Add(new Vector(vihu.X+100,vihu.Y));
77            PathFollowerBrain polkuAivot = new PathFollowerBrain();
78            polkuAivot.Path = polku;
79            polkuAivot.Speed = 200;
80            vihu.Brain = polkuAivot;
81        }
82    }
83
84    GameObject lisaaPelaajat()
85    {
86        pelaaja1 = new PlatformCharacter(40, 70);
87        pelaaja1.Mass = 4.5;
88        pelaaja1.Image = pelaajanKuva;
89        AddCollisionHandler(pelaaja1, PelaajaTormasi);
90        LaserGun laserPyssy = new LaserGun(45, 10);
91        pelaaja1.Weapon = laserPyssy;
92        pelaaja1.RightIdleAnimation = new Animation(pelaajanKuva);
93        pelaaja1.LeftIdleAnimation = new Animation(pelaajanKuva2);
94        pelaaja1.RightWalkingAnimation = new Animation(pelaajanKuva);
95        pelaaja1.LeftWalkingAnimation = new Animation(pelaajanKuva2);
96        return (pelaaja1);
97
98
99    }
100
101
102
103
104    void lisaaNappaimet()
105    {
106        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
107        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
108
109        Keyboard.Listen(Key.Space, ButtonState.Down, pelaaja1.Weapon.Use, "Ammu");
110
111        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
112        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
113        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
114
115        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
116
117        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
118        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
119        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
120    }
121
122    PhysicsObject LuoPalikka()
123    {
124        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 95.0);
125        palikka.Color = Color.Red;
126        palikka.Image = LoadImage("tiiliseina");
127        return palikka;
128    }
129
130    PhysicsObject LuoTahti()
131    {
132        PhysicsObject tahti = PhysicsObject.CreateStaticObject(25.0, 25.0);
133        tahti.Image = LoadImage("tahti");
134        return tahti;
135    }
136    PhysicsObject LuoPalikka2()
137    {
138        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 5.0);
139        palikka.Image = LoadImage("ruoho");
140        palikka.Restitution = 0.0;
141        return palikka;
142    }
143
144    PhysicsObject LuoPalikka3()
145    {
146        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 95.0);
147        palikka.Image = LoadImage("tiiliseina");
148        return palikka;
149    }
150
151    PhysicsObject LuoPalikka4()
152    {
153        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 5.0);
154        palikka.Color = Color.Brown;
155        palikka.Image = LoadImage("multaa");
156        return palikka;
157    }
158
159    PhysicsObject LuoPalikka5()
160    {
161        PhysicsObject palikka = PhysicsObject.CreateStaticObject(100.0, 50.0);
162        palikka.Color = Color.White;
163        palikka.Image = LoadImage("pilvi");
164        return palikka;
165    }
166    PhysicsObject LuoOmena()
167    {
168        PhysicsObject omena = PhysicsObject.CreateStaticObject(35.0, 35.0);
169        omena.Image = LoadImage("apple");
170        return omena;
171    }
172
173    PhysicsObject lisaaVihollinen()
174    {
175        PhysicsObject vihollinen = new PhysicsObject(50, 30);
176        vihollinen.Image = vihollinenKuva;
177        vihollinen.Restitution = 0.0;
178        viholliset.Add(vihollinen);
179        return (vihollinen);
180    }
181
182    void liikuta(PlatformCharacter hahmo, double nopeus)
183    {
184        pelaaja1.Walk(nopeus);
185    }
186
187    void hyppaa(PlatformCharacter hahmo, double voima)
188    {
189        hahmo.Jump(voima);
190    }
191
192    void PelaajaTormasi(PhysicsObject pelaaja1, PhysicsObject kohde)
193    {
194        if ((kohde == alaReuna))
195        {
196            AloitaAlusta();
197        }
198    }
199
200    void AloitaAlusta()
201    {
202        ClearAll();
203        Begin();
204    }
205
206    void AmmuAseella()
207    {
208        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
209
210        if (ammus != null)
211        {
212            ammus.Size *= 3;
213        }
214    }
215
216
217}
218
219
220
Note: See TracBrowser for help on using the repository browser.