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

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