source: 2010/31/jumijoky/taso1/tasohyppely/tasohyppely/Peli.cs @ 1610

Revision 1610, 3.7 KB checked in by arhetaka, 10 years ago (diff)
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 = 1500;
11
12    const int ruudunLeveys = 50;
13    const int ruudunKorkeus = 50;
14   
15   
16
17
18    PlatformCharacter pelaaja1;
19
20    protected override void Begin()
21    {
22        Gravity = new Vector(0, -1000);
23        LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor());
24        LuoKentta();
25        lisaaNappaimet();
26        //lisaaPelaajat();
27        Camera.Follow(pelaaja1);
28        Camera.ZoomFactor = -500;
29
30        Camera.StayInLevel = true;
31
32        for (int laskuri = 0; laskuri < 40; laskuri++)
33        {
34            LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor());
35
36        }
37    }
38
39   
40   
41
42        void LuoKentta()
43    {
44        TileMap ruudut = TileMap.FromFile("kentta.txt");
45        ruudut['='] = LuoPalikka;
46        ruudut['1'] = LuoPelaaja1;
47        ruudut['!'] = LuoTahti;
48       
49       
50        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
51    }
52
53    PhysicsObject LuoPalikka()
54    {
55        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
56        return palikka;
57    }
58
59    PhysicsObject LuoPelaaja1()
60    {
61         pelaaja1 = new PlatformCharacter(40.0, 50.0);
62
63         pelaaja1.Image = LoadImage("Ukko Oikea"); 
64        return pelaaja1;
65       
66    }
67    PhysicsObject LuoTahti()
68    {
69        PhysicsObject tahti = PhysicsObject.CreateStaticObject(50.0, 50.0);
70        tahti.Image = LoadImage("tahti");
71        return tahti;
72    }
73    void KasittelePallonTormays(PhysicsObject tahti, PhysicsObject kohde)
74    {
75        AddCollisionHandler(tahti, KasittelePallonTormays);
76
77    }
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95       
96
97
98   
99
100    void lisaaPelaajat()
101     {
102        pelaaja1 = new PlatformCharacter(25, 50);
103        pelaaja1.Mass = 4.0;
104        pelaaja1.Image = LoadImage("Ukko Vasen");
105        pelaaja1.X = 0;
106        pelaaja1.Y = Level.Bottom + 120;
107
108        Add(pelaaja1);
109       
110       
111     }
112
113    void lisaaNappaimet()
114    {
115        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
116        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
117
118        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
119        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
120        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
121
122        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
123
124        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
125        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
126        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
127    }
128
129    void liikuta(PlatformCharacter pelaaja1 , double nopeus)
130    {
131        pelaaja1.Walk(nopeus);
132    }
133
134    void hyppaa(PlatformCharacter pelaaja1, double voima)
135    {
136        pelaaja1.Jump(voima);
137    }
138
139
140    void LuoPallo(double x, double y, Color väri)
141    {
142        PhysicsObject pallo = new PhysicsObject(50.0, 50.0);
143    pallo.Shape = Shapes.Circle;
144    pallo.Position = new Vector(x, y);
145    pallo.Color = väri;
146    Add(pallo);
147    pallo.Restitution = 1.01;
148   
149
150    }
151
152}
Note: See TracBrowser for help on using the repository browser.