source: 2012/27/NikoKa/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3675

Revision 3675, 5.1 KB checked in by nikatais, 10 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 Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Spyro");
18    Image viholliskuva= LoadImage("Teletapit");
19    Image pääviholliskuva = LoadImage("Nuunuu");
20
21    SoundEffect maaliAani = LoadSoundEffect("maali"); 
22
23    public override void Begin()
24    {
25        Gravity = new Vector(0, -1000);
26
27        LuoKentta();
28        LisaaNappaimet();
29
30        Camera.Follow(pelaaja1);
31        Camera.ZoomFactor = 1.2;
32        Camera.StayInLevel = true;
33    }
34
35    void LuoKentta()
36    {
37        TileMap kentta = TileMap.FromLevelAsset("kentta1");
38        kentta.SetTileMethod('#', LisaaTaso);
39        kentta.SetTileMethod('T', LisaaTeletapit);
40        kentta.SetTileMethod('S', LisaaPelaaja);
41        kentta.SetTileMethod('N', LisaaNuunuu);
42        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
43        Level.CreateBorders();
44        Level.Background.Image = LoadImage("Teletappimaa");
45    }
46
47    void LisaaTaso(Vector paikka, double leveys, double korkeus)
48    {
49        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
50        taso.Position = paikka;
51        taso.Color = Color.Purple;
52        Add(taso);
53    }   
54
55    void LisaaTeletapit(Vector paikka, double leveys, double korkeus)
56    {
57        PlatformCharacter Teletapit = new PlatformCharacter(leveys, korkeus);
58        Teletapit.IgnoresCollisionResponse = true;
59        Teletapit.Position = paikka;
60        Teletapit.Image = viholliskuva;
61        Teletapit.Tag = "Teletapit";
62        Add(Teletapit);
63        //Teletapit.CollisionIgnoreGroup = 2;
64        //PlatformWandererBrain aivo = new PlatformWandererBrain();
65        //Teletapit.Brain = aivo;
66    }
67
68    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
69    {
70        pelaaja1 = new PlatformCharacter(leveys, korkeus);
71        pelaaja1.Position = paikka;
72        pelaaja1.Mass = 4.0;
73        pelaaja1.Image = pelaajanKuva;
74        pelaaja1.RightWalkingAnimation = new Animation(pelaajanKuva);
75        pelaaja1.LeftWalkingAnimation = new Animation(Image.Mirror(pelaajanKuva));
76        AddCollisionHandler(pelaaja1, "Nuunuu", TormaaTahteen);
77       
78        Keyboard.Listen( Key.Space, ButtonState.Down, ammutulella, "Ammu" );
79        pelaaja1.CollisionIgnoreGroup = 1;
80        Add(pelaaja1);
81     
82 
83    }
84    void ammutulella()
85    {
86        PhysicsObject tuli = new PhysicsObject(10, 10);
87        tuli.Color = Color.OrangeRed;
88        Add(tuli);
89        tuli.Position = pelaaja1.Position;
90        tuli.IgnoresGravity = true;
91        Vector suunta = new Vector(pelaaja1.FacingDirection.GetVector().X * 200, 0);
92        tuli.Hit(suunta);
93        tuli.CollisionIgnoreGroup = 1;
94        tuli.MaximumLifetime = TimeSpan.FromSeconds(1.0);
95        AddCollisionHandler(tuli, "Teletapit", tuliosuu);
96
97
98
99    }
100    void tuliosuu(PhysicsObject tuli, PhysicsObject Teletapit)
101    {
102        Teletapit.Destroy();
103    }
104
105    void LisaaNuunuu(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject Nuunuu = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        Nuunuu.IgnoresCollisionResponse = true;
109        Nuunuu.Position = paikka;
110        Nuunuu.Image = pääviholliskuva;
111        Nuunuu.Tag = "Nuunuu";
112        Add(Nuunuu);
113    }
114
115    void LisaaNappaimet()
116    {
117        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
118        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
119        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
120
121        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
122        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
123        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
124
125        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
126
127        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
128        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
129        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
130
131        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
132    }
133
134    void Liikuta(PlatformCharacter hahmo, double nopeus)
135    {
136        hahmo.Walk(nopeus);
137    }
138
139    void Hyppaa(PlatformCharacter hahmo, double nopeus)
140    {
141        hahmo.Jump(nopeus);
142    }
143
144    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject Nuunuu)
145    {
146        maaliAani.Play();
147        MessageDisplay.Add("Keräsit Nuunuun!");
148        Nuunuu.Destroy();
149       
150       
151    }
152}   
153   
Note: See TracBrowser for help on using the repository browser.