source: 2010/31/eeveturu/Grazy Erkki's Adventure.cs @ 1657

Revision 1628, 6.4 KB checked in by eeveturu, 9 years ago (diff)

diudiudiu

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using System.Collections.Generic;
6
7
8
9class Tasohyppely : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyVoima = 4000;
13
14    PlatformCharacter pelaaja1;
15    RandomMoverBrain satunnaisAivot = new RandomMoverBrain();
16
17   
18   
19
20    const int ruudunLeveys = 50;
21    const int ruudunKorkeus = 50;
22   
23    Image palikanKuva = LoadImage("palikka");
24    Image seinanKuva = LoadImage("palikka");
25    Image tikkarinKuva = LoadImage("lollipop");
26    Image tyypinKuva = LoadImage("tyyppi");
27    Image ukonKuva = LoadImage("tyyppi2");
28   
29
30   
31   
32   
33
34
35
36
37    protected override void Begin()
38    {
39       
40        Gravity = new Vector(0, -900);
41
42        luoKentta();
43        lisaaNappaimet();
44
45        Camera.Follow(pelaaja1);
46        Camera.ZoomFactor = 2.0;
47        Camera.StayInLevel = true;
48
49        Mouse.IsCursorVisible = true;
50
51       
52
53    }
54   
55
56
57    void luoKentta()
58    {
59        TileMap ruudut = TileMap.FromFile("mappi.txt");
60        ruudut['='] = LuoPalikka;
61        ruudut['g'] = LuoVihollinen;
62        ruudut['q'] = LuoTikkari;
63        ruudut['5'] = LuoSeina;
64        ruudut['6'] = LuoLaatikko;
65        ruudut['f'] = LuoVihollinen2;
66        ruudut['0'] = LuoPääVihollinen;
67
68       
69        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
70        Level.BackgroundColor = Color.Gray;
71       
72
73
74        lisaaPelaajat();
75       
76
77       
78       
79    }
80
81    void lisaaTaso(double x, double y)
82    {
83        PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 10);
84        taso.Color = Color.Brown;
85        taso.X = x;
86        taso.Y = y;
87        Add(taso);
88    }
89    GameObject LuoPääVihollinen()
90    {
91        PlatformCharacter tyyppi3 = new PlatformCharacter(50, 100);
92        tyyppi3.Image = LoadImage("tyyppi3");
93        LaserGun pyssy2 = new LaserGun(35, 10);
94        tyyppi3.Add(pyssy2);
95       
96        tyyppi3.X = Level.Right - 2200;
97        tyyppi3.Y = Level.Bottom + 120;
98        return (tyyppi3);
99 
100    }
101
102    void lisaaPelaajat()
103    {
104        pelaaja1 = new PlatformCharacter(25, 50);
105        pelaaja1.Mass = 4.0;
106        pelaaja1.Image = LoadImage("Ukko2");
107        AssaultRifle ase = new AssaultRifle(36, 12);
108       
109        ase.Ammo.Value = 894021948;
110        ase.Angle += Angle.Degrees(5);
111        //pelaaja1.Add(ase);
112        pelaaja1.Weapon = ase;
113        pelaaja1.X = Level.Right -2000;
114        pelaaja1.Y = Level.Bottom +300;
115        ase.IsVisible = false;
116        //ase.X = pelaaja1.X;
117        //ase.Y = pelaaja1.Y - 20;
118
119       
120        Add(pelaaja1);
121        AmmuAseella();
122    }
123
124    protected override void Update(Time time)
125    {
126        Vector suunta = Mouse.PositionOnWorld - pelaaja1.Position;
127        pelaaja1.Weapon.Angle = suunta.Angle;
128        base.Update(time);
129    }
130   
131    GameObject LuoVihollinen()
132    {
133        PlatformCharacter tyyppi = new PlatformCharacter(35, 60);
134        tyyppi.Image = tyypinKuva;
135        LaserGun pyssy = new LaserGun(35, 10);
136        tyyppi.Add(pyssy);
137       
138
139        tyyppi.Brain = satunnaisAivot;
140
141
142        tyyppi.X = Level.Right - 2200;
143        tyyppi.Y = Level.Bottom + 120;
144        return(tyyppi);
145
146    }
147    GameObject LuoVihollinen2()
148    {
149        PlatformCharacter tyyppi2 = new PlatformCharacter(35, 60);
150        tyyppi2.Image = ukonKuva;
151        tyyppi2.Weapon = new PlasmaCannon(40, 10);
152        Timer ajastin = new Timer();
153        ajastin.Interval = 0.1;
154        ajastin.Trigger += VihollinenAmpuu;
155        ajastin.Tag = tyyppi2;
156        ajastin.Start();
157        tyyppi2.X = Level.Right - 2200;
158        tyyppi2.Y = Level.Bottom + 120;
159        return (tyyppi2);
160
161    }
162    void VihollinenAmpuu(Timer lauennutAjastin)
163    {
164        PlatformCharacter pelaaja1 = lauennutAjastin.Tag as PlatformCharacter;
165
166        if (pelaaja1 != null)
167        {
168           
169        }
170    }
171
172   
173
174    void lisaaNappaimet()
175    {
176        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
177        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
178
179        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
180        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
181        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
182
183        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
184
185        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
186        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
187        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
188        Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu");
189
190    }
191
192    void liikuta(PlatformCharacter hahmo, double nopeus)
193    {
194        hahmo.Walk(nopeus);
195    }
196
197    void hyppaa(PlatformCharacter hahmo, double voima)
198    {
199        hahmo.Jump(voima);
200    }
201    PhysicsObject LuoPalikka()
202    {
203        PhysicsObject palikka = PhysicsObject.CreateStaticObject(100.0, 30.0);
204        palikka.Color = Color.Black;
205        return palikka;
206    }
207    PhysicsObject LuoTikkari()
208    {
209        PhysicsObject tikkari = PhysicsObject.CreateStaticObject(25.0, 25.0);
210        tikkari.Image = tikkarinKuva;
211        AddCollisionHandler(tikkari, KasitteleTikkarinTormays);
212        return tikkari;
213    }
214    PhysicsObject LuoSeina()
215    {
216        PhysicsObject seina = PhysicsObject.CreateStaticObject(30.0, 100.0);
217        seina.Color = Color.Black;
218        return seina;
219    }
220    void KasitteleTikkarinTormays(PhysicsObject tikkari, PhysicsObject pelaaja1)
221    {
222        if(pelaaja1.Tag.ToString()=="tikkari")
223        {
224            Remove(tikkari);
225        }
226    }
227    PhysicsObject LuoLaatikko()
228    {
229        PhysicsObject loota = PhysicsObject.CreateStaticObject(50.0, 50.0);
230        loota.Shape = Shapes.Rectangle;
231        loota.Color = Color.Black;
232        return (loota);
233     }
234    void AmmuAseella()
235    {
236        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
237
238        if (ammus != null)
239        {
240            ammus.Size *= 2;
241        }
242    }
243   
244   
245
246}
Note: See TracBrowser for help on using the repository browser.