source: 2011/26/VilleK/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Peli.cs @ 2416

Revision 2416, 5.8 KB checked in by vilmarju, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 900;
13    const int RUUDUN_KOKO = 50;
14
15    PlatformCharacter pelaaja1;
16
17    IntMeter tolkkiLaskuri;
18    Image pelaajanKuva = LoadImage("juoppo");
19    Image pelaajankuva2 = LoadImage("juoppo2");
20    Image tollkinkuva = LoadImage("tolkki");
21    Image ammo1a = LoadImage("ammo1a");
22    Image polis1 = LoadImage("polis1");
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25    public override void Begin()
26    {
27        Gravity = new Vector(0, -1000);
28
29        luoKentta();
30        lisaaNappaimet();
31        LuoLaskuri();
32        LuoTolkkiLaskuri();
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 1.2;
35        Camera.StayInLevel = true;
36    }
37
38    void LuoTolkkiLaskuri()
39    {
40        tolkkiLaskuri = new IntMeter(0);
41
42        Label tolkkiNaytto = new Label();
43        tolkkiNaytto.BindTo(tolkkiLaskuri);
44        tolkkiNaytto.X = Screen.Left + 50;
45        Add(tolkkiNaytto);
46    }
47
48    void LuoLaskuri()
49    {
50        Label pisteNaytto = new Label();
51        pisteNaytto.X = Screen.Left + 50;
52        pisteNaytto.TextColor = Color.Red;
53
54        pisteNaytto.BindTo(pelaaja1.Weapon.Ammo);
55        Add(pisteNaytto);
56
57        Label pisteTeksti = new Label("ammukset");
58        pisteTeksti.X = Screen.Left +130;
59        pisteTeksti.TextColor = Color.Red;
60        Add(pisteTeksti);
61    }
62
63    void luoKentta()
64    {
65        TileMap kentta = TileMap.FromFile("kentta1.txt");
66        kentta['#'] = lisaaTaso;
67        kentta['*'] = lisaaTahti;
68        kentta['N'] = lisaaPelaaja;
69        kentta['a'] = lisaammo;
70        kentta['e'] = lisaapolis;
71        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
72        Level.CreateBorders();
73        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
74    }
75
76    PhysicsObject lisaaTaso()
77    {
78        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
79        taso.Color = Color.Green;
80        return taso;
81    }
82    PhysicsObject lisaammo()
83    {
84        PhysicsObject ammo1 = PhysicsObject.CreateStaticObject(50, 40);
85        ammo1.Image = ammo1a;
86        ammo1.Tag = "ammo";
87        return ammo1;
88    }
89    PhysicsObject lisaapolis()
90    {
91        PhysicsObject polis = new PhysicsObject(150, 50);
92        polis.Mass = 6.0;
93        polis.Image = polis1; 
94       // polis. = new Cannon(10, 5);
95        AddCollisionHandler(polis,poliisiin);
96        return polis;
97    }
98    void poliisiin ( PhysicsObject polis, PhysicsObject kohde)
99       
100    {
101        if (kohde.Tag.ToString()=="panos")
102        {
103
104        }
105
106    }
107    PhysicsObject lisaaTahti()
108    {
109        PhysicsObject tahti = PhysicsObject.CreateStaticObject(20, 30);
110        tahti.Image = tollkinkuva;
111        tahti.Tag = "tolkki";
112        return tahti;
113    }
114
115    PlatformCharacter lisaaPelaaja()
116    {
117        pelaaja1 = new PlatformCharacter(40, 80);
118        pelaaja1.Mass = 5.0;
119        //pelaaja1.Image = pelaajanKuva;
120        pelaaja1.RightWalkingAnimation = new Animation(pelaajanKuva);
121        //juoppo2.image = pelaajankuva
122        pelaaja1.LeftWalkingAnimation = new Animation(pelaajankuva2);
123        pelaaja1.Weapon = new AssaultRifle(80, 20);
124        pelaaja1.Weapon.Ammo.Value = 10;
125        AddCollisionHandler(pelaaja1, pelaaja1törmäsi);
126        return pelaaja1;
127
128    }
129    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
130    {
131        ammus.Destroy();
132        Explosion rajahdys = new Explosion(10);
133        rajahdys.Position = ammus.Position;
134        Add(rajahdys);
135    }
136
137    void lisaaNappaimet()
138    {
139        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
140        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
141
142        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
143        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
144        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
145        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu");
146
147        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
148
149        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
150        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
151        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
152    }
153    void AmmuAseella()
154    {
155        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
156
157        if (ammus != null)
158        {
159            ammus.Tag = "ammus";
160            ammus.Size *= 1;
161            pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
162
163
164        }
165    }
166
167    void liikuta(PlatformCharacter hahmo, double nopeus)
168    {
169        hahmo.Walk(nopeus);
170    }
171
172    void hyppaa(PlatformCharacter hahmo, double nopeus)
173    {
174        hahmo.Jump(nopeus);
175    }
176
177    void pelaaja1törmäsi(PhysicsObject hahmo, PhysicsObject kohde)
178    {
179        if (kohde.Tag.ToString() == "tolkki")
180        {
181            maaliAani.Play();
182            MessageDisplay.Add("Keräsit tölkin hurraa!");
183            tolkkiLaskuri.Value++;
184            kohde.Destroy();
185        }
186        if (kohde.Tag.ToString() == "ammo")
187        {
188maaliAani.Play();
189        MessageDisplay.Add("sait panoksia");
190        pelaaja1.Weapon.Ammo.Value += 10;
191        kohde.Destroy();
192      }
193        }
194}
195
Note: See TracBrowser for help on using the repository browser.