source: 2017/23/NinaH/Kebab Run/Kebab Run/Kebab_Run/Kebab_Run.cs @ 8443

Revision 8443, 5.5 KB checked in by nupeohje, 2 years ago (diff)

Pelissä on kebabeläin, joka pakenee karvakättä.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Kebab_Run : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter kebabelain;
16    PhysicsObject ak47;
17    PhysicsObject paistinpannu;
18    PhysicsObject teurstaja;
19    PhysicsObject karvakasi;
20    GameObject beach;
21
22    Image kebabelaimenKuva = LoadImage("kebabelainvalkoinentausta");
23    Image ak47Kuva = LoadImage("ak47");
24    Image paistinpannuKuva = LoadImage("paistinpannu");
25    Image teurastajaKuva = LoadImage("teu");
26    Image beachKuva = LoadImage("beach");
27
28    int kenttaNro = 1;
29
30    public override void Begin()
31    {
32
33        SeuraavaKentta();
34
35       
36    }
37
38    void LuoKentta(string kenttaTiedostonNimi)
39    {
40        Level.CreateBorders();
41        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi);
42        kentta.SetTileMethod('L', LisaaKebabelain); 
43        kentta.SetTileMethod('A', LisaaAk);
44        kentta.SetTileMethod('T', LisaaTeurastaja);
45        kentta.SetTileMethod('P', LisaaPaistinpannu);
46        kentta.SetTileMethod('K', LisaaKarvakasi);
47        kentta.SetTileMethod('B', LisaaBeach);
48        kentta.Execute();
49
50    }
51
52    void LisaaKarvakasi(Vector paikka, double leveys, double korkeus)
53    {
54        PhysicsObject karvakasi = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        karvakasi.Position = paikka;
56        karvakasi.Image = ak47Kuva;
57        karvakasi.Tag = "lassi";
58        karvakasi.Size = new Vector(70.0, 70.0);
59        Add(karvakasi);
60    }
61
62    void LisaaPaistinpannu(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject paistinpannu = PhysicsObject.CreateStaticObject(leveys, korkeus);
65        paistinpannu.Position = paikka;
66        paistinpannu.Image = paistinpannuKuva;
67        paistinpannu.Tag = "lassi";
68        paistinpannu.Size = new Vector(70.0, 70.0);
69        Add(paistinpannu);
70    }
71   
72    void LisaaTeurastaja(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject Teurastaja = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        Teurastaja.Position = paikka;
76        Teurastaja.Image = teurastajaKuva;
77        Teurastaja.Tag = "lassi";
78        Teurastaja.Size = new Vector(60.0, 100.0);
79        Add(Teurastaja);
80    }
81
82    void LisaaBeach(Vector paikka, double leveys, double korkeus) 
83{
84        GameObject beach = new GameObject(Screen.Width, Screen.Height);
85        beach.Image = beachKuva;
86        Add(beach, -3);
87        Layers[-3].RelativeTransition = new Vector(0.4, 0.5);
88
89}
90
91    void LisaaAk(Vector paikka, double leveys, double korkeus)
92    {
93        PhysicsObject ak = PhysicsObject.CreateStaticObject(leveys, korkeus);
94        ak.IgnoresCollisionResponse = true;
95        ak.Position = paikka;
96        ak.Image = ak47Kuva;
97        ak.Tag = "ase";
98        ak.Size = new Vector(90.0, 70.0);
99        Add(ak);
100    }
101
102    void LisaaKebabelain(Vector paikka, double leveys, double korkeus)
103    {
104        kebabelain = new PlatformCharacter(leveys, korkeus);
105        kebabelain.Position = paikka;
106        kebabelain.Mass = 4.0;
107        kebabelain.Size = new Vector(70.0, 70.0);
108        kebabelain.Image = kebabelaimenKuva;
109        AddCollisionHandler<PlatformCharacter, PhysicsObject>(kebabelain, "ase", TormaaAk);
110        Add(kebabelain);
111    }
112
113    void SeuraavaKentta()
114    {
115        ClearAll();
116
117        if (kenttaNro == 1) LuoKentta("kentta1");
118        else if (kenttaNro == 2) LuoKentta("kentta2");
119        else if (kenttaNro == 3) LuoKentta("kentta3");
120        else if (kenttaNro > 3) Exit();
121        Gravity = new Vector(0, -500);
122
123        LisaaNappaimet();
124
125        Camera.Follow(kebabelain);
126        Camera.ZoomFactor = 1.2;
127        Camera.StayInLevel = true;
128    }
129    void LisaaNappaimet()
130    {
131        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
132        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
133
134        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "liikkuu vasemmalle", kebabelain, nopeus);
135        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "liikkuu vasemmalle", kebabelain, -nopeus);
136        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "kebu hyppää", kebabelain, hyppyNopeus);
137        Keyboard.Listen(Key.Space, ButtonState.Down, Ammuaseella, "kebu ampuu");
138    }
139
140    void Liikuta(PlatformCharacter kebabelain, double nopeus)
141    {
142        kebabelain.Walk(nopeus);
143    }
144
145    void Hyppaa(PlatformCharacter kebabelain, double nopeus)
146    {
147        kebabelain.Jump(nopeus);
148    }§
149
150    void TormaaAk(PlatformCharacter kebabelain, PhysicsObject ase)
151    {
152       
153        MessageDisplay.Add("sait aseen!");       
154        ase.Destroy();
155        kebabelain.Weapon = new AssaultRifle(70.0, 40.0);
156    }
157
158    void LiikutaTaustaa()
159{
160   foreach ( GameObject taustakuva in taustakuvat )
161   {
162      taustakuva.Y += scrollausnopeus;
163
164      if ( scrollausnopeus < 0 && taustakuva.Top < Level.Bottom )
165      {
166         taustakuva.Bottom = ekaTaustakuva.Top;
167         ekaTaustakuva = taustakuva;
168      }
169      else if ( scrollausnopeus > 0 && taustakuva.Bottom > Level.Top )
170      {
171         taustakuva.Top = ekaTaustakuva.Bottom;
172         ekaTaustakuva = taustakuva;
173      }
174
175    void Ammuaseella()
176    {
177        PhysicsObject ammus = kebabelain.Weapon.Shoot();
178    }
179
180
181
182
183
184}
Note: See TracBrowser for help on using the repository browser.