source: 2013/24/MikaelJ/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 4951

Revision 4951, 6.7 KB checked in by milajoja, 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
9
10
11    public class Tasohyppelypeli1 : PhysicsGame
12    {
13        const double nopeus = 200;
14        const double hyppyNopeus = 600;
15        const int RUUDUN_KOKO = 40;
16
17        PlatformCharacter pelaaja1;
18
19        Image pelaajanKuva = LoadImage("norsu");
20        Image tahtiKuva = LoadImage("tahti");
21        Image taustakuva1 = LoadImage("Level1(1024)");
22        Image Knife = LoadImage("Knife");
23        Image vihu1Kuva = LoadImage("Vihu1");
24
25        //private Image[] vihu1 = LoadImages("...", "...", "...");
26
27        class Vihu : PhysicsObject
28        {
29            private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
30            public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
31
32            public Vihu(double leveys, double korkeus)
33                : base(leveys, korkeus)
34            {
35                elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
36
37                {
38                    Vihu vihu1 = new Vihu(100, 20);
39                    vihu1.X = 30;
40                    vihu1.Y = 10;
41                    vihu1.Mass = 4.0;
42                    Image vihu1kuva = LoadImage("norsu");
43                    vihu1.Image = vihu1kuva;
44                    vihu1.ElamaLaskuri.Value--;
45                    Add(vihu1);
46
47                    RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
48
49                    //Ominaisuuksien muokkaaminen
50                    satunnaisAivot.ChangeMovementSeconds = 3;
51                    vihu1.Brain = satunnaisAivot;
52
53                }
54
55            }
56        }
57
58        public override void Begin()
59        {
60            Gravity = new Vector(0, -1000);
61
62            LuoKentta();
63            LisaaNappaimet();
64
65            Camera.ZoomFactor = 1.2;
66            Camera.StayInLevel = true;
67        }
68
69        void LuoKentta()
70        {
71            TileMap kentta = TileMap.FromLevelAsset("kentta1");
72            kentta.SetTileMethod('#', LisaaTaso);
73            kentta.SetTileMethod('*', LisaaTahti);
74            kentta.SetTileMethod('V', Lisaavihu1);
75            kentta.SetTileMethod('P', LisaaPelaaja);
76            kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
77            Level.CreateBorders();
78            Level.Background.Image = taustakuva1;
79        }
80
81        void LisaaTaso(Vector paikka, double X, double Y)
82        {
83            PhysicsObject taso = PhysicsObject.CreateStaticObject(X, Y);
84            taso.Position = paikka;
85            taso.IsVisible = false;
86            Add(taso);
87        }
88
89        void LisaaTahti(Vector paikka, double X, double Y)
90        {
91            PhysicsObject tahti = PhysicsObject.CreateStaticObject(X, Y);
92            tahti.IgnoresCollisionResponse = true;
93            tahti.Position = paikka;
94            tahti.Image = tahtiKuva;
95            tahti.Tag = "tahti";
96            Add(tahti);
97        }
98
99        void Lisaavihu1(Vector paikka, double X, double Y)
100        {
101            PhysicsObject vihu1 = PhysicsObject.CreateStaticObject(X, Y);
102            vihu1.IgnoresCollisionResponse = true;
103            vihu1.Position = paikka;
104            vihu1.Image = vihu1Kuva;
105            vihu1.Size = new Vector(58, 120.5);
106            vihu1.Tag = "vihu1";
107            Add(vihu1);
108           
109            FollowerBrain aivot = new FollowerBrain("pelaaja");
110            vihu1.Brain = aivot;
111            aivot.Speed = 100;
112            aivot.Active = true;
113        }
114
115        void LisaaPelaaja(Vector paikka, double X, double Y)
116        {
117            pelaaja1 = new PlatformCharacter(X, Y); //pelaaja
118            pelaaja1.Position = paikka;
119            pelaaja1.Mass = 4.0;
120            pelaaja1.Image = pelaajanKuva;
121            AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
122            Add(pelaaja1);
123
124            pelaaja1.Weapon = new AssaultRifle(30, 10);
125
126            pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
127
128            pelaaja1.Weapon.CanHitOwner = true;
129
130            pelaaja1.Weapon.FireRate = 1000000000000.0;
131
132            pelaaja1.Weapon.InfiniteAmmo = true;
133
134            pelaaja1.Weapon.Image = Knife;
135
136        }
137
138        void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
139        {
140            ammus.Destroy();
141        }
142
143        void AmmuAseella(PlatformCharacter pelaaja)
144        {
145            PhysicsObject ammus = pelaaja.Weapon.Shoot();
146
147            if (ammus != null)
148            {
149                ammus.Size *= 0.5;
150                //ammus.Image = ...
151            }
152        }
153
154        void LisaaNappaimet()
155        {
156            MultiSelectWindow alkuValikko = new MultiSelectWindow("NotNamed",
157            "Aloita peli", "Parhaat pisteet", "Lopeta");
158            Add(alkuValikko);
159
160            alkuValikko.AddItemHandler(0, AloitaPeli);
161            alkuValikko.AddItemHandler(1, ParhaatPisteet);
162            alkuValikko.AddItemHandler(2, Exit);
163           
164            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
165            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
166            Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
167            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
168            Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
169            Keyboard.Listen(Key.F, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
170
171            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
172            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
173            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
174            ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
175            ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ampuu", pelaaja1);
176
177            PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
178        }
179
180        void AloitaPeli()
181        {
182        }
183
184        void ParhaatPisteet()
185        {
186        }
187
188        void Liikuta(PlatformCharacter hahmo, double nopeus)
189        {
190            hahmo.Walk(nopeus);
191        }
192
193        void Hyppaa(PlatformCharacter hahmo, double nopeus)
194        {
195            hahmo.Jump(nopeus);
196        }
197
198        void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
199        {
200            MessageDisplay.Add("Keräsit tähden!");
201            tahti.Destroy();
202        }
203
204    }
Note: See TracBrowser for help on using the repository browser.