source: 2015/30/EliasHu/RescueRanger/RescueRanger/RescueRanger/RescueRanger.cs @ 6841

Revision 6841, 4.4 KB checked in by elalhutt, 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 RescueRanger : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 50;
13    const int RUUDUN_KOKO = 40;
14
15    IntMeter pistelaskuri;
16
17    PlatformCharacter pelaaja1;
18
19    Image pelaajanKuva = LoadImage("norsu");
20    Image tahtiKuva = LoadImage("tahti");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26        aloitapeli();
27    }
28
29    void aloitapeli()
30    {
31        ClearAll();
32        Gravity = new Vector(0, -1000);
33
34        LuoKentta();
35        LisaaNappaimet();
36        LuoPisteLaskuri();
37
38        Camera.Follow(pelaaja1);
39        Camera.ZoomFactor = 1.2;
40        Camera.StayInLevel = true;
41    }
42
43    void LuoKentta()
44    {
45        TileMap kentta = TileMap.FromLevelAsset("kentta1");
46        kentta.SetTileMethod('#', LisaaTaso);
47        kentta.SetTileMethod('*', LisaaElain);
48        kentta.SetTileMethod('=', LisaaTurva);
49        kentta.SetTileMethod('N', LisaaPelaaja);
50        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
51        Level.CreateBorders();
52        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
53    }
54
55    void LisaaTaso(Vector paikka, double leveys, double korkeus)
56    {
57        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
58        taso.Position = paikka;
59        taso.Color = Color.Green;
60        taso.Tag = "Puu";
61        Add(taso);
62    }
63
64    void LisaaTurva(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject turva = PhysicsObject.CreateStaticObject(leveys, korkeus);
67        turva.Position = paikka;
68        turva.Color = Color.Crimson;
69        Add(turva);
70    }
71
72    void LisaaElain(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject Elain = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        Elain.IgnoresCollisionResponse = true;
76        Elain.Position = paikka;
77        Elain.Image = tahtiKuva;
78        Elain.Tag = "Elain";
79        Add(Elain);
80    }
81
82    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
83    {
84        pelaaja1 = new PlatformCharacter(leveys, korkeus);
85        pelaaja1.Position = paikka;
86        pelaaja1.Mass = 400;
87        pelaaja1.Image = pelaajanKuva;
88        AddCollisionHandler(pelaaja1, "Elain", TormaaElaimeen);
89        AddCollisionHandler(pelaaja1, "Puu", TormaaPuuhun);
90        Add(pelaaja1);
91    }
92
93    void LisaaNappaimet()
94    {
95        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
96        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
97
98        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
99        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
100        Keyboard.Listen(Key.Space, ButtonState.Down, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
101
102        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
103
104        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
105        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
106        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
107
108        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
109    }
110
111    void Liikuta(PlatformCharacter hahmo, double nopeus)
112    {
113        hahmo.Walk(nopeus);
114    }
115
116    void Hyppaa(PlatformCharacter hahmo, double nopeus)
117    {
118        hahmo.ForceJump(nopeus);
119    }
120
121    void TormaaElaimeen(PhysicsObject hahmo, PhysicsObject Elain)
122    {
123        maaliAani.Play();
124        MessageDisplay.Add("Keräsit eläimen!");
125        Elain.Destroy();
126    }
127    void TormaaPuuhun(PhysicsObject hahmo, PhysicsObject Puu)
128    {
129        aloitapeli();
130    }
131    void LuoPisteLaskuri()
132    {
133    pistelaskuri = new IntMeter(0);
134
135    Label pisteNaytto = new Label(); 
136    pisteNaytto.X = Screen.Left + 100;
137    pisteNaytto.Y = Screen.Top - 100;
138    pisteNaytto.TextColor = Color.Black;
139    pisteNaytto.Color = Color.White;
140
141    pisteNaytto.BindTo(pistelaskuri);
142    Add(pisteNaytto);
143    }
144
145
146} 
Note: See TracBrowser for help on using the repository browser.