source: 2010/30/vematata/SeikailuRoolipeli/Peli.cs @ 1347

Revision 1347, 3.1 KB checked in by vematata, 11 years ago (diff)
RevLine 
[1341]1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
[1347]8    Vector nopeusYlos = new Vector(0, 200);
9    Vector nopeusAlas = new Vector(0, -200);
10    Vector nopeusVasen = new Vector(-200, 0);
11    Vector nopeusOikea = new Vector(200, 0);
[1341]12
13    PhysicsObject hahmo;
14
15    protected override void Begin()
16    {
17        Testi();
18        AsetaOhjaimet();
19    }
20
[1347]21    void Testi()
22    {
23        Hahmo(0, 0);
24        Kivi(30, -200, -300);
25        Kivi(60, 100, 300);
26        Puu(20, 100, -400);
27        Seina(500, 10, 30, 30);
28        Seina(500, 10, 30, -30);
29
30    }
31
[1341]32    void Hahmo(double x, double y)
33    {
34        hahmo = new PhysicsObject(40,40);
35        hahmo.Shape = Shapes.Circle;
36        hahmo.Color = Color.Pink;
37        hahmo.X = x;
38        hahmo.Y = y;
39        Add(hahmo);
40        Camera.Follow(hahmo);
41    }
[1347]42   
43    PhysicsObject Kivi(double koko, double x, double y) 
[1341]44    {
[1347]45        PhysicsObject kivi = PhysicsObject.CreateStaticObject(koko, koko, Shapes.Circle);
46        kivi.Color = Color.DarkGray;
47        kivi.X = x;
48        kivi.Y = y;
[1341]49        Add(kivi);
[1347]50        return(kivi);
51    }
[1341]52
[1347]53    PhysicsObject Puu(double koko, double x, double y)
54    {
55        PhysicsObject runko = PhysicsObject.CreateStaticObject(koko, koko, Shapes.Circle);
56        PhysicsObject lehdet = new PhysicsObject(7*koko, 7*koko, Shapes.Circle);
57        lehdet.X = runko.X = x;
58        lehdet.Y = runko.Y = y;
59        lehdet.IgnoresCollisionResponse = true;
60        runko.Color = Color.Brown;
61        lehdet.Color = Color.ForestGreen;
62
63        Add(runko);
64        Add(lehdet);
65        return(runko);
66        return(lehdet);
[1341]67    }
[1347]68
69    PhysicsObject Seina(double leveys, double pituus, double x, double y)
70    {
71        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, pituus, Shapes.Rectangle);
72        seina.Color = Color.LightYellow;
73        seina.X = x;
74        seina.Y = y;
75        Add(seina);
76        return (seina);
77    }
78   
[1341]79    void AsetaOhjaimet()
80    {
[1347]81        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Liiku ylös", hahmo, nopeusYlos);
[1341]82        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, hahmo, Vector.Zero);
[1347]83        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Liiku alas", hahmo, nopeusAlas);
[1341]84        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, hahmo, Vector.Zero);
[1347]85        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "liiku vasemmalle", hahmo, nopeusVasen);
[1341]86        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, hahmo, Vector.Zero);
[1347]87        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liiku oikealle", hahmo, nopeusOikea);
[1341]88        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, hahmo, Vector.Zero);
89
[1347]90        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
91
92        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
93
[1341]94    }
95
96    void AsetaNopeus(PhysicsObject hahmo, Vector nopeus)
97    {
98        hahmo.Velocity = nopeus;
99    }
100
101}
Note: See TracBrowser for help on using the repository browser.