source: 2015/23/ToukoA/TappoVeli/TappoVeli.cs @ 5852

Revision 5852, 3.0 KB checked in by jotapoti, 7 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Widgets;
7
8public class TappoVeli : PhysicsGame
9{
10        const double nopeus = 200;
11        const double hyppyNopeus = 750;
12        const int RUUDUN_KOKO = 40;
13        PlatformCharacter pelaaja1;
14        Image pelaajanKuva = LoadImage ("puukkomies");
15
16        public override void Begin ()
17        {
18                Gravity = new Vector (0, -1000);
19
20                LuoKentta ();
21                LisaaNappaimet ();
22
23                Camera.Follow (pelaaja1);
24                Camera.ZoomFactor = 1.2;
25                Camera.StayInLevel = true;
26        }
27
28        void LuoKentta ()
29        {
30                TileMap kentta = TileMap.FromLevelAsset ("kentta1");
31                kentta.SetTileMethod ('#', LisaaTaso);
32                kentta.SetTileMethod ('P', LisaaPelaaja);
33                kentta.Execute (RUUDUN_KOKO, RUUDUN_KOKO);
34                Level.CreateBorders ();
35                Level.Background.CreateGradient (Color.White, Color.SkyBlue);
36        }
37
38        void LisaaTaso (Vector paikka, double leveys, double korkeus)
39        {
40                PhysicsObject taso = PhysicsObject.CreateStaticObject (leveys, korkeus);
41                taso.Position = paikka;
42                taso.Color = Color.Green;
43                Add (taso);
44        }
45
46        void LisaaPelaaja (Vector paikka, double leveys, double korkeus)
47        {
48                pelaaja1 = new PlatformCharacter (leveys, korkeus);
49                pelaaja1.Position = paikka;
50                pelaaja1.Mass = 4.0;
51                pelaaja1.Image = pelaajanKuva;
52                pelaaja1.Weapon = new AssaultRifle(30, 10);
53                pelaaja1.Weapon.Ammo.Value = 100;
54                pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
55
56                Add (pelaaja1);
57        }
58
59        void AmmusOsui (PhysicsObject ammus, PhysicsObject kohde)
60        {
61                ammus.Destroy();
62        }
63
64        void AmmuAseella(PlatformCharacter pelaaja)
65        {
66                PhysicsObject ammus = pelaaja.Weapon.Shoot();
67
68                if(ammus != null)
69                {
70                        ammus.Size *= 3;
71                        ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
72                }
73        }
74
75        void LisaaNappaimet ()
76        {
77                Keyboard.Listen (Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
78                Keyboard.Listen (Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
79                Keyboard.Listen (Key.Space, ButtonState.Pressed, AmmuAseella, "Ammu", pelaaja1);
80                Keyboard.Listen (Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
81                Keyboard.Listen (Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
82                Keyboard.Listen (Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
83
84                /*ControllerOne.Listen (Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
85
86                ControllerOne.Listen (Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
87                ControllerOne.Listen (Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
88                ControllerOne.Listen (Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
89
90                PhoneBackButton.Listen (ConfirmExit, "Lopeta peli");*/
91        }
92
93        void Liikuta (PlatformCharacter hahmo, double nopeus)
94        {
95                hahmo.Walk (nopeus);
96        }
97
98        void Hyppaa (PlatformCharacter hahmo, double nopeus)
99        {
100                hahmo.Jump (nopeus);
101        }
102}
103
Note: See TracBrowser for help on using the repository browser.