source: 2010/27/viaawipi/samsh cubes/Peli.cs @ 1127

Revision 1127, 3.9 KB checked in by paaaanro, 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 = 3000;
11
12    IntMeter pisteLaskuri;
13    Label pisteNaytto;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter pelaaja2;
17
18
19    protected override void Begin()
20    {
21        Level.Width = 2000;
22        Level.Height = 1000;
23
24        pisteLaskuri = new IntMeter(0);
25
26        // Zoomataan lähemmäksi
27        Camera.ZoomFactor = 1.0;
28
29        Camera.StayInLevel = true;
30
31        seuraavaKentta();
32        MessageDisplay.Add("Etsi iso tähti!");
33    }
34
35    void seuraavaKentta()
36    {
37       
38        // Asetetaan painovoima
39        Gravity = new Vector(0, -1000);
40
41        // luodaan pistelaskunäyttö
42        pisteNaytto = new Label();
43        pisteNaytto.X = Screen.RightSafe - 250;
44        pisteNaytto.Y = Screen.TopSafe - 50;
45        pisteNaytto.BindTo(pisteLaskuri);
46        Add(pisteNaytto);
47
48        luoKentta();
49        lisaaNappaimet();
50        Camera.Follow(pelaaja1);
51    }
52
53    void luoKentta()
54    {
55        Level.CreateBorders();
56        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
57        Level.Background.Image = LoadImage("aa");
58        lisaaTaso(-200, -350);
59        lisaaTaso(0, -400);
60        lisaaTaso(200, -350); 
61        lisaaTaso(-400, -300);
62        lisaaTaso(50, -400);
63        lisaaTaso(400, -300);
64        lisaaPelaajat();
65    }
66
67    void lisaaTaso(double x, double y)
68    {
69        PhysicsObject taso = PhysicsObject.CreateStaticObject(200, 100);
70        taso.Color = Color.Green;
71        taso.X = x;
72        taso.Y = y;
73        taso.Image = LoadImage("dd");
74        Add(taso);
75    }
76
77    void lisaaPelaajat()
78    {
79        pelaaja1 = new PlatformCharacter(40, 40);
80        pelaaja1.Mass = 4.0;
81        pelaaja1.Image = LoadImage("aa");
82        pelaaja1.X = 100;
83        pelaaja1.Y =120;
84       
85        pelaaja2 = new PlatformCharacter(40, 40);
86        pelaaja2.Mass = 4.0;
87        pelaaja2.Image = LoadImage("ss");
88        pelaaja2.X = -100;
89        pelaaja2.Y =120;
90
91        AddCollisionHandler(pelaaja1, PelaajaOsuu);
92        AddCollisionHandler(pelaaja2, PelaajaOsuu);
93
94        Add(pelaaja1);
95        Add(pelaaja2);
96    }
97
98    void lisaaNappaimet()
99    {
100        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
101        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
102
103        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
104        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
105        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
106
107        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
108        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
109        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
110
111
112        lisaaGamePadNappaimet(ControllerOne);
113    }
114
115    void lisaaGamePadNappaimet(GamePad controller)
116    {
117        controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
118
119        controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
120        controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
121        controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
122    }
123
124    void liikuta(PlatformCharacter hahmo, double nopeus)
125    {
126        hahmo.Walk(nopeus);
127    }
128
129    void hyppaa(PlatformCharacter hahmo, double voima)
130    {
131        hahmo.Jump(voima);
132    }
133
134    void PelaajaOsuu(PhysicsObject collidingObject, PhysicsObject otherObject)
135    {
136        {
137        }
138    }
139}
Note: See TracBrowser for help on using the repository browser.