source: 2017/31/RoniM/New folder/New folder/LegendOfDesertBase/LegendOfDesertBase/LegendOfDesertBase/LegendOfDesertBase.cs @ 9262

Revision 9262, 6.3 KB checked in by npo17_71, 2 years ago (diff)

päivitys uudet tiedostot

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class LegendOfDesertBase : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14    DoubleMeter elamaLaskuri;
15    PlatformCharacter pelaaja1;
16   
17    Image pelaajanKuva = LoadImage("norsu");
18    Image tahtiKuva = LoadImage("tahti");
19
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21
22    public override void Begin()
23    {
24        Gravity = new Vector(0, -1000);
25
26        LuoKentta();
27        LisaaNappaimet();
28        LuoElamaLaskuri();
29        Luokauppa();
30        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34
35        MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin",
36"Aloita peli", "Parhaat pisteet", "Lopeta");
37        valikko.ItemSelected += PainettiinValikonNappia;
38        Add(valikko);
39
40    }
41    void PainettiinValikonNappia(int valinta)
42    {
43        switch (valinta)
44        {
45            case 0:
46                // AloitaPeli();
47                break;
48            case 1:
49                // ParhaatPisteet();
50                break;
51            case 2:
52                Exit();
53                break;
54        }
55    }
56    void LuoKentta()
57    {
58
59       
60
61        TileMap kentta = TileMap.FromLevelAsset("kentta1");
62        kentta.SetTileMethod('#', LisaaTaso);
63        kentta.SetTileMethod('*', LisaaTahti);
64        kentta.SetTileMethod('N', LisaaPelaaja);
65        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
66        Level.CreateBorders();
67        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
68    }
69
70    void LisaaTaso(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        taso.Position = paikka;
74        taso.Color = Color.Green;
75        Add(taso);
76    }
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    void LuoElamaLaskuri()
88    {
89        //elamaLaskuri = new DoubleMeter(10);
90        //elamaLaskuri.MaxValue = 10;
91    //    elamaLaskuri.LowerLimit += ElamaLoppui;
92
93       
94        ProgressBar elamaPalkki = new ProgressBar(150, 20);
95        elamaPalkki.X = Screen.Left + 150;
96        elamaPalkki.Y = Screen.Top - 20;
97        elamaPalkki.Color = Color.Transparent;
98
99        //Palkin väri:
100        elamaPalkki.BarColor = Color.Red;
101
102        //Reunan väri:
103        elamaPalkki.BorderColor = Color.Black;
104        elamaPalkki.BindTo(pelaaja1.Weapon.Ammo);
105        Add(elamaPalkki);
106    }
107    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
108    {
109        pelaaja1 = new PlatformCharacter(leveys, korkeus);
110        pelaaja1.Position = paikka;
111        pelaaja1.Mass = 4.0;
112        pelaaja1.Image = pelaajanKuva;
113        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
114        Add(pelaaja1);
115
116        //pelaaja1 on PlatformCharacter-tyyppinen
117        pelaaja1.Weapon = new AssaultRifle(30, 10);
118        pelaaja1.Weapon.FireRate = 0.5;
119        pelaaja1.Weapon.AmmoIgnoresGravity = false;
120        //Ammusten määrä aluksi:
121        pelaaja1.Weapon.Ammo.Value = 200;
122        pelaaja1.Weapon.Ammo.MaxValue = 300;
123       
124        //Mitä tapahtuu kun ammus osuu johonkin?
125        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
126    }
127    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
128    {
129        //ammus.Destroy();
130    }
131    void AmmuAseella(PlatformCharacter pelaaja)
132    {
133        PhysicsObject ammus = pelaaja.Weapon.Shoot();
134
135        if (ammus != null)
136        {
137            //ammus.Size *= 3;
138            //ammus.Image = ...
139            ammus.MaximumLifetime = TimeSpan.FromSeconds(200.0);
140            ammus.Velocity *= 1.9;
141           
142        }
143    }
144
145    void LisaaNappaimet()
146    {
147        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
148        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
149
150        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
151        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
152        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
153        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
154
155        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
156
157        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
158        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
159        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160
161
162        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
163    }
164
165    void Liikuta(PlatformCharacter hahmo, double nopeus)
166    {
167        hahmo.Walk(nopeus);
168    }
169
170    void Hyppaa(PlatformCharacter hahmo, double nopeus)
171    {
172        hahmo.Jump(nopeus);
173    }
174
175    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
176    {
177        maaliAani.Play();
178        MessageDisplay.Add("Keräsit tähden!");
179        tahti.Destroy();
180    }
181    void Tahtaa(AnalogState hiirenLiike)
182    {
183        Vector suunta = (Mouse.PositionOnWorld - pelaaja1.Weapon.AbsolutePosition).Normalize();
184        pelaaja1.Weapon.Angle = suunta.Angle;
185        Mouse.IsCursorVisible = true;
186    }
187    void Luokauppa();
188    [
189        MultiSelectWindow kauppa = new MultiSelectWindow("Pelin kauppa",
190        "Aloita peli", "Parhaat pisteet", "Lopeta");
191    kauppa.AddItemHandler(0, kauppa);
192//kauppa.AddItemHandler(1, ParhaatPisteet);
193//kauppa.AddItemHandler(2, Exit);
194
195
196
197       Add(kauppa);
198       
199       
200       
201        ]
202    void kauppa();
203    [
204       
205       
206       
207        ]
208
209}
Note: See TracBrowser for help on using the repository browser.