source: 2012/26/JariK/Jimmys adventure/Jimmys adventure/Jimmys adventure/Jimmys_adventure.cs @ 3326

Revision 3326, 5.4 KB checked in by jatakorh, 9 years ago (diff)

Talletus.

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   
12
13
14
15
16
17
18public class Jimmys_adventure : PhysicsGame
19{
20    const double nopeus = 1;
21    const double hyppyNopeus = 50;
22    const int RUUDUN_KOKO = 40;
23
24
25    PhysicsObject Jimmy;
26    PhysicsObject Hemmo;
27    AssaultRifle pyssy;
28    DoubleMeter voimaMittari;
29   
30    public override void Begin()
31    {
32        voimaMittari = new DoubleMeter(10);
33        voimaMittari.MaxValue = 10;
34        ProgressBar voimaPalkki = new ProgressBar(150, 10);
35        voimaPalkki.BindTo(voimaMittari);
36        Add(voimaPalkki);
37
38        voimaPalkki.X = Screen.Right - 150;
39        voimaPalkki.Y = Screen.Top - 20;
40        voimaPalkki.Angle = Angle.RightAngle;
41        voimaPalkki.BarColor = Color.Green;
42        voimaPalkki.BorderColor = Color.White;
43        voimaPalkki.Angle = Angle.FromDegrees(90);
44        // Kun voima loppuu, kutsutaan VoimaLoppui-aliohjelmaa
45        voimaMittari.LowerLimit += VoimaLoppui;         
46
47        Gravity = new Vector(0.0, -800.0);
48        Surface alaReuna = Surface.CreateBottom(Level);
49        alaReuna.Y += 200;
50        Add(alaReuna);
51        alaReuna.Color = Color.Black;
52        TileMap ruudut = TileMap.FromLevelAsset ("kentta1");
53        ruudut.SetTileMethod('#', LuoPalikka);
54        ruudut.SetTileMethod('J', LuoJimmy);
55        ruudut.SetTileMethod('M', Luomaali);
56        ruudut.SetTileMethod('H', luoHemmo);
57        ruudut.SetTileMethod('S', luoseina);
58        ruudut.SetTileMethod('T', luoTNT);
59        ruudut.Execute(20, 20);
60        Camera.ZoomToLevel();
61        FollowerBrain HemmoAivot = new FollowerBrain(Jimmy);
62        HemmoAivot.Speed = 50;
63        HemmoAivot.DistanceFar = 30;
64        HemmoAivot.DistanceClose = 500;
65        HemmoAivot.StopWhenTargetClose = false;
66        HemmoAivot.TargetClose += mitaTapahtuuKunOllaanLahella;
67        Hemmo.Brain = HemmoAivot;
68        Add(Hemmo);
69        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, null);
70        Keyboard.Listen(Key.D, ButtonState.Down, liikutaJimmya, null, new Vector (9000, 0));
71        Keyboard.Listen(Key.A, ButtonState.Down, liikutaJimmya, null, new Vector (-9000, 0) );
72        Keyboard.Listen(Key.W, ButtonState.Down, liikutaJimmya, null, new Vector(0, 9000));
73       
74    }
75     void VahennaVoimia()
76    {
77        voimaMittari.Value--;
78    }
79
80     void VoimaLoppui()
81     {
82         MessageDisplay.Add("Voimat loppuivat, voi voi.");
83         Jimmy.Destroy;
84
85    }
86    void liikutaJimmya(Vector liikkuminen )
87    {        Jimmy.Push(liikkuminen);
88    }
89    void LuoPalikka(Vector paikka, double leveys, double korkeus)
90{
91    PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
92    palikka.Position = paikka; 
93    palikka.Shape = Shape.Rectangle;
94    palikka.Color = Color.Gray;
95    Add(palikka);
96 
97 
98    }
99    void LuoJimmy(Vector paikka, double leveys, double korkeus)
100    {
101        Jimmy = new PhysicsObject(35, 35);
102        Jimmy.Color = Color.LightGreen;
103        Level.BackgroundColor = Color.Brown;
104        Image JimmyKuva = LoadImage("Jimmy");
105        Jimmy.Image = JimmyKuva;
106        Jimmy.Tag = "Jimmy";       
107        Add(Jimmy);
108        Jimmy.Position = paikka;
109        Jimmy.Mass = 10.0;       
110   AddCollisionHandler(Jimmy, "pahis", CollisionHandler.ExplodeTarget(50,true));
111   AddCollisionHandler(Jimmy, "maali", Maaliinpääsy);
112    }
113    void Luomaali(Vector paikka, double leveys, double korkeus)
114    { PhysicsObject maali = new PhysicsObject(40, 40);
115        Add(maali);
116        maali.Mass= 1000000.0;
117        maali.Tag =  "maali";
118        maali.Position = paikka;
119        maali.Shape = Shape.Rectangle;
120       
121    }
122    void luoHemmo(Vector paikka, double leveys, double korkeus)
123    {   Hemmo = new PhysicsObject(30, 30);
124        Hemmo.Color = Color.Blue;
125        Hemmo.Tag = "pahis";
126        Hemmo.Shape = Shape.Circle;
127        Hemmo.Position = paikka;
128        Hemmo.Mass = 15.0;
129        pyssy = new AssaultRifle(30, 20);
130        Hemmo.Add(pyssy);
131        pyssy.Ammo.Value = 100;
132        pyssy.ProjectileCollision = AmmusOsui;
133       
134       
135       
136
137    }
138    void Maaliinpääsy(PhysicsObject Jimmy, PhysicsObject maali)
139    {
140        Exit();
141    }
142    void mitaTapahtuuKunOllaanLahella()
143    {Vector suunta = (Jimmy.Position - Hemmo.Position).Normalize();
144    Hemmo.Angle = suunta.Angle;
145        pyssy.Shoot();
146    }
147    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
148    {
149        ammus.Destroy();
150        Explosion rajahdys = new Explosion(70);
151        rajahdys.Position = ammus.Position;
152        Add(rajahdys);
153        if (kohde == Jimmy)
154        {
155            VahennaVoimia();
156        }
157    }
158
159    void luoseina(Vector paikka, double leveys, double korkeus)
160    {PhysicsObject seina = new PhysicsObject(30, 30);
161        seina.Color = Color.Gray;
162        seina.Mass = 10.0;
163        seina.Position = paikka;
164        Add(seina);
165    }
166
167    void luoTNT(Vector paikka, double leveys, double korkeus)
168    {
169        PhysicsObject TNT = new PhysicsObject(50, 50);
170        TNT.Color = Color.Blue;
171        TNT.Mass = 100.0;
172        TNT.Position = paikka;
173        TNT.Tag = "rajahde";
174        AddCollisionHandler( TNT, "Jimmy", CollisionHandler.ExplodeObject(1000, true));
175        Add(TNT);
176    }
177 
178    }
179
180
Note: See TracBrowser for help on using the repository browser.