source: 2010/27/Vekakart/Catch The Rainbow/Catch The Rainbow/Peli.cs @ 1238

Revision 1238, 6.2 KB checked in by vekakart, 11 years ago (diff)

Valmistin pelin loppuun asti

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7
8{
9    const int ruudunleveys = 50;
10    const int ruudunkorkeus = 50;
11
12    Vector NopeusEteen = new Vector(200, 0);
13
14    PhysicsObject Crossword;
15    PhysicsObject Chandler;
16
17    PlatformCharacter Max;
18
19    SoundEffect OhYes;
20    SoundEffect WCAR;
21
22    int Rainbowlaskuri = 5;
23
24    protected override void Begin()
25    {
26        ClearAll();
27        OhYes = LoadSoundEffect("Oh yesh");
28        WCAR = LoadSoundEffect("Wanna c a rainbow");
29        //LuoMax();
30        AsetaOhjaimet();
31        LuoKentta();
32       
33    }
34    void LuoKentta()
35    {
36       
37
38        TileMap ruudut = TileMap.FromFile("Kentta 1.txt");
39        ruudut ['='] = LuoPalikka;
40        ruudut['C'] = LuoRainbow;
41        ruudut['J'] = LuoCrossword;
42        ruudut['9'] = LuoChandler;
43        ruudut['1'] = LuoMax;
44        ruudut.Insert(ruudunleveys, ruudunkorkeus);
45
46        Gravity = new Vector(0.0, -800.0);
47        Camera.FollowedObject = Max;
48    }
49    PhysicsObject LuoPalikka()
50    {
51        PhysicsObject Palikka = PhysicsObject.CreateStaticObject(50, 50);
52        Palikka.Color = Color.Brown;
53        return Palikka;
54    }
55   PhysicsObject LuoRainbow()
56    {
57        PhysicsObject Rainbow = PhysicsObject.CreateStaticObject(25, 25);
58        Rainbow.Image = Image.FromFile("Rainbow.png");
59        AddCollisionHandler(Rainbow, KasitteleRainbowTormays);
60        return Rainbow;
61    }
62
63   PhysicsObject LuoMax()
64    {
65        Max = new PlatformCharacter(35,45);
66        Max.Restitution = 0.0;
67        Max.CanRotate = false;
68        Max.Image = Image.FromFile("Max Mechanic.png");
69        Max.KineticFriction = 0.0;
70        Max.Tag = "Max";
71       // Add(Max);
72        return Max;
73    }
74
75    void AsetaOhjaimet()
76    {
77        Keyboard.Listen(Key.A, ButtonState.Down, PelaajaLiikuTaakse, "Liiku Taaksepäin");
78        Keyboard.Listen(Key.A, ButtonState.Released, PelaajaPysahdy, null);
79        Keyboard.Listen(Key.D, ButtonState.Down, PelaajaLiikuEteenpain, "Liiku Eteenpäin");
80        Keyboard.Listen(Key.D, ButtonState.Released, PelaajaPysahdy, null);
81        Keyboard.Listen(Key.W, ButtonState.Down, PelaajaHypaa, "Hyppää");
82
83
84        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
85        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
86    }
87    void PelaajaLiikuEteenpain()
88    {
89        Max.Walk(300);
90        Max.Image = Image.FromFile("Max Mechanic.png");
91    }
92
93    void PelaajaLiikuTaakse()
94    {
95        Max.Walk (-300);
96        Max.Image = Image.FromFile("max mechanic2.png");
97    }
98
99    void PelaajaPysahdy()
100    {
101        Vector nopeus = new Vector(0.0, 0);
102    }
103
104    void PelaajaHypaa()
105    {
106        Max.Jump(1000);
107    }
108    PhysicsObject LuoCrossword()
109    {
110        Crossword = new PhysicsObject(35.0, 45.0);
111        Crossword.Image = Image.FromFile("Crossword.png");
112
113        Timer ajastin = new Timer();
114        ajastin.Tag = Crossword;
115        ajastin.Interval = 0.1;
116        ajastin.Trigger += Tekoaly;
117        Add (ajastin);
118        ajastin.Start();
119        return Crossword;
120    }
121    void Tekoaly(Timer sender)
122    {
123        PhysicsObject vihollinen = (PhysicsObject)sender.Tag;
124        double etaisyys = vihollinen.X - Max.X;
125        if (etaisyys < 0)
126        {
127            etaisyys = etaisyys * -1;
128        }
129        if (etaisyys < 200 && voiheittaa && vihollinen.Y > Max.Y)
130        {
131            if (vihollinen.X < Max.X)
132            {
133                vihollinen.Image = LoadImage("Crossword2");
134                PhysicsObject Ase = LuoPuukko();
135                Ase.Image = LoadImage("knife1");
136                Ase.X = vihollinen.X+20;
137                Ase.Y = vihollinen.Y;
138                Ase.Hit(new Vector(500, 0));
139                Add(Ase);
140               
141               
142            }
143            else
144            {
145                vihollinen.Image = LoadImage("Crossword");
146                PhysicsObject Ase = LuoPuukko();
147                Ase.Image = LoadImage("knife1");
148                Ase.X = vihollinen.X-20;
149                Ase.Y = vihollinen.Y;
150                Ase.Hit(new Vector(-500, 0));
151                Add(Ase);
152            }
153            voiheittaa = false;
154            Timer.SingleShot(1, saaheittaa);
155        }
156        sender.Start();
157    }
158    PhysicsObject LuoChandler()
159    {
160        Chandler = PhysicsObject.CreateStaticObject(20, 45);
161        Chandler.Image = LoadImage ("Chandler1");
162        Image[] chandlerinani = LoadImages("Chandler1", "Chandler2");
163        Chandler.Animation = new Animation(chandlerinani);
164        Chandler.Animation.FPS = 2;
165        Chandler.Animation.Start();
166
167        Timer ajastin = new Timer();
168        ajastin.Tag = Chandler;
169        ajastin.Interval = 2.0;
170        ajastin.Trigger += Aani;
171        Add(ajastin);
172        ajastin.Start();
173        return Chandler;
174    }
175    PhysicsObject LuoPuukko()
176    {
177        PhysicsObject Puukko = new PhysicsObject(20.0, 5.0);
178        Puukko.MaximumLifetime = TimeSpan.FromSeconds(1);
179        AddCollisionHandler(Puukko, KasittelePuukonTormays);
180        Puukko.Tag = "p";
181        return Puukko;
182    }
183
184    void KasittelePuukonTormays(PhysicsObject puukko, PhysicsObject kohde)
185    {
186        if (kohde.Tag.ToString() == "Max")
187        {
188            Timer.SingleShot(1.5, Begin);
189            Max.Image = LoadImage("Max Mechanic D");
190            ClearControls();
191        }
192
193    }
194    bool voiheittaa = true;
195
196    void saaheittaa()
197    {
198        voiheittaa = true;
199    }
200    void KasitteleRainbowTormays(PhysicsObject Rainbow, PhysicsObject kohde)
201    {
202        if (kohde.Tag.ToString() == "Max")
203        {
204            Remove(Rainbow);
205            Rainbowlaskuri--;
206
207            OhYes.Play();
208            if (Rainbowlaskuri == 0)
209            {
210                Begin();
211            }
212        }
213
214    }
215    void Aani(Timer sender)
216    {
217            PhysicsObject bing = (PhysicsObject)sender.Tag;
218        double etaisyys = bing.X - Max.X;
219        if (etaisyys < 0)
220        {
221            etaisyys = etaisyys * -1;
222        }
223        if (etaisyys < 200)
224        {
225            WCAR.Play();
226        }
227    }
228}
Note: See TracBrowser for help on using the repository browser.