source: 2016/24/EveliinaL/Space_Run/Space_Run/Space_Run/Space_Run.cs @ 7342

Revision 7342, 5.9 KB checked in by karkaite, 4 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 Space_Run : PhysicsGame
10{
11    private Image[] SpacemanRun = LoadImages("1", "2", "3", "4");
12    private Animation SpacemanRunAnimaatio;
13    const double nopeus = 200;
14    const double hyppyNopeus = 750;
15    const int RUUDUN_KOKO = 40;
16
17    PlatformCharacter pelaaja1;
18
19    IntMeter pisteLaskuri;
20
21    Image pelaajanKuva = LoadImage("Spaceman");
22    Image alienKuva = LoadImage("Alien");
23    Image taustakuva = LoadImage("Space");
24    Image kultaharkkoKuva = LoadImage("Kultaharkko");
25    Image laavaKuva = LoadImage("Laava");
26    Image maaliKuva = LoadImage("MaaliLippu");
27    SoundEffect maaliAani = LoadSoundEffect("maali");
28
29    public override void Begin()
30    {
31        SpacemanRunAnimaatio = LoadAnimation("SpacemanRun");
32        Gravity = new Vector(0, -1000);
33
34        LuoKentta();
35        LisaaNappaimet();
36        LuoPisteLaskuri();
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40    }
41
42    void LuoKentta()
43    {
44        TileMap kentta = TileMap.FromLevelAsset("kentta1");
45        kentta.SetTileMethod('#', LisaaTaso);
46        kentta.SetTileMethod('*', LisaaAlien);
47        kentta.SetTileMethod('N', LisaaPelaaja);
48        kentta.SetTileMethod('-', LisaaKultaharkko);
49        kentta.SetTileMethod('_', LisaaLaava);
50        kentta.SetTileMethod('M', LisaaMaali);
51        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
52        Level.CreateBorders();
53        Level.Background.Image = taustakuva;
54    }
55
56    void LisaaTaso(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        taso.Position = paikka;
60        taso.Color = Color.Gray;
61        Add(taso);
62    }
63
64    void LisaaAlien(Vector paikka, double leveys, double korkeus)
65    {
66        PlatformCharacter Alien = new PlatformCharacter(leveys, korkeus);
67        Alien.Position = paikka;
68        Alien.Image = alienKuva;
69        Alien.MirrorImage();
70        Alien.Tag = "Alien";
71        Add(Alien);
72        PlatformWandererBrain aivot = new PlatformWandererBrain();
73        Alien.Brain = aivot;
74    }
75
76    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
77    {
78        pelaaja1 = new PlatformCharacter(leveys, korkeus);
79        pelaaja1.Position = paikka;
80        pelaaja1.Mass = 4.0;
81        pelaaja1.Image = pelaajanKuva;
82        AddCollisionHandler(pelaaja1, "Alien", TormaaAlieniin);
83        AddCollisionHandler(pelaaja1, "Laava", TormaaLaavaan);
84        AddCollisionHandler(pelaaja1, "Kultaharkko", TormaaKultaan);
85        SpacemanRunAnimaatio.FPS = 8;
86        Add(pelaaja1);
87        pelaaja1.AnimWalk = SpacemanRunAnimaatio;
88        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
89    }
90
91    void LisaaKultaharkko(Vector paikka, double leveys, double korkeus)
92    {
93        PhysicsObject Kultaharkko = PhysicsObject.CreateStaticObject(leveys, korkeus);
94        Kultaharkko.IgnoresCollisionResponse = true;
95        Kultaharkko.Position = paikka;
96        Kultaharkko.Image = kultaharkkoKuva;
97        Kultaharkko.Tag = "Kultaharkko";
98        Add(Kultaharkko);
99    }
100    void LisaaNappaimet()
101    {
102        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
103        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
104
105        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
106        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
107        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
108
109        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
110
111        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
112        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
113        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
114
115        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
116    }
117
118    void Liikuta(PlatformCharacter hahmo, double nopeus)
119    {
120        hahmo.Walk(nopeus);
121    }
122
123    void Hyppaa(PlatformCharacter hahmo, double nopeus)
124    {
125        hahmo.Jump(nopeus);
126    }
127
128    void TormaaAlieniin(PhysicsObject hahmo, PhysicsObject alien)
129    {
130        hahmo.Destroy();
131    }
132    void TormaaKultaan(PhysicsObject hahmo, PhysicsObject Kultaharkko)
133    {
134        Kultaharkko.Destroy();
135        pisteLaskuri.Value += 100;
136    }
137
138    void LuoPisteLaskuri()
139    {
140        pisteLaskuri = new IntMeter(0);
141
142        Label pisteNaytto = new Label();
143        pisteNaytto.X = Screen.Left + 100;
144        pisteNaytto.Y = Screen.Top - 100;
145        pisteNaytto.TextColor = Color.Black;
146        pisteNaytto.Color = Color.LightGreen;
147
148        pisteNaytto.BindTo(pisteLaskuri);
149        Add(pisteNaytto);
150    }
151    void LisaaLaava(Vector paikka, double leveys, double korkeus)
152    {
153        PhysicsObject Laava = PhysicsObject.CreateStaticObject(leveys, korkeus);
154        Laava.IgnoresCollisionResponse = true;
155        Laava.Position = paikka;
156        Laava.Image = laavaKuva;
157        Laava.Tag = "Laava";
158        Add(Laava);
159    }
160    void TormaaLaavaan(PhysicsObject hahmo, PhysicsObject Laava)
161    {
162        hahmo.Destroy();
163    }
164    void LisaaMaali(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject MaaliLippu = PhysicsObject.CreateStaticObject(leveys, korkeus);
167        MaaliLippu.IgnoresCollisionResponse = true;
168        MaaliLippu.Position = paikka;
169        MaaliLippu.Image = maaliKuva;
170        MaaliLippu.Tag = "Maali";
171        Add(MaaliLippu);
172    }
173}
Note: See TracBrowser for help on using the repository browser.