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

Revision 4966, 5.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       
28       
29
30        public override void Begin()
31        {
32            Gravity = new Vector(0, -1000);
33
34            LuoKentta();
35            LisaaNappaimet();
36
37            Camera.ZoomFactor = 1.2;
38            Camera.StayInLevel = true;
39        }
40
41        void LuoKentta()
42        {
43            TileMap kentta = TileMap.FromLevelAsset("kentta1");
44            kentta.SetTileMethod('#', LisaaTaso);
45            kentta.SetTileMethod('*', LisaaTahti);
46            kentta.SetTileMethod('V', Lisaavihu1);
47            kentta.SetTileMethod('P', LisaaPelaaja);
48            kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
49            Level.CreateBorders();
50            Level.Background.Image = taustakuva1;
51        }
52
53        void LisaaTaso(Vector paikka, double X, double Y)
54        {
55            PhysicsObject taso = PhysicsObject.CreateStaticObject(X, Y);
56            taso.Position = paikka;
57            taso.IsVisible = false;
58            Add(taso);
59        }
60
61        void LisaaTahti(Vector paikka, double X, double Y)
62        {
63            PhysicsObject tahti = PhysicsObject.CreateStaticObject(X, Y);
64            tahti.IgnoresCollisionResponse = true;
65            tahti.Position = paikka;
66            tahti.Image = tahtiKuva;
67            tahti.Tag = "tahti";
68            Add(tahti);
69        }
70       
71        void Lisaavihu1(Vector paikka, double X, double Y)
72        {
73            PhysicsObject vihu1 = PhysicsObject.CreateStaticObject(X, Y);
74            vihu1.IgnoresCollisionResponse = true;
75            vihu1.Position = paikka;
76            vihu1.Image = vihu1kuva;
77            vihu1.Size = new Vector(58, 120.5);
78            vihu1.Tag = "vihu1";
79            Add(vihu1);
80           
81            FollowerBrain aivot = new FollowerBrain("pelaaja");
82            vihu1.Brain = aivot;
83            aivot.Speed = 100;
84            aivot.Active = true;
85        }
86
87        void LisaaPelaaja(Vector paikka, double X, double Y)
88        {
89            pelaaja1 = new PlatformCharacter(X, Y); //pelaaja
90            pelaaja1.Position = paikka;
91            pelaaja1.Mass = 4.0;
92            pelaaja1.Image = pelaajanKuva;
93            AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
94            Add(pelaaja1);
95
96            pelaaja1.Weapon = new AssaultRifle(30, 10);
97
98            pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
99
100            pelaaja1.Weapon.CanHitOwner = true;
101
102            pelaaja1.Weapon.FireRate = 1000000000000.0;
103
104            pelaaja1.Weapon.InfiniteAmmo = true;
105
106            pelaaja1.Weapon.Image = Knife;
107
108        }
109
110        void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
111        {
112            ammus.Destroy();
113        }
114
115        void AmmuAseella(PlatformCharacter pelaaja)
116        {
117            PhysicsObject ammus = pelaaja.Weapon.Shoot();
118
119            if (ammus != null)
120            {
121                ammus.Size *= 0.5;
122                //ammus.Image = ...
123            }
124        }
125
126        void LisaaNappaimet()
127        {
128            MultiSelectWindow alkuValikko = new MultiSelectWindow("NotNamed",
129            "Aloita peli", "Parhaat pisteet", "Lopeta");
130            Add(alkuValikko);
131
132            alkuValikko.AddItemHandler(0, AloitaPeli);
133            alkuValikko.AddItemHandler(1, ParhaatPisteet);
134            alkuValikko.AddItemHandler(2, Exit);
135           
136            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
137            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
138            Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
139            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
140            Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
141            Keyboard.Listen(Key.F, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
142
143            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
144            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
145            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
146            ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
147            ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ampuu", pelaaja1);
148
149            PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
150        }
151
152        void AloitaPeli()
153        {
154        }
155
156        void ParhaatPisteet()
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            MessageDisplay.Add("Keräsit tähden!");
173            tahti.Destroy();
174        }
175   
176    }
Note: See TracBrowser for help on using the repository browser.