source: 2010/31/rimapuha/NorsuPeli/NorsuPeli/Peli.cs @ 1598

Revision 1598, 3.6 KB checked in by rimapuha, 10 years ago (diff)

Tein vaikka mitä kivaa

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 200;
10    const double hyppyVoima = 4000;
11    const int ruudunLeveys = 50;
12    const int ruudunKorkeus = 50;
13
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter pelaaja2;
17
18    Image tahtiKuva = LoadImage("Untitled");       
19   
20    protected override void Begin()
21    {
22        Gravity = new Vector(0, -1000);
23
24        LuoKentta();
25        Camera.ZoomToLevel();
26        lisaaNappaimet();
27        Camera.Follow(pelaaja1);
28        Camera.ZoomFactor = 2.0;
29        Camera.StayInLevel = true;
30    }
31
32    void HeitaKranaatti(PlatformCharacter pelaaja)
33    {
34        Grenade kranaatti = new Grenade(4.0);
35        kranaatti.X = pelaaja.X + 10;
36        kranaatti.Y = pelaaja.Y + 10;
37        Add(kranaatti);
38        Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.Degrees(45));
39        kranaatti.Hit(heittoVoima);
40    }
41
42
43    void LuoKentta()
44    {
45        TileMap ruudut = TileMap.FromFile("kentta.txt");
46        ruudut['='] = LuoPalikka;
47        ruudut['*'] = LuoTahti;
48        ruudut['1'] = LuoPelaaja;
49        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
50    }
51
52    PhysicsObject LuoPalikka()
53    {
54        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
55        return palikka;
56    }
57
58    PhysicsObject LuoTahti()
59    {
60        PhysicsObject tahti = PhysicsObject.CreateStaticObject(25.0, 25.0);
61        tahti.Image = tahtiKuva;
62        return tahti;
63    }
64   
65    PhysicsObject LuoPelaaja()
66    {
67        pelaaja1 = new PlatformCharacter(40, 40);
68        pelaaja1.Mass = 4.0;
69        pelaaja1.Image = LoadImage("norsu");
70        return (PhysicsObject)pelaaja1;
71    }
72
73
74    PhysicsObject LuoPelaaja2()
75    {
76        pelaaja2 = new PlatformCharacter(40, 40);
77        pelaaja2.Mass = 4.0;
78        pelaaja2.Image = LoadImage("tahti");
79        return (PhysicsObject)pelaaja2;
80    }
81
82
83    void lisaaNappaimet()
84    {
85        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
86        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
87
88        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
89        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
90        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
91
92        Keyboard.Listen(Key.Down, ButtonState.Down, HeitaKranaatti, "Heitä kranaatti", pelaaja1);
93
94        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
95        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
96        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
97
98        Keyboard.Listen(Key.S, ButtonState.Down, HeitaKranaatti, "Heitä kranaatti", pelaaja1);
99
100
101        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
102
103        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
104        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
105        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
106    }
107
108
109
110    void liikuta(PlatformCharacter hahmo, double nopeus)
111    {
112        hahmo.Walk(nopeus);
113    }
114
115    void hyppaa(PlatformCharacter hahmo, double voima)
116    {
117        hahmo.Jump(voima);
118    }
119}
Note: See TracBrowser for help on using the repository browser.