source: 2014/27/NikiV/untitled/untitled/untitled/untitled.cs @ 5293

Revision 5293, 7.3 KB checked in by nieekrva, 8 years ago (diff)

lisää textuureja!

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class untitled : PhysicsGame
10{
11   
12    DoubleMeter elamaLaskuri;
13    const double nopeus = 300;
14    const double hyppyNopeus = 750;
15    const int RUUDUN_KOKO = 40;
16
17    PlatformCharacter pelaaja1;
18    AssaultRifle pelaajan1Ase;
19
20
21    Image pelaajanKuva = LoadImage("hahmo");
22    Image tahtiKuva = LoadImage("tahti");
23    Image vihunkuva = LoadImage("bowser");
24    Image lieska = LoadImage("lieska");
25    Image geminkuva = LoadImage("exp_gem");
26    Image paikallaanAnimaatio = LoadImage("hahmo2");
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29    Weapon vihunase;
30    private Image[] ukkelinKavely = LoadImages("hahmo", "hahmo2", "hahmo3");
31
32    public override void Begin()
33    {
34        SmoothTextures = false;
35        Gravity = new Vector(0, -1000);
36
37        LuoKentta();
38        LisaaNappaimet();
39        LuoElamaLaskuri();
40
41        Camera.Follow(pelaaja1);
42        Camera.ZoomFactor = 1.2;
43        Camera.StayInLevel = true;
44    }
45
46    void LuoKentta()
47    {
48        TileMap kentta = TileMap.FromLevelAsset("kentta1");
49        kentta.SetTileMethod('#', LisaaTaso);
50        kentta.SetTileMethod('*', LisaaTahti);
51        kentta.SetTileMethod('N', LisaaPelaaja);
52        kentta.SetTileMethod('b', Luovihu);
53        kentta.SetTileMethod('g', lisaagem);
54        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
55        Level.CreateBorders();
56        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
57    }
58
59    void LisaaTaso(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        taso.Position = paikka;
63        taso.Color = Color.Green;
64        Add(taso);
65    }
66
67    void LisaaTahti(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        tahti.IgnoresCollisionResponse = true;
71        tahti.Position = paikka;
72        tahti.Image = tahtiKuva;
73        tahti.Tag = "tahti";
74        Add(tahti);
75    }
76    void lisaagem(Vector paikka, double leveys, double korkeus)
77    {
78        PhysicsObject gem = PhysicsObject.CreateStaticObject(leveys, korkeus);
79        gem.IgnoresCollisionResponse = true;
80        gem.Position = paikka;
81        gem.Image = geminkuva;
82        gem.Tag = "gem";
83        Add(gem);
84
85    }
86
87       
88   
89
90
91
92
93    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
94    {
95        pelaaja1 = new PlatformCharacter(leveys, korkeus);
96        pelaaja1.Position = paikka;
97        pelaaja1.Mass = 3.5;
98        pelaaja1.Image = pelaajanKuva;
99        pelaaja1.AnimWalk = new Animation(ukkelinKavely);
100        pelaaja1.AnimWalk.FPS = 20;
101        pelaaja1.AnimIdle = new Animation(paikallaanAnimaatio);
102        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
103        AddCollisionHandler(pelaaja1, "gem", tormaagemiin);
104        //AddCollisionHandler(pelaaja1, "vihu", Tormaavihuun);
105        Add(pelaaja1);
106       
107        pelaajan1Ase = new AssaultRifle(30, 10);
108
109        //Ammusten määrä aluksi:
110        pelaajan1Ase.Ammo.Value = 1000;
111
112
113
114        pelaaja1.Add(pelaajan1Ase);
115    }
116    void Luovihu(Vector paikka, double leveys, double korkeus)
117    {
118        PlatformCharacter vihu = new PlatformCharacter(leveys, korkeus);
119        vihu.Position = paikka;
120        vihu.Mass = 3.0;
121        vihu.Height = 150;
122        vihu.Width = 100;
123        vihu.Image = vihunkuva;
124        vihu.CanRotate = false;
125        vihu.Tag = "vihu";
126        vihunase = new AssaultRifle(50, 60);
127        vihunase.Color = Color.Transparent;
128        vihunase.Image = null;
129        vihu.Weapon = vihunase;
130        Timer ajastin = new Timer();
131        ajastin.Interval = 1.5;
132       
133        ajastin.Start();
134        Add(vihu);
135
136        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
137        tasoAivot.Speed = 100;
138
139        vihu.Brain = tasoAivot;
140        tasoAivot.FallsOffPlatforms = true;
141        tasoAivot.JumpSpeed = 700;
142        tasoAivot.TriesToJump = true;
143
144
145    }
146
147    void LisaaNappaimet()
148    {
149        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
150        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
151
152        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
153        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
154        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
155        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
156
157        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
158
159        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
160        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
161        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
162
163        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
164    }
165
166    void Liikuta(PlatformCharacter hahmo, double nopeus)
167    {
168        hahmo.Walk(nopeus);
169    }
170
171    void Hyppaa(PlatformCharacter hahmo, double nopeus)
172    {
173        hahmo.Jump(nopeus);
174    }
175
176    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
177    {
178        maaliAani.Play();
179        MessageDisplay.Add("Keräsit tähden!");
180        tahti.Destroy();
181    }
182    void tormaagemiin(PhysicsObject hahmo, PhysicsObject gem)
183    {
184        MessageDisplay.Add("100 exp. gained!");
185        gem.Destroy();
186    }
187
188    void AmmuAseella(AssaultRifle ase)
189    {
190        PhysicsObject ammus = ase.Shoot();
191
192        if (ammus != null)
193        {
194            //ammus.Size *= 3;
195            ammus.CanRotate = false;
196            AddCollisionHandler(ammus, "vihu", osuma);
197            //ammus.Image = ...
198            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.0);
199
200        }
201    }
202    void AmmusOsuu(PhysicsObject ammus, PlatformCharacter vihu)
203    {
204       
205
206    }
207    void LuoElamaLaskuri()
208    {
209        elamaLaskuri = new DoubleMeter(10);
210        elamaLaskuri.MaxValue = 10;
211        elamaLaskuri.LowerLimit += ElamaLoppui;
212
213        ProgressBar elamaPalkki = new ProgressBar(150, 20);
214        elamaPalkki.X = Screen.Left + 150;
215        elamaPalkki.Y = Screen.Top - 20;
216        elamaPalkki.BindTo(elamaLaskuri);
217        Add(elamaPalkki);
218    }
219
220    void ElamaLoppui()
221    {
222        MessageDisplay.Add("Game over!");
223        pelaaja1.Destroy();
224    }
225   
226
227    void osuma(PhysicsObject ammus, PhysicsObject vihu)
228    {
229        ammus.Destroy();
230        MessageDisplay.Add("HIT!");
231    }
232
233    void vihuampuu(PlatformCharacter vihu)
234    {
235        PhysicsObject ammus = vihu.Weapon.Shoot();
236
237        if (ammus != null)
238        {
239            //ammus.Size *= 3;
240            ammus.Image = lieska;
241            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
242        }
243       
244    }
245    void Tormaavihuun(PlatformCharacter pelaaja1, PhysicsObject vihu)
246    {
247       
248    }
249
250
251
252
253
254
255
256
257}
Note: See TracBrowser for help on using the repository browser.