source: 2010/24/joaamaka/The hole/Peli.cs @ 903

Revision 903, 4.2 KB checked in by joaamaka, 10 years ago (diff)

Jatkoin oman pelin tekemistä. Tein kentän ja muutin hahmoa ja muita tekstuureja.

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 1000;
10    const double hyppyVoima = 1000;
11
12    IntMeter pisteLaskuri;
13    ValueDisplay pisteNaytto;
14
15    PlatformCharacter olio;
16   
17    const int ruudunLeveys = 50;
18    const int ruudunKorkeus = 20;
19   
20    protected override void Begin()
21    {
22        Level.Width = 1500;
23        Level.Height = 1000;
24
25        // Luodaan pistelaskuri
26        pisteLaskuri = new IntMeter(0);
27
28        // luodaan pistelaskunäyttö
29        pisteNaytto = new ValueDisplay();
30        pisteNaytto.Text = "Syvyys: ";
31        pisteNaytto.X = Screen.RightSafe - 250;
32        pisteNaytto.Y = Screen.TopSafe - 50;
33        Add(pisteNaytto);    // lisätään peliin
34
35        // Zoomataan lähemmäksi
36        Camera.ZoomFactor = 2.0;
37
38        Camera.StayInLevel = true;
39
40        seuraavaKentta();
41        MessageDisplay.Add("Hyppää kuiluun!");
42    }
43
44    void seuraavaKentta()
45    {
46        ClearAll();
47        pisteLaskuri.Reset();
48
49        // Asetetaan painovoima
50        Gravity = new Vector(0, -1000);
51
52        luoKentta();
53        lisaaNappaimet();
54        Camera.Follow(olio);
55    }
56
57    void luoKentta()
58    {
59        Level.Background.CreateGradient(Color.Gray, Color.White);
60
61        TileMap ruudut = TileMap.FromFile("TextFile1.txt");
62        ruudut['-'] = lisaaTaso;
63        ruudut['*'] = lisaaPelaajat;
64        ruudut['_'] = lisaaTaso2;
65        ruudut['.'] = lisaaTaso3;
66        ruudut[','] = lisaaPiikit;
67        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
68        Level.CreateBorders();
69        AddCollisionHandler(olio, KasitteleOlionTormays);
70
71
72    }
73
74    PhysicsObject lisaaTaso()
75    {
76        PhysicsObject taso = PhysicsObject.CreateStaticObject(150,30);
77        Image image = Image.CreateGradient(150, 30, Color.White, Color.Gray);
78        taso.Image = image;
79        return taso;
80    }
81
82    PhysicsObject lisaaPelaajat()
83    {
84        olio = new PlatformCharacter(40, 40);
85        olio.Shape = Shapes.Rectangle;
86        olio.Color = Color.Black;
87        olio.Size = new Vector(40, 40);
88        olio.Y = 100;
89        olio.CanRotate = true;
90        olio.KineticFriction = 0.5;
91        olio.StaticFriction = 0.2;
92        olio.Mass = 1.0;
93        return olio;
94    }
95
96    PhysicsObject lisaaPiikit()
97    {
98        PhysicsObject piikit = new PhysicsObject(50, 50, Shapes.Rectangle);
99        piikit.IgnoresGravity = true;
100        piikit.IgnoresCollisionResponse = true;
101        piikit.X = 100;
102        piikit.Y = 50;
103        piikit.Image = LoadImage("Spikes");
104        return piikit;
105    }
106   
107    void KasitteleOlionTormays(PhysicsObject olio, PhysicsObject kohde)
108    {
109        //tähän kirjoitetaan mitä halutaan tehdä, kun pallo törmää johonkin
110    }
111
112
113    PhysicsObject lisaaTaso2()
114    {
115        PhysicsObject nuoli = new PhysicsObject(50, 50, Shapes.Rectangle);
116        nuoli.IgnoresGravity = true;
117        nuoli.IgnoresCollisionResponse = true;
118        nuoli.X = 100;
119        nuoli.Y = 50;
120        nuoli.Image = LoadImage("nuoli");
121        return nuoli;
122    }
123
124    PhysicsObject lisaaTaso3()
125    {
126        PhysicsObject nuoli2 = new PhysicsObject(50, 50, Shapes.Rectangle);
127        nuoli2.IgnoresGravity = true;
128        nuoli2.IgnoresCollisionResponse = true;
129        nuoli2.X = 100;
130        nuoli2.Y = 50;
131        nuoli2.Image = LoadImage("nuoli2");
132        return nuoli2;
133    }
134
135    void lisaaNappaimet()
136    {
137        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
138        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
139
140        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", olio, -nopeus);
141        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", olio, nopeus);
142        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", olio, hyppyVoima);
143    }
144
145
146    void liikuta(PlatformCharacter hahmo, double nopeus)
147    {
148        hahmo.Push(new Vector (nopeus, 0));
149    }
150
151    void hyppaa(PlatformCharacter hahmo, double voima)
152    {
153        hahmo.Jump(voima);
154    }
155}
Note: See TracBrowser for help on using the repository browser.