source: 2010/30/heanjule/Pyromaani/Peli.cs @ 1400

Revision 1400, 4.5 KB checked in by heanjule, 10 years ago (diff)

tein aseet pyromaani peliin

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
8    const int ruudunLeveys = 50;
9    const int ruudunKorkeus = 50;
10
11    const double nopeus = 200;
12    const double hyppyvoima = 6500;
13
14    PlatformCharacter pyro;
15    GameObject pyronPaikka;
16
17    protected override void Begin()
18    {
19        LuoKentta();
20        LisaaNappaimet();
21        Camera.Follow(pyro);
22        Camera.ZoomFactor = 2.0;
23        Camera.StayInLevel = true;
24       
25
26        Gravity = new Vector(0, -800);
27    }
28
29    void LuoKentta()
30    {
31
32        TileMap taustaruudut = TileMap.FromFile("kenttatausta.txt");
33        taustaruudut['='] = LuoKuutio;
34        taustaruudut.Insert(ruudunLeveys, ruudunKorkeus);
35
36
37        TileMap ruudut = TileMap.FromFile("kentta.txt");
38        ruudut['='] = LuoPalikka;
39        ruudut['1'] = LuoPyronPaikka;
40        ruudut['*'] = LuoAse;
41        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
42
43        lisaaPelaajat();
44
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
47
48    }
49
50    GameObject LuoPyronPaikka()
51    {
52        //pyro = new PlatformCharacter(40.0, 20);
53        //pyro.Shape = Shapes.Rectangle;
54        //pyro.Color = Color.Black;
55        //pyro.Mass = 10.0;
56
57        //pyro.Weapon = new AssaultRifle(20, 5);
58
59        pyronPaikka = new GameObject(1, 1);
60        pyronPaikka.IsVisible = false;
61
62        return pyronPaikka;
63    }
64
65    GameObject LuoKuutio()
66    {
67        GameObject kuutio = new GameObject(50, 50, Shapes.Rectangle);
68        kuutio.Color = Color.Blue;
69       
70        return kuutio;
71    }
72
73    PhysicsObject LuoPalikka()
74    {
75        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);       
76        return palikka;
77    }
78
79    PhysicsObject LuoAse()
80    {
81        PhysicsObject ase = PhysicsObject.CreateStaticObject(20.0, 20.0);
82        return ase;
83    }
84
85    void LisaaTaso(double x, double y)
86    {
87        PhysicsObject taso = PhysicsObject.CreateStaticObject(40, 40);
88        taso.Color = Color.Green;
89        taso.X = x;
90        taso.Y = y;
91        Add(taso);
92    }
93
94    void lisaaPelaajat()
95    {
96        pyro = new PlatformCharacter(40, 20);
97        pyro.Color = Color.Black;
98        pyro.Mass = 10.0;
99
100        pyro.Weapon = new AssaultRifle(20, 5);
101   
102   
103        pyro.Position = pyronPaikka.Position;
104        //pyro.X = 0;
105        //pyro.Y = Level.Bottom + 120;
106
107        Add(pyro, 1);
108
109    }
110    void LisaaNappaimet()
111    {
112        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
113        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
114
115        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "liikkuu vasemmalle", pyro, -nopeus );
116        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "liikkuu oikealle", pyro, nopeus );
117        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pyro, hyppyvoima );
118
119        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä" );
120
121        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pyro, -nopeus);
122        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pyro, nopeus);
123        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pyro, hyppyvoima);
124
125        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu");
126        Keyboard.Listen(Key.G, ButtonState.Down, HeitaKranaatti, "Heitä");
127       
128    }
129
130    void liikuta( PlatformCharacter hahmo, double nopeus)
131    {
132        hahmo.Walk( nopeus );
133    }
134
135    void hyppaa( PlatformCharacter hahmo, double voima )
136    {
137        hahmo.Jump(voima);
138    }
139    void AmmuAseella()
140    {
141        PhysicsObject ammus = pyro.Weapon.Shoot();
142
143        if (ammus != null)
144        {
145            ammus.Size *= 2;
146        }
147    }
148       
149            void HeitaKranaatti()
150    {
151        ClusterGrenade kranaatti = new ClusterGrenade(4.0, 2);
152        kranaatti.X = pyro.X + 10;
153        kranaatti.Y = pyro.Y + 10;
154        kranaatti.FuseTime = TimeSpan.FromSeconds(4);
155               
156        Add(kranaatti);
157        Vector heittoVoima = Vector.FromLengthAndAngle(4000, Angle.Degrees( 45) );
158        kranaatti.Hit( heittoVoima );
159        kranaatti.NumberOfClusters = 4;
160
161
162
163    }
164
165       
166   
167   
168
169
170
171}
Note: See TracBrowser for help on using the repository browser.