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

Revision 1198, 5.5 KB checked in by paaaanro, 10 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, .5);
20        }
21        LaserGun pyssy2;
22        AssaultRifle pyssy;
23        void LuoKentta()
24        {
25            TileMap ruudut = TileMap.FromFile("kentta.txt");
26            ruudut['='] = LuoPalikka;
27            ruudut.Insert(ruudunLeveys, ruudunKorkeus);
28            Level.BackgroundColor = Color.White;
29            Camera.ZoomToLevel();
30            PhysicsObject kissa = new PhysicsObject(40, 20);
31            kissa.Shape = Shapes.Rectangle;
32            kissa.Mass = 10.0;
33            Add(kissa);
34         
35        }
36       
37
38
39
40 
41       
42    PhysicsObject LuoPalikka()
43        {
44            PhysicsObject palikka = PhysicsObject.CreateStaticObject(20.0, 20.0);
45            Add(palikka);
46            palikka.Color = Color.Black;
47           
48        return palikka;
49        }
50        PhysicsObject kissa;
51
52        void ABC()
53        {
54            kissa = new PhysicsObject(200, 400);
55            kissa.Tag = "pelaaja";
56            kissa.Angle = Angle.Degrees(0);
57            Add(kissa);
58            pyssy = new AssaultRifle(100, 100);
59            pyssy2 = new LaserGun(100, 100);
60            pyssy.BulletCollision = ammusOsuu;
61            pyssy2.LaserCollision = ammusOsuu;
62            kissa.Image = LoadImage("longcat");
63            pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(100);
64            kissa.Add(pyssy);
65            kissa.Add(pyssy2);
66            kissa.CanRotate = false;
67            pyssy.Ammo.Value = 500;
68            kissa.Color = Color.Black;
69            Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
70            Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
71            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
72            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
73            Mouse.Listen(MouseButton.Left, ButtonState.Down, ammuAseella, "ammu");
74            Mouse.Listen(MouseButton.Right, ButtonState.Down, ammuAseella2, "ammu");
75            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
76            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
77            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
78            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
79            ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
80            ControllerOne.Listen(Button.A, ButtonState.Down, ammuAseella, "ammu");
81             
82            Mouse.IsCursorVisible = true;
83            Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
84
85        }
86       void ammuAseella()
87       {
88           
89           PhysicsObject ammus = pyssy.Shoot();
90           if (ammus != null)
91           {
92               ammus.Tag = "ammus";
93               ammus.IgnoresCollisionResponse = true;
94               ammus.IgnoresExplosions = true;
95               ammus.Size = new Vector(65, 20);
96               ammus.Image = LoadImage("bullet");
97               ammus.IgnoresGravity = true;
98               
99               //ammus.Hit(new Vector(200, 0));
100               //Add(ammus);
101           }
102
103       
104       }
105
106       void ammuAseella2()
107       {
108
109           PhysicsObject ammus = pyssy2.Shoot();
110           if (ammus != null)
111           {
112               ammus.Tag = "ammus";
113               ammus.IgnoresCollisionResponse = true;
114               ammus.IgnoresExplosions = true;
115               ammus.Size = new Vector(80, 20);
116               ammus.MaximumLifetime = TimeSpan.FromMinutes(1);
117               ammus.IgnoresGravity = true;
118               
119               //ammus.Hit(new Vector(200, 0));
120               //Add(ammus);
121           }
122
123
124       }
125       void LiikutaPelaajaa(Vector vektori)
126        {
127            kissa.Push(vektori);
128            Vector tatinAsento = ControllerOne.LeftThumbDirection;
129
130           
131        }
132
133        void KuunteleLiiketta(AnalogState hiirenTila)
134        {
135            Vector suunta = Mouse.PositionOnWorld - pyssy.AbsolutePosition;
136           
137           
138
139           
140           
141            pyssy.Angle = suunta.Angle;
142            pyssy2.Angle = suunta.Angle;
143        }
144
145        void ammusOsuu(PhysicsObject ammus, PhysicsObject toinen)
146        {
147            if (toinen.Tag.ToString() != "pelaaja" && toinen.Tag.ToString() != "ammus")
148            {
149                ammus.Destroy();
150                Explosion rajahdys = new Explosion(40);
151                rajahdys.Position = ammus.Position;
152                Add(rajahdys);
153            }     
154        }
155        void LiikutaPelaajaa(AnalogState tatinTila)
156        {
157
158            Vector tatinAsento = tatinTila.StateVector;
159           
160            kissa.Push(tatinAsento*1500);
161        }
162}   
Note: See TracBrowser for help on using the repository browser.