source: 2016/30/LeoM/Akupeli/Akupeli/Akupeli/Akupeli.cs @ 8166

Revision 8166, 5.0 KB checked in by lemaline, 3 years ago (diff)

akupeli ensimmäinen kenttä valmis. toinen tekeillä. piikit lisätty ja voi kuolla.

AKU ON YHÄ ILMAN VAATTEITÄ!!!!!!!!!!!!!!!!!!!

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Akupeli : PhysicsGame
10{
11    const double nopeus = 400;
12    const double hyppyNopeus = 900;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("akusedo2");
18    Image tahtiKuva = LoadImage("tahti");
19    Image ovikuva= LoadImage("ovi");
20
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25        ClearAll();
26        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
27"Aloita peli", "Lopeta");
28        Add(alkuValikko);
29        alkuValikko.AddItemHandler(0, AloitaPeli);
30        alkuValikko.AddItemHandler(1, Exit);
31
32       
33       
34    }
35
36    void AloitaPeli()
37    {
38        Gravity = new Vector(0, -1000);
39
40
41        LuoKentta();
42        LisaaNappaimet();
43
44        Camera.Follow(pelaaja1);
45        Camera.ZoomFactor = 1.2;
46        Camera.StayInLevel = true;
47    }
48
49    void LuoKentta()
50    {
51        TileMap kentta = TileMap.FromLevelAsset("kentta1");
52        kentta.SetTileMethod('#', LisaaTaso);
53        kentta.SetTileMethod('*', LisaaTahti);
54        kentta.SetTileMethod('!', LisaaMaali);
55        kentta.SetTileMethod('N', LisaaPelaaja);
56        kentta.SetTileMethod('p', LisaaPiikki);
57        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
58        Level.CreateBorders();
59        Level.Background.CreateGradient(Color.Pink, Color.HotPink);
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.Green;
67        Add(taso);
68    }
69    void LisaaMaali(Vector paikka, double leveys, double korkeus)
70    {
71        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
72        maali.IgnoresCollisionResponse = true;
73        maali.Position = paikka;
74        maali.Image = ovikuva;
75        maali.Tag = "maali";
76        Add(maali);
77    }
78    void LisaaTahti(Vector paikka, double leveys, double korkeus)
79    {
80        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
81        tahti.IgnoresCollisionResponse = true;
82        tahti.Position = paikka;
83        tahti.Image = tahtiKuva;
84        tahti.Tag = "tahti";
85        Add(tahti);
86    }
87   
88   
89   
90
91void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
92    {
93        pelaaja1 = new PlatformCharacter(leveys, korkeus);
94        pelaaja1.Position = paikka;
95        pelaaja1.Mass = 4.0;
96        pelaaja1.Image = pelaajanKuva;
97        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
98        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
99        Add(pelaaja1);
100        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin);
101    }
102
103    void LisaaNappaimet()
104    {
105        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
106        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
107
108        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
109        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
110        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
111
112        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
113
114        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
115        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
116        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
117
118        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
119    }
120
121    void Liikuta(PlatformCharacter hahmo, double nopeus)
122    {
123        hahmo.Walk(nopeus);
124    }
125
126    void Hyppaa(PlatformCharacter hahmo, double nopeus)
127    {
128        hahmo.Jump(nopeus);
129    }
130
131    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
132    {
133        maaliAani.Play();
134        MessageDisplay.Add("Keräsit tähden!");
135        tahti.Destroy();
136    }
137    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject maali)
138    {
139        maaliAani.Play();
140        MessageDisplay.Add("PÄÄSIT MAALIIN!");
141       
142    }
143    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
144    {
145        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
146        piikki.IgnoresCollisionResponse = true;
147        piikki.Position = paikka;
148        piikki.Color = Color.Gray;
149        piikki.Tag = "piikki";
150        Add(piikki);
151        piikki.Shape = Shape.Triangle;
152    }
153    void TormaaPiikkiin(PhysicsObject hahmo, PhysicsObject piikki)
154    {
155        MessageDisplay.Add("KUOLIT!");
156        hahmo.Destroy();
157        Timer.SingleShot(1, Begin);
158    }
159}
Note: See TracBrowser for help on using the repository browser.