source: 2016/27/PekkaP/FinnishTroops/FinnishTroops/FinnishTroops/FinnishTroops.cs @ 7785

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