source: 2015/24/UunoT/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2.cs @ 5923

Revision 5923, 4.4 KB checked in by empaheik, 6 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 Tasohyppelypeli2 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const double kiipeaNopeus = 250;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("norsu");
19    Image tahtiKuva = LoadImage("tahti");
20
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25        Gravity = new Vector(0, -1000);
26
27        LuoKentta();
28        LisaaNappaimet();
29       
30
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35   
36
37    void LuoKentta()
38    {
39        TileMap kentta = TileMap.FromLevelAsset("kentta1");
40        kentta.SetTileMethod('#', LisaaTaso);
41        kentta.SetTileMethod('*', LisaaTahti);
42        kentta.SetTileMethod('N', LisaaPelaaja);
43        kentta.SetTileMethod('T', LisaaTikkaat);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
47    }
48
49    void LisaaTaso(Vector paikka, double leveys, double korkeus)
50    {
51        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
52        taso.Position = paikka;
53        taso.Color = Color.Green;
54        Add(taso);
55    }
56    void LisaaTikkaat(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        tikkaat.IgnoresCollisionResponse = true;
60        tikkaat.Tag = "tikkaat";
61        tikkaat.Position = paikka;
62        Add(tikkaat);
63    }
64
65    void LisaaTahti(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        tahti.IgnoresCollisionResponse = true;
69        tahti.Position = paikka;
70        tahti.Image = tahtiKuva;
71        tahti.Tag = "tahti";
72        Add(tahti);
73    }
74
75    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
76    {
77        pelaaja1 = new PlatformCharacter(leveys, korkeus);
78        pelaaja1.Position = paikka;
79        pelaaja1.Mass = 4.0;
80        pelaaja1.Image = pelaajanKuva;
81        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
82        //AddCollisionHandler(pelaaja1, "tikkaat", Kiipea);
83        Add(pelaaja1);
84    }
85    void Guy (Vector paikka, double leveys, double korkeus)
86    {
87      PhysicsObject guy = PhysicsObject.CreateStaticObject(leveys, korkeus);
88     
89       
90       
91      Add(guy);
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.Up, ButtonState.Pressed, 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.Jump(nopeus);
119    }
120
121    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
122    {
123        maaliAani.Play();
124        MessageDisplay.Add("Keräsit tähden!");
125        tahti.Destroy();
126    }
127   
128   
129
130   
131   //void Kiipea(PhysicsObject hahmo, PhysicsObject tikkaat)
132    //{
133       //hahmo.IgnoresPhysicsLogics = true;
134        //hahmo.MoveTo(new Vector(hahmo.X, tikkaat.Top), 100);
135
136        //if (Keyboard.IsAltDown())
137        //{
138
139           
140          //  hahmo.Push(new Vector(0, 100000));
141        //}
142    //}
143}
Note: See TracBrowser for help on using the repository browser.