source: 2017/31/EllaV/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 9358

Revision 9358, 5.7 KB checked in by npo17_76, 2 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 Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PhysicsObject monsteri;
17    Image pelaajanKuva = LoadImage("koira");
18    Image tahtiKuva = LoadImage("luu1");
19    Image kivikuva = LoadImage("kiviturkoosi");
20    Image monsteriKuva = LoadImage("monsteri");
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        Camera.Follow(pelaaja1);
31        Camera.ZoomFactor = 1.2;
32        Camera.StayInLevel = true;
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('K', Lisaakivi);
42        kentta.SetTileMethod('R', Lisaakuolettavapala);
43        kentta.SetTileMethod('M', Lisaamonsteri);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.Rose, Color.RosePink);
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.Black;
54        Add(taso);
55    }
56
57    void LisaaTahti(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        tahti.IgnoresCollisionResponse = true;
61        tahti.Position = paikka;
62        tahti.Image = tahtiKuva;
63        tahti.Tag = "tahti";
64        Add(tahti);
65    }
66
67    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
68    {
69        pelaaja1 = new PlatformCharacter(leveys, korkeus);
70        pelaaja1.Position = paikka;
71        pelaaja1.Mass = 4.0;
72        pelaaja1.Image = pelaajanKuva;
73        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
74        Add(pelaaja1);
75        AddCollisionHandler(pelaaja1, "kivi", Tormaakiveen);
76        AddCollisionHandler(pelaaja1, "kuolettavapala", Kuolema);
77    }
78    void LisaaNappaimet()
79    {
80        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
81        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
82
83        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
84        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
85        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
86
87        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
88
89        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
90        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
91        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
92
93        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
94    }
95
96    void Liikuta(PlatformCharacter hahmo, double nopeus)
97    {
98        hahmo.Walk(nopeus);
99    }
100
101    void Hyppaa(PlatformCharacter hahmo, double nopeus)
102    {
103        hahmo.Jump(nopeus);
104    }
105
106    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
107    {
108        maaliAani.Play();
109        MessageDisplay.Add("Keräsit luun!");
110        tahti.Destroy();
111    }
112    void Lisaakivi(Vector paikka, double korkeus, double leveys)
113    {
114        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
115        kivi.IgnoresCollisionResponse = true;
116        kivi.Position = paikka;
117        kivi.Image = kivikuva;
118        kivi.Tag = "kivi";
119        Add(kivi);
120
121    }
122    void Tormaakiveen(PhysicsObject hahmo, PhysicsObject kivi)
123    {
124        maaliAani.Play();
125        MessageDisplay.Add("Keräsit kiven!");
126        kivi.Destroy();
127    }
128    void Lisaakuolettavapala(Vector paikka, double korkeus, double leveys)
129    {
130        PhysicsObject kuolettavapala = PhysicsObject.CreateStaticObject(leveys, korkeus);
131        kuolettavapala.IgnoresCollisionResponse = true;
132        kuolettavapala.Position = paikka;
133        kuolettavapala.Image = kivikuva;
134        kuolettavapala.Tag = "kuolettavapala";
135        Add(kuolettavapala);
136    }
137    void Kuolema(PhysicsObject pelaaja1,PhysicsObject kohde)
138    { pelaaja1.Destroy();
139        MessageDisplay.Add("Kuolit!");
140    }
141    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus)
142    {
143        pelaaja1 = new PlatformCharacter(leveys, korkeus);
144        pelaaja1.Position = paikka;
145        pelaaja1.Mass = 4.0;
146        pelaaja1.Image = pelaajanKuva;
147        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
148        Add(pelaaja1);
149        AddCollisionHandler(pelaaja1, "kivi", Tormaakiveen);
150        AddCollisionHandler(pelaaja1, "kuolettavapala", Kuolema);
151    }
152    void Lisaamonsteri(Vector paikka, double leveys, double korkeus)
153    {
154        monsteri = new PlatformCharacter(leveys*5, korkeus*3);
155        monsteri.Position = paikka;
156        pelaaja1.Mass = 4.0;
157        monsteri.Image = monsteriKuva;
158RandomMoverBrain satunnaisAivot= new RandomMoverBrain();
159        monsteri.Brain = satunnaisAivot();
160        Add(monsteri);
161    }
162}
Note: See TracBrowser for help on using the repository browser.