source: 2014/27/JesseL/Trapp/Trapp/Trapp/Trapp.cs @ 5410

Revision 5410, 5.6 KB checked in by jeloppon, 7 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 Trapp : PhysicsGame
10{
11   
12    const double nopeus = 1000;
13    const double hyppyNopeus = 2075;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17   
18   
19
20    Image pelaajanKuva = LoadImage("Pelattava hahmo");
21    Image tahtiKuva = LoadImage("tahti");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25    public override void Begin()
26    {
27        Gravity = new Vector(0, -1000);
28
29        LuoKentta();
30        LisaaNappaimet();
31       
32
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 0.9;
35        Camera.StayInLevel = true;
36        SetWindowSize(1024, 768, true);
37        IsFullScreen = false;
38
39    }
40
41    void LuoKentta()
42    {
43        //TileMap kentta = TileMap.FromLevelAsset("kentta1");
44        //kentta.SetTileMethod('#', LisaaTaso);
45        //kentta.SetTileMethod('*', LisaaTahti);
46        //kentta.SetTileMethod('N', LisaaPelaaja);
47        //kentta.SetTileMethod('P', LisaaVihollinen);
48        //kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
49       
50        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
51        SmoothTextures = false;
52
53        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
54        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("11223344");
55
56        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
57        ruudut.SetTileMethod(Color.YellowGreen, LisaaPelaaja);
58        ruudut.SetTileMethod(Color.Black, LisaaTaso);
59        //ruudut.SetTileMethod(Color.Red, LisaaVihollinen);
60        ruudut.SetTileMethod(Color.Rose, LisaaPunTaso);
61
62        //3. Execute luo kentän
63        //   Parametreina leveys ja korkeus
64        ruudut.Execute(100, 100);
65
66    }
67
68    void LisaaTaso(Vector paikka, double leveys, double korkeus)
69    {
70        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
71        taso.Position = paikka;
72        taso.Color = Color.Black;
73        Add(taso);
74    }
75   
76
77
78                           
79
80
81    void LisaaTahti(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
84        tahti.IgnoresCollisionResponse = true;
85        tahti.Position = paikka;
86        tahti.Image = tahtiKuva;
87        tahti.Tag = "tahti";
88        Add(tahti);
89    }
90
91    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
92    {
93        pelaaja1 = new PlatformCharacter(leveys, korkeus);
94        pelaaja1.Position = paikka;
95        pelaaja1.Mass = 1000.0;
96        pelaaja1.Image = pelaajanKuva;
97        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
98        Add(pelaaja1);
99
100        //pelaaja1.Weapon = new AssaultRifle(1, 1);
101        //pelaaja1.Weapon.Ammo.Value = 1000;
102        //pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
103     
104        //pelaaja1.Weapon.Image = null;
105       
106    }
107    //void AmmuAseella(PlatformCharacter pelaaja)
108    //{
109        //PhysicsObject ammus = pelaaja.Weapon.Shoot();
110
111        //if (ammus != null)
112        //{
113            //ammus.Size *= 3;
114            //ammus.Image = ...
115            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
116        //}
117    //}
118    //void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
119    //{
120        //ammus.Destroy();
121    //}
122    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
123    {
124        PlatformCharacter pahis = new PlatformCharacter(leveys, korkeus);
125        Add(pahis);
126
127        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
128        tasoAivot.Speed = 100;
129        pahis.Brain = tasoAivot;
130    }
131    void LisaaPunTaso(Vector paikka, double leveys, double korkeus)
132    {
133        PhysicsObject PunTaso = PhysicsObject.CreateStaticObject(leveys, korkeus);
134        PunTaso.Position = paikka;
135        PunTaso.Color = Color.Red;
136        Add(PunTaso);
137
138    }
139         
140   
141    void LisaaNappaimet()
142    {
143        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
144        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
145
146        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
147        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
148        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
149        //Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
150
151        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
152
153        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
154        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
155        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
156
157        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
158    }
159         
160
161
162    void Liikuta(PlatformCharacter  hahmo, double nopeus)
163    {
164        hahmo.Walk(nopeus);
165    }
166
167    void Hyppaa(PlatformCharacter hahmo, double nopeus)
168    {
169        hahmo.Jump(nopeus);
170    }
171
172    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
173    {
174        maaliAani.Play();
175        MessageDisplay.Add("Keräsit tähden!");
176        tahti.Destroy();
177    }
178   
179}
Note: See TracBrowser for help on using the repository browser.