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

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