source: 2010/27/julkivim/CCCP/FysiikkaPeli1/Peli.cs @ 1180

Revision 1180, 4.1 KB checked in by julkivim, 11 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{ 
8        const int ruudunLeveys = 25;
9        const int ruudunKorkeus = 25;
10     
11        protected override void Begin()
12        {
13            MediaPlayer.Play( "a" );
14            MediaPlayer.Volume = 1.0;
15            LuoKentta();
16            Gravity = new Vector(0.0, -1000.0);
17           
18            ABC();
19            ControllerOne.Vibrate(1.0, 1.0, 1.0, 1.0, 999999.0);
20        }
21        AssaultRifle pyssy;
22        void LuoKentta()
23        {
24            TileMap ruudut = TileMap.FromFile("kentta.txt");
25            ruudut['='] = LuoPalikka;
26            ruudut.Insert(ruudunLeveys, ruudunKorkeus);
27            Level.BackgroundColor = Color.White;
28            Camera.ZoomToLevel();
29            PhysicsObject kissa = new PhysicsObject(40, 20);
30            kissa.Shape = Shapes.Rectangle;
31            kissa.Mass = 10.0;
32            Add(kissa);
33         
34        }
35       
36
37
38
39 
40       
41    PhysicsObject LuoPalikka()
42        {
43            PhysicsObject palikka = PhysicsObject.CreateStaticObject(20.0, 20.0);
44            Add(palikka);
45            palikka.Color = Color.Black;
46           
47        return palikka;
48        }
49        PhysicsObject kissa;
50
51        void ABC()
52        {
53            kissa = new PhysicsObject(100, 200);
54            kissa.Tag = "pelaaja";
55            Add(kissa);
56            pyssy = new AssaultRifle(100, 100);
57
58            pyssy.BulletCollision = ammusOsuu;
59
60
61
62            kissa.Add(pyssy);
63            pyssy.Ammo.Value = 500;
64            kissa.Color = Color.Black;
65            Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
66            Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
67            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
68            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
69            Keyboard.Listen(Key.Space, ButtonState.Down, ammuAseella, "ammu");
70            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
71            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
72            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
73            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
74            ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
75            ControllerOne.Listen(Button.A, ButtonState.Down, pyssy.Use, "ammu");
76
77            Mouse.IsCursorVisible = true;
78            Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
79
80        }
81       void ammuAseella()
82       {
83           
84           PhysicsObject ammus = pyssy.Shoot();
85           if (ammus != null)
86           {
87               ammus.Size = new Vector(50, 50);
88               ammus.Image = LoadImage("bullet");
89               //ammus.Hit(new Vector(200, 0));
90               //Add(ammus);
91           }
92
93       }
94
95        void LiikutaPelaajaa(Vector vektori)
96        {
97            kissa.Push(vektori);
98            Vector tatinAsento = ControllerOne.LeftThumbDirection;
99
100           
101        }
102        void KuunteleLiiketta(AnalogState hiirenTila)
103        {
104            Vector suunta = Mouse.PositionOnWorld - pyssy.Position;
105
106            pyssy.Angle = suunta.Angle;
107        }
108        void ammusOsuu(PhysicsObject ammus, PhysicsObject toinen)
109        {
110            if (toinen.Tag.ToString() != "pelaaja")
111            {
112                ammus.Destroy();
113                Explosion rajahdys = new Explosion(40);
114                rajahdys.Position = ammus.Position;
115                Add(rajahdys);
116            }     
117        }
118        void LiikutaPelaajaa(AnalogState tatinTila)
119        {
120
121            Vector tatinAsento = tatinTila.StateVector;
122           
123            kissa.Push(tatinAsento*1500);
124        }
125}
Note: See TracBrowser for help on using the repository browser.