source: 2016/24/JoonatanJ/Pomppu/Pomppu/Pomppu/Pomppu.cs @ 7337

Revision 7337, 4.7 KB checked in by joojarvi, 3 years ago (diff)
RevLine 
[7253]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Pomppu : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
[7297]17    Image pelaajanKuva = LoadImage("pallopoju");
[7253]18
[7337]19    Image piikinkuva = LoadImage("cocacola");
20
21    Image tahdenkuva = LoadImage("pepsimax");
22
[7253]23    SoundEffect maaliAani = LoadSoundEffect("maali");
[7337]24    string kenttaMenossa = "kentta1";
[7253]25
26    public override void Begin()
27    {
[7337]28        AloitaPeli();
29    }
[7253]30
[7337]31    void AloitaPeli()
32    {
33        Gravity = new Vector(0, -500);
34
[7253]35        LuoKentta();
36        LisaaNappaimet();
37
38        Camera.Follow(pelaaja1);
39        Camera.ZoomFactor = 1.2;
40        Camera.StayInLevel = true;
41    }
42
43    void LuoKentta()
44    {
[7337]45        TileMap kentta = TileMap.FromLevelAsset(kenttaMenossa);
[7297]46        kentta.SetTileMethod('#', LisaaEsine, "taso", Color.Black);
[7253]47        kentta.SetTileMethod('N', LisaaPelaaja);
[7297]48        kentta.SetTileMethod('W', LisaaEsine, "maali", Color.Gold);
[7337]49        kentta.SetTileMethod('L', LisaaPiikki, "piikki", Color.Gray, piikinkuva);
50        kentta.SetTileMethod('O', LisaaEsine, "piikki", Color.Black);
51        kentta.SetTileMethod('P', LisaaPiikki, "tahti", Color.Gray, tahdenkuva);
[7253]52        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
[7297]54        Level.Background.CreateGradient(Color.Black, Color.Red);
[7253]55    }
56
[7297]57    void LisaaEsine(Vector paikka, double leveys, double korkeus, string nimi, Color vari)
[7253]58    {
[7297]59        PhysicsObject esine = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        esine.Position = paikka;
61        esine.Color = vari;
62        esine.Tag = nimi;
63        Add(esine);
[7253]64    }
65
[7337]66    void LisaaPiikki(Vector paikka, double leveys, double korkeus, string nimi, Color vari, Image kuva)
67    {
68        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        piikki.Position = paikka;
70        piikki.Color = vari;
71        piikki.Tag = nimi;
72        piikki.Image = kuva;
73        Add(piikki);
74    }
75
[7253]76    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
77    {
78        pelaaja1 = new PlatformCharacter(leveys, korkeus);
79        pelaaja1.Position = paikka;
[7337]80        pelaaja1.Shape = Shape.Circle;
81        pelaaja1.Mass = 1000.0;
[7253]82        pelaaja1.Image = pelaajanKuva;
83        Add(pelaaja1);
[7337]84        AddCollisionHandler(pelaaja1, "piikki", PelaajaOsuuPiikkiin);
85        AddCollisionHandler(pelaaja1, "tahti", PelaajaOsuuTahteen);
86        AddCollisionHandler(pelaaja1, "maali", PelaajaOsuuMaaliin);
[7253]87    }
88
[7297]89
[7337]90
[7253]91    void LisaaNappaimet()
92    {
93        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
95
96        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
97        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
98        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
99
100        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
101
102        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
103        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
104        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
105
106        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
107    }
108
109    void Liikuta(PlatformCharacter hahmo, double nopeus)
110    {
111        hahmo.Walk(nopeus);
112    }
113
114    void Hyppaa(PlatformCharacter hahmo, double nopeus)
115    {
116        hahmo.Jump(nopeus);
117    }
118
119    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
120    {
121        maaliAani.Play();
122        MessageDisplay.Add("Keräsit tähden!");
123        tahti.Destroy();
124    }
[7337]125    void PelaajaOsuuPiikkiin(PhysicsObject pelaaja, PhysicsObject piikki)
126    {
127        pelaaja.Destroy();
128    }
129
130    void PelaajaOsuulattiaan(PhysicsObject pelaaja, PhysicsObject lattia)
131    {
132        pelaaja.Destroy();
133    }
134    void PelaajaOsuuTahteen(PhysicsObject pelaaja, PhysicsObject pullo)
135    {
136        pullo.Destroy();
137        MessageDisplay.Add("Keräsit pullon ootko nyt iloinen Häh?!");
138    }
139    void PelaajaOsuuMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
140    {
141        ClearAll();
142        kenttaMenossa = "kentta2";
143        AloitaPeli();
144    }
145
[7253]146}
Note: See TracBrowser for help on using the repository browser.