source: 2012/30/MatildaL/SquareGuard/SquareGuard/SquareGuard/SquareGuard.cs @ 3725

Revision 3725, 3.9 KB checked in by malirola, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SquareGuard : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter nelio;
16    Image tahtiKuva = LoadImage("tahti");
17
18    public override void Begin()
19    {
20        Gravity = new Vector(0, -1000);
21
22        LuoKentta();
23        LisaaNappaimet();
24
25        Camera.ZoomFactor = 0.1;
26        Camera.StayInLevel = true;
27
28    }
29
30    void LuoKentta()
31    {
32        TileMap kentta = TileMap.FromLevelAsset("kentta1");
33        kentta.SetTileMethod('#', LisaaTaso);
34        kentta.SetTileMethod('*', LisaaTahti);
35        kentta.SetTileMethod('N', LisaaNelio);
36        kentta.SetTileMethod('P', LisaaPallo);
37        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
38        Level.CreateBorders();
39        Level.BackgroundColor = Color.Harlequin;
40    }
41
42    void LisaaTaso(Vector paikka, double leveys, double korkeus)
43    {
44        PhysicsObject taso = PhysicsObject.CreateStaticObject(40, 15);
45        taso.Position = paikka;
46        taso.Color = Color.Black;
47        Add(taso);
48    }
49
50    void LisaaTahti(Vector paikka, double leveys, double korkeus)
51    {
52        PhysicsObject tahti = PhysicsObject.CreateStaticObject(30, 30);
53        tahti.IgnoresCollisionResponse = true;
54        tahti.Position = paikka;
55        tahti.Shape = Shape.Diamond;
56        tahti.Color = Color.Yellow;
57        tahti.Tag = "tahti";
58        Add(tahti);
59    }
60
61    void LisaaNelio(Vector paikka, double leveys, double korkeus)
62    {
63        nelio = new PlatformCharacter(20, 20);
64        nelio.Position = paikka;
65        nelio.Mass = 3.0;
66        nelio.Shape = Shape.Rectangle;
67        nelio.Color = Color.Red;
68        AddCollisionHandler(nelio, "tahti", TormaaTahteen);
69        Add(nelio);
70    }
71
72    void LisaaPallo(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject pallo = new PhysicsObject(30, 30);
75        pallo.Shape = Shape.Circle;
76        pallo.Color = Color.Blue;
77        pallo.Restitution = 1.0;
78        Add(pallo);
79
80        //pallo.IgnoresGravity = true;
81        pallo.IgnoresPhysicsLogics = true;
82        //pallo.IgnoresCollisionResponse = true;
83
84        Vector voima = Vector.FromLengthAndAngle(RandomGen.NextDouble(0.0, 1000.0), RandomGen.NextAngle());
85        Vector impulssi = new Vector(500.0, 0.0);
86        pallo.Hit(impulssi);
87
88    }
89
90    void LisaaNappaimet()
91    {
92        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
93        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
95
96        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", nelio, -nopeus);
97        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", nelio, nopeus);
98        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", nelio, hyppyNopeus);
99
100        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
101
102        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", nelio, -nopeus);
103        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", nelio, nopeus);
104        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", nelio, hyppyNopeus);
105
106        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
107    }
108
109    void Liikuta(PlatformCharacter hahmo, double nopeus)
110    {
111        hahmo.Walk(nopeus);
112    }
113
114    void Hyppaa(PlatformCharacter hahmo, double nopeus)
115    {
116        hahmo.Jump(nopeus);
117    }
118
119    void TormaaTahteen(PhysicsObject nelio, PhysicsObject tahti)
120    {
121        tahti.Destroy();
122    }
123}
Note: See TracBrowser for help on using the repository browser.