source: 2012/30/MatiasS/Oma_peli/Oma_peli/Oma_peli/Oma_peli.cs @ 3742

Revision 3742, 5.1 KB checked in by majusiro, 7 years ago (diff)

Talletus.

Line 
1using System.Collections.Generic;
2using System;
3using System.Collections.Generic;
4using Jypeli;
5using Jypeli.Assets;
6using Jypeli.Controls;
7using Jypeli.Effects;
8using Jypeli.Widgets;
9
10public class Oma_peli : PhysicsGame
11{
12
13    Image TehtavaKuva = LoadImage( "tkuva" );
14    AssaultRifle pelaajan1Ase;
15    PhysicsObject pelaaja;
16    public override void Begin()
17    {
18        LuoPelaaja();
19        LuoNappaimet();
20        LuoTaustavari();
21        LuoKentta();
22
23       
24
25
26    }
27
28
29
30    void LuoKentta()
31    {
32        TileMap ruudut = TileMap.FromLevelAsset("kentta");
33        ruudut.SetTileMethod('@', TehtavanAnto);
34        ruudut.SetTileMethod('#', LuoIhminen);
35        ruudut.SetTileMethod('x', LuoPunainenTalo);
36        ruudut.SetTileMethod('y', LuoKeltainenTalo);
37        ruudut.SetTileMethod('k', LuoHarmaaTalo);
38        ruudut.SetTileMethod('o', LuoTalo);
39        ruudut.Execute(250, 250);
40        Level.CreateBorders();
41
42
43
44
45    }
46    void LuoTalo(Vector paikka, double leveys, double korkeus)
47    {
48
49        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
50        talo.Position = paikka;
51        Add(talo);
52    }
53
54    void LuoKeltainenTalo(Vector paikka, double leveys, double korkeus)
55    {
56
57        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
58        talo.Position = paikka;
59        talo.Color = Color.Yellow;
60        Add(talo);
61    }
62    void LuoHarmaaTalo(Vector paikka, double leveys, double korkeus)
63    {
64
65        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        talo.Position = paikka;
67        talo.Color = Color.Gray;
68        Add(talo);
69    }
70
71    void LuoPunainenTalo(Vector paikka, double leveys, double korkeus)
72    {
73
74        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        talo.Position = paikka;
76        talo.Color = Color.Red;
77        Add(talo);
78    }
79
80
81
82
83    void LuoPelaaja()
84    {
85
86        pelaaja = new PhysicsObject(40, 20);
87        pelaaja.CanRotate = false;
88        pelaaja.Shape = Shape.Circle;
89        Add(pelaaja);
90        Mouse.IsCursorVisible = true;
91        Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
92        Ase();
93
94        Camera.Follow(pelaaja);
95
96    }
97
98    void KuunteleLiiketta(AnalogState hiirenTila)
99    {
100        Vector etaisyys = Mouse.PositionOnWorld - pelaaja.Position;
101        pelaaja.Angle = etaisyys.Angle + Angle.RightAngle;
102    }
103
104
105    void LuoTaustavari()
106    {
107
108
109        Level.BackgroundColor = Color.Blue;
110
111
112    }
113
114    void LuoNappaimet()
115    {
116        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
117        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaajan1Ase);
118
119
120        Keyboard.Listen(Key.D, ButtonState.Down,
121          LiikutaPelaajaa, null, new Vector(-1000, 0));
122        Keyboard.Listen(Key.A, ButtonState.Down,
123          LiikutaPelaajaa, null, new Vector(1000, 0));
124        Keyboard.Listen(Key.W, ButtonState.Down,
125          LiikutaPelaajaa, null, new Vector(0, 1000));
126        Keyboard.Listen(Key.S, ButtonState.Down,
127          LiikutaPelaajaa, null, new Vector(0, -1000));
128    }
129
130    void LiikutaPelaajaa(Vector vektori)
131    {
132        pelaaja.Push(vektori);
133        pelaaja.LinearDamping = 0.9;
134
135    }
136
137    void Ase()
138    {
139        pelaajan1Ase = new AssaultRifle(30, 10);
140        //pelaajan1Ase.Angle = Angle.RightAngle;
141        pelaajan1Ase.Angle = pelaaja.Angle - Angle.FromDegrees(90);
142        pelaajan1Ase.ProjectileCollision = AmmusOsui;
143        pelaaja.Add(pelaajan1Ase);
144        //Ammusten määrä aluksi:
145        pelaajan1Ase.Ammo.Value = 1000;
146    }
147
148    void AmmuAseella(AssaultRifle ase)
149    {
150        PhysicsObject ammus = ase.Shoot();
151
152        if (ammus != null)
153        {
154            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
155            AddCollisionHandler(ammus, "ihminen", CollisionHandler.DestroyBoth);
156        }
157    }
158    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
159    {
160       
161
162    }
163   
164    void LuoIhminen(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject ihminen = new PhysicsObject(50, 50);
167        ihminen.Tag = "ihminen";
168        ihminen.Position = paikka;
169        ihminen.Shape = Shape.Circle;
170        Add(ihminen);
171
172        List<Vector> polku = new List<Vector>();
173        polku.Add(new Vector(-300, -350));
174        polku.Add(new Vector(-350, 300));
175        polku.Add(new Vector(-200, -210));
176
177        PathFollowerBrain polkuAivot = new PathFollowerBrain();
178        polkuAivot.Path = polku;
179        ihminen.Brain = polkuAivot;
180    }
181
182    void TehtavanAnto(Vector paikka, double leveys, double korkeus)
183    {
184        PhysicsObject tehtava = PhysicsObject.CreateStaticObject(80, 80);
185        tehtava.Tag = "tehtava";
186        tehtava.Image = TehtavaKuva;
187        Add(tehtava);
188        AddCollisionHandler(pelaaja, "tehtava", TormaysTehtavaan);
189    }
190       
191        void TormaysTehtavaan(PhysicsObject pelaaja, PhysicsObject tehtava)
192{
193    MessageDisplay.Add("Tehtävä");
194
195}
196
197
198
199   
200
201
202}
Note: See TracBrowser for help on using the repository browser.