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

Revision 5370, 5.5 KB checked in by jeloppon, 5 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 = 10750;
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
61        //3. Execute luo kentän
62        //   Parametreina leveys ja korkeus
63        ruudut.Execute(100, 100);
64
65    }
66
67    void LisaaTaso(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        taso.Position = paikka;
71        taso.Color = Color.Black;
72        Add(taso);
73    }
74   
75
76
77                           
78
79
80    void LisaaTahti(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        tahti.IgnoresCollisionResponse = true;
84        tahti.Position = paikka;
85        tahti.Image = tahtiKuva;
86        tahti.Tag = "tahti";
87        Add(tahti);
88    }
89
90    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
91    {
92        pelaaja1 = new PlatformCharacter(leveys, korkeus);
93        pelaaja1.Position = paikka;
94        pelaaja1.Mass = 1000.0;
95        pelaaja1.Image = pelaajanKuva;
96        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
97        Add(pelaaja1);
98
99        //pelaaja1.Weapon = new AssaultRifle(1, 1);
100        //pelaaja1.Weapon.Ammo.Value = 1000;
101        //pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
102     
103        //pelaaja1.Weapon.Image = null;
104       
105    }
106    //void AmmuAseella(PlatformCharacter pelaaja)
107    //{
108        //PhysicsObject ammus = pelaaja.Weapon.Shoot();
109
110        //if (ammus != null)
111        //{
112            //ammus.Size *= 3;
113            //ammus.Image = ...
114            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
115        //}
116    //}
117    //void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
118    //{
119        //ammus.Destroy();
120    //}
121    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
122    {
123        PlatformCharacter pahis = new PlatformCharacter(leveys, korkeus);
124        Add(pahis);
125
126        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
127        tasoAivot.Speed = 100;
128        pahis.Brain = tasoAivot;
129    }
130    void LisaaPunTaso(Vector paikka, double leveys, double korkeus)
131    {
132        PhysicsObject PunTaso = PhysicsObject.CreateStaticObject(leveys, korkeus);
133        PunTaso.Position = paikka;
134        PunTaso.Color = Color.Red;
135
136    }
137         
138   
139    void LisaaNappaimet()
140    {
141        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
142        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
143
144        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
145        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
146        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
147        //Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
148
149        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
150
151        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
152        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
153        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
154
155        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
156    }
157         
158
159
160    void Liikuta(PlatformCharacter  hahmo, double nopeus)
161    {
162        hahmo.Walk(nopeus);
163    }
164
165    void Hyppaa(PlatformCharacter hahmo, double nopeus)
166    {
167        hahmo.Jump(nopeus);
168    }
169
170    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
171    {
172        maaliAani.Play();
173        MessageDisplay.Add("Keräsit tähden!");
174        tahti.Destroy();
175    }
176   
177}
Note: See TracBrowser for help on using the repository browser.