source: 2011/26/LasseV/ShapeRace/ShapeRace/ShapeRace/Peli.cs @ 2312

Revision 2312, 4.3 KB checked in by lavirtan, 8 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 100;
13    const int RUUDUN_KOKO = 46;
14
15    PlatformCharacter pelaaja1;
16   
17
18   
19    Image tahtiKuva = LoadImage("tahti");
20    Image Ylapiikki = LoadImage("Ylapiikki");
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25        Gravity = new Vector(0, -1000);
26       
27
28        luoKentta();
29        lisaaNappaimet();
30       
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35
36    void luoKentta()
37    {
38        TileMap kentta = TileMap.FromFile("kentta1.txt");
39        kentta['#'] = lisaaTaso;
40        kentta['*'] = lisaaTahti;
41        kentta['P'] = lisaaPelaaja;
42        kentta['v'] = lisaaYlaPiikki;
43        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
44        Level.CreateBorders();
45        Level.BackgroundColor = Color.DarkGray;
46    }
47
48    PhysicsObject lisaaYlaPiikki()
49    {
50        PhysicsObject piikki = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
51        piikki.Image = Ylapiikki;
52        piikki.Tag = "piikki";
53        piikki.Height = 100;
54        piikki.Width = 100;
55        piikki.Y = 
56        return piikki;
57    }
58   
59    PhysicsObject lisaaTaso()
60    {
61        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
62        taso.Color = Color.Gray;
63        return taso;
64    }
65
66    PhysicsObject lisaaTahti()
67    {
68        PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
69        tahti.Image = tahtiKuva;
70        tahti.Tag = "tahti";
71        return tahti;
72    }
73
74    PlatformCharacter lisaaPelaaja()
75    {
76
77
78        pelaaja1 = new PlatformCharacter(30, 30);
79        pelaaja1.Mass = 10.0;
80        pelaaja1.Shape = Shape.Circle;
81        pelaaja1.Color = Color.Orange;
82        AddCollisionHandler(pelaaja1, osuTahteen);
83
84       
85        return pelaaja1;
86    }
87
88
89    void lisaaNappaimet()
90    {
91        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
92        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
93
94        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
95        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
96        Keyboard.Listen(Key.B, ButtonState.Down, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
97        Keyboard.Listen(Key.Space, ButtonState.Pressed, vaihdapainovoimaa, "Vaihda painovoiman suuntaa", pelaaja1);
98        Keyboard.Listen(Key.Down, ButtonState.Pressed, vaihdapienemmaksi, "Muutu pieneksi", pelaaja1);
99        Keyboard.Listen(Key.Up, ButtonState.Pressed, vaihdasuuremmaksi,"Muutu takaisin suureksi", pelaaja1);
100    }
101
102    void vaihdasuuremmaksi(PlatformCharacter pelaaja1)
103    {
104        pelaaja1.Height = 30;
105        pelaaja1.Width = 30;
106        pelaaja1.Color = Color.Orange;
107    }
108   
109   
110   
111   
112    void vaihdapainovoimaa(PlatformCharacter pelaaja1)
113    {
114        if (pelaaja1.Height > 16)
115        {
116           
117       
118            if (Gravity.Y < 0)
119            {
120                Gravity = new Vector(0, 1000);
121                pelaaja1.Jump(nopeus);
122            }
123
124            else
125            {
126                Gravity = new Vector(0, -1000);
127                //pelaaja1.Hit(new Vector(0, -1000));
128            }
129        }
130    }
131
132    void vaihdapienemmaksi(PlatformCharacter pelaaja1)
133    {       
134        pelaaja1.Height = 16; 
135        pelaaja1.Width = 16;
136        pelaaja1.Color = Color.DarkOrange;
137    }
138
139    void liikuta(PlatformCharacter hahmo, double nopeus)
140    {
141        hahmo.Walk(nopeus);
142    }
143
144    void hyppaa(PlatformCharacter hahmo, double nopeus)
145    { 
146        if (pelaaja1.Height < 30)
147        {
148            hahmo.Jump(nopeus);
149        }
150       
151       
152    }
153
154    void osuTahteen(PhysicsObject hahmo, PhysicsObject kohde)
155    {
156        if (kohde.Tag.ToString() == "tahti")
157        {
158            maaliAani.Play();
159            MessageDisplay.Add("Keräsit tähden!");
160            kohde.Destroy();
161        }
162    }
163
164
165}
Note: See TracBrowser for help on using the repository browser.