source: 2011/24/EkiM/nimeton/nimeton/nimeton/Peli.cs @ 1988

Revision 1988, 6.1 KB checked in by ekeimaja, 8 years ago (diff)

Nyt on kartta lähes valmiina, hahmot samaten.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Widgets;
7
8class Peli : PhysicsGame
9{
10      Image seinaoikeanKuva = LoadImage("seinaoikea");
11      Image seinavasemmanKuva = LoadImage("seinavasen");
12      Image lattianKuva = LoadImage("lattia");
13      Image koydenKuva = LoadImage("koysi");
14      Image nostinKuva = LoadImage("nostin");
15      Image tikkaatKuva = LoadImage("tikkaat");
16      Image lattiatikkaatKuva = LoadImage("lattiatikkaat");
17      Image pelaajaKuva = LoadImage("ukko");
18      Image vihunKuva = LoadImage("vihu1");
19
20      PlatformCharacter pelaaja;
21      PhysicsObject vihu1;
22      MessageWindow kysymysIkkuna;
23
24
25    public override void Begin()
26    {
27        Gravity = new Vector(0.0, -500.0);
28        LataaKentta("map.txt");
29        Camera.ZoomToLevel();
30
31        LuoOhjain();
32    }
33       
34    void LataaKentta(string map) 
35        {
36
37         TileMap merkit = TileMap.FromFile(map);
38
39         merkit.SetTileMethod('P', LuoPelaaja);
40         merkit.SetTileMethod('V', LuoVihu);
41         merkit.SetTileMethod('|', LuoSeinaoikea);
42         merkit.SetTileMethod('i', LuoSeinavasen);
43         merkit.SetTileMethod('_', LuoLattia);
44         merkit.SetTileMethod('L', LuoNostin);
45         merkit.SetTileMethod('H', LuoTikkaat);
46         merkit.SetTileMethod('h', LuoLattiatikkaat);
47         
48         merkit.Execute(70, 70);
49
50        }
51    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
52        {
53            pelaaja = new PlatformCharacter(40, 62);
54            pelaaja.CanRotate = false;
55            pelaaja.Mass = 40.0;
56            pelaaja.Position = paikka;
57            pelaaja.Image = pelaajaKuva;
58            AddCollisionHandler(pelaaja, VihuunTormays);
59            Add(pelaaja);
60
61        }
62    void LuoVihu(Vector paikka, double leveys, double korkeus)
63    {
64        vihu1 = new PhysicsObject(40, 62);
65        vihu1.CanRotate = false;
66        vihu1.Mass = 40.0;
67        vihu1.Position = paikka;
68        vihu1.Image = vihunKuva;
69        Add(vihu1);
70
71    }
72    void VihuunTormays(PhysicsObject pelaaja, PhysicsObject kohde)
73    {
74        IsMouseVisible = true;
75        if (kohde == vihu1)
76        {
77            InputWindow kysymysIkkuna = new InputWindow("Kysymys", "Nimesi?");
78            kysymysIkkuna.TextEntered += vastaus;
79            Add(kysymysIkkuna);
80        }
81    }
82
83    void vastaus(InputWindow Ikkuna)
84    {
85        string vastaus = Ikkuna.InputBox.Text;
86        kysymysIkkuna = new MessageWindow("Kysymys", "Hmm...en muista ketään tuon nimistä täällä...");
87        kysymysIkkuna.Closed += new Jypeli.Widgets.Window.WindowHandler(kysymysIkkuna_Closed);
88
89        Add(kysymysIkkuna);
90    }
91
92    void kysymysIkkuna_Closed(Window sender)
93    {
94        kysymysIkkuna = new MessageWindow("Kysymys", "Oletko uusi talossa?");
95        kysymysIkkuna.OKButton.Text="Kyllä olen";
96       
97        Add(kysymysIkkuna);
98    }
99
100
101    void LuoSeinaoikea(Vector paikka, double leveys, double korkeus)
102    {
103        PhysicsObject seinaoikea = PhysicsObject.CreateStaticObject(70, 70);
104        seinaoikea.Position = paikka;
105        seinaoikea.Image = seinaoikeanKuva;
106        Add(seinaoikea);
107    }
108       
109        void LuoSeinavasen(Vector paikka, double leveys, double korkeus)
110
111    {
112        PhysicsObject seinavasen = PhysicsObject.CreateStaticObject(70, 70);
113        seinavasen.Position = paikka;
114        seinavasen.Image = seinavasemmanKuva;
115        Add(seinavasen);
116
117    }
118
119    void LuoLattia(Vector paikka, double leveys, double korkeus)
120    {
121        PhysicsObject lattia = PhysicsObject.CreateStaticObject(70, 10);
122        lattia.Position = paikka;
123        lattia.Image = lattianKuva;
124        Add(lattia);
125    }
126
127    void LuoNostin(Vector paikka, double leveys, double korkeus)
128    {
129        PhysicsObject nostin = new PhysicsObject(69, 10);
130        nostin.Position = paikka;
131        nostin.Image = nostinKuva;
132        nostin.IgnoresPhysicsLogics = true;
133        nostin.CanRotate = false;
134        nostin.Mass = 10000;
135        nostin.Velocity = new Vector(0.0, 90.0);
136        AddCollisionHandler(nostin, SeinaanTormays);
137        Add(nostin);
138
139    }
140
141    void SeinaanTormays(PhysicsObject nostin, PhysicsObject seinavasen)
142    {
143        nostin.Velocity = -nostin.Velocity;
144    }
145
146
147    void LuoTikkaat(Vector paikka, double leveys, double korkeus)
148    {
149        PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(35, 150);
150        tikkaat.Position = paikka;
151        tikkaat.Image = tikkaatKuva;
152        Add(tikkaat);
153    }
154    void LuoLattiatikkaat(Vector paikka, double leveys, double korkeus)
155        {
156            PhysicsObject lattiatikkaat = PhysicsObject.CreateStaticObject(70, 70);
157            lattiatikkaat.Position = paikka;
158            lattiatikkaat.Image = lattiatikkaatKuva;
159            Add(lattiatikkaat);
160        }
161
162    void LuoOhjain()
163    {
164        //näppäin alhaalla
165        Keyboard.Listen(Key.Left, ButtonState.Down, pelaaja.Walk, null, -100.0);
166        Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja.Walk, null, 100.0);
167        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaaYlos, null);
168        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaaAlas, null);
169
170        //näppäin ylhäällä
171        Keyboard.Listen(Key.Left, ButtonState.Released, pelaaja.StopHorizontal, null);
172        Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja.StopHorizontal, null);
173        Keyboard.Listen(Key.Up, ButtonState.Released, pelaaja.StopVertical, null);
174        Keyboard.Listen(Key.Down, ButtonState.Released, pelaaja.StopVertical, null);
175    }
176
177
178        void LiikutaPelaajaaVasemmalle()
179        {
180            pelaaja.Hit(new Vector(-100, 0));
181        }
182
183        void LiikutaPelaajaaOikealle()
184        {
185            pelaaja.Hit(new Vector(100, 0));
186        }
187
188        void LiikutaPelaajaaYlos()
189        {
190            pelaaja.Jump (90);
191        }
192
193        void LiikutaPelaajaaAlas()
194        {
195            pelaaja.Hit(new Vector(0, -100));
196        }
197
198
199
200
201
202}
Note: See TracBrowser for help on using the repository browser.