source: 2012/30/JyriP/Lofen/Lofen/Lofen/Lofen.cs @ 3747

Revision 3747, 8.3 KB checked in by anlakane, 8 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
9public class Lofen : PhysicsGame
10{
11    PhysicsObject player;
12    PhysicsObject Reaper;
13
14    int WorldCounter = 1;
15   
16
17    public override void Begin()
18    {
19        IsMouseVisible = true;
20        Window.Title = "Lofen";
21        Start();
22       
23    }
24
25    void Start()
26    {
27        MainMenu();
28    }
29
30    //Menu
31    void MainMenu()
32    {
33
34        ClearAll();
35        MultiSelectWindow mainMenu = new MultiSelectWindow("Lofen", "Start New Game", "Exit");
36        mainMenu.DefaultCancel = 3;
37        mainMenu.DefaultCancel = -1;
38        mainMenu.Color = Level.BackgroundColor;
39        mainMenu.ItemSelected += pressedMenuItem;
40
41        Add(mainMenu);
42    }
43
44    void pressedMenuItem(int MenuItem)
45    {
46        switch (MenuItem)
47        {
48            case 0:
49                CreateBackgroundWorld();
50                CreateWorld1();
51                SetControls(); 
52
53            break;
54
55            case 1:
56                Exit();
57            break;
58        }
59    }
60
61
62    void CreateBackgroundWorld()
63    {
64        TileMap world = TileMap.FromLevelAsset("World/bgMap");
65        world.SetTileMethod('.', bgGrass);
66        world.SetTileMethod('s', bgSand);
67        world.SetTileMethod('w', bgBWater);
68        world.SetTileMethod('q', bgWater);
69        world.Execute(32, 32);
70    }
71
72    void bgGrass(Vector pos, double width, double height)
73    {
74        PhysicsObject tileBG = PhysicsObject.CreateStaticObject(width, height);
75        tileBG.IgnoresCollisionResponse = true;
76
77        Image texture = Game.LoadImage("World/textures/grass");
78        tileBG.Image = texture;
79
80        tileBG.Position = pos;
81        tileBG.Shape = Shape.Rectangle;
82
83
84
85        Add(tileBG, -1);
86    }
87
88    void bgSand(Vector pos, double width, double height)
89    {
90        PhysicsObject tileBG = PhysicsObject.CreateStaticObject(width, height);
91        tileBG.IgnoresCollisionResponse = true;
92
93        Image texture = Game.LoadImage("World/textures/sand");
94        tileBG.Image = texture;
95
96        tileBG.Position = pos;
97        tileBG.Shape = Shape.Rectangle;
98
99
100
101        Add(tileBG, -1);
102    }
103
104    void bgBWater(Vector pos, double width, double height)
105    {
106        PhysicsObject tileBG = PhysicsObject.CreateStaticObject(width, height);
107        tileBG.IgnoresCollisionResponse = false;
108
109        Image[] texture = Game.LoadImages("World/textures/bWater", "World/textures/bWater2");
110        tileBG.Animation = new Animation(texture);
111
112        tileBG.Animation.FPS = 3;
113        tileBG.Animation.Start();
114
115        tileBG.Position = pos;
116        tileBG.Shape = Shape.Rectangle;
117
118
119
120        Add(tileBG, -1);
121    }
122
123    void bgWater(Vector pos, double width, double height)
124    {
125        PhysicsObject tileBG = PhysicsObject.CreateStaticObject(width, height);
126        tileBG.IgnoresCollisionResponse = false;
127
128        Image[] texture = Game.LoadImages("World/textures/Water", "World/textures/Water2");
129        tileBG.Animation = new Animation(texture);
130
131        tileBG.Animation.FPS = 3;
132        tileBG.Animation.Start();
133
134        tileBG.Position = pos;
135        tileBG.Shape = Shape.Rectangle;
136
137
138
139        Add(tileBG, -1);
140    }
141
142    void CreateWorld1()
143    {
144        TileMap world = TileMap.FromLevelAsset("World/map");
145       
146        //Ympäristö
147        world.SetTileMethod('.', CreateGrass);
148        world.SetTileMethod('*', CreateRock);
149        world.SetTileMethod('t', CreateTree);
150
151        //Rakennukset
152        world.SetTileMethod('/', CreateHouseRoofL);
153        world.SetTileMethod('\\', CreateHouseRoofR);
154        world.SetTileMethod('[', CreateHouseBottomL);
155        world.SetTileMethod(']', CreateHouseBottomR);
156       
157        //vihut
158        world.Execute(32, 32);
159       
160        player = CreatePlayer(Level.Left + 200, 0);
161
162        Reaper = CreateReaper(Level.Left + 200.0, 200);
163    }
164    //Player, NPC
165    PhysicsObject CreatePlayer(double x, double y)
166    {
167        PhysicsObject Player = new PhysicsObject(21, 32);
168        Player.Mass = 1;
169
170        Image[] playerAni = Game.LoadImages("sprites/player/player1", "sprites/player/player2", "sprites/player/player3", "sprites/player/player4");
171        Player.Animation = new Animation(playerAni);
172        Player.Animation.FPS = 10;
173        Player.Animation.Start();
174        Player.CanRotate = false;
175        Player.Tag = "Player";
176
177        Add(Player, 1);
178        return Player;
179    }
180
181    PhysicsObject CreateReaper(double x, double y)
182    {
183        PhysicsObject Reaper = new PhysicsObject(21, 32);
184        Reaper.Mass = 1;
185
186        Image[] ReaperAni = Game.LoadImages("Reaper", "Reaper2");
187        Reaper.Animation = new Animation(ReaperAni);
188        Reaper.Animation.FPS = 5;
189        Reaper.Animation.Start();
190        Reaper.CanRotate = false;
191
192        RandomMoverBrain reaperAI = new RandomMoverBrain(50);
193        reaperAI.ChangeMovementSeconds = 5;
194       
195        Reaper.Brain = reaperAI;
196
197        Add(Reaper, 1);
198        return Reaper;
199    }
200
201
202    //Ympäristö
203    void CreateGrass(Vector pos, double width, double height)
204    {
205        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
206        tile.IgnoresCollisionResponse = true;
207
208        Image texture = Game.LoadImage("World/textures/grass");
209        tile.Image = texture;
210
211        tile.Position = pos;
212        tile.Shape = Shape.Rectangle;
213
214
215
216        Add(tile);
217    }
218   
219    void CreateRock(Vector pos, double width, double height)
220    {
221        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
222        tile.CollisionIgnoreGroup = 1;
223
224        Image texture = Game.LoadImage("World/textures/rock");
225        tile.Image = texture;
226
227        tile.Position = pos;
228        tile.Shape = Shape.Rectangle;
229
230
231
232        Add(tile);
233    }
234    void CreateTree(Vector pos, double width, double height)
235    {
236        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
237        tile.CollisionIgnoreGroup = 1;
238
239        Image[] texture = Game.LoadImages("World/textures/tree", "World/textures/tree2");
240        tile.Animation = new Animation(texture);
241        tile.Animation.FPS = 1;
242        tile.Animation.Start();
243        tile.Position = pos;
244        tile.Shape = Shape.Rectangle;
245
246        Add(tile);
247    }
248
249    //Ympäristö Loppuu
250   
251    //Rakennukset
252    void CreateHouseRoofL(Vector pos, double width, double height)
253    {
254        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
255        tile.CollisionIgnoreGroup = 1;
256
257        Image texture = Game.LoadImage("World/textures/houseRoofL");
258        tile.Image = texture;
259
260        tile.Position = pos;
261        tile.Shape = Shape.Rectangle;
262
263
264
265        Add(tile);
266    }
267
268    void CreateHouseRoofR(Vector pos, double width, double height)
269    {
270        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
271        tile.CollisionIgnoreGroup = 1;
272
273        Image texture = Game.LoadImage("World/textures/houseRoofR");
274        tile.Image = texture;
275
276        tile.Position = pos;
277        tile.Shape = Shape.Rectangle;
278
279
280
281        Add(tile);
282    }
283
284    void CreateHouseBottomL(Vector pos, double width, double height)
285    {
286        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
287        tile.CollisionIgnoreGroup = 1;
288
289        Image texture = Game.LoadImage("World/textures/houseBottomL");
290        tile.Image = texture;
291
292        tile.Position = pos;
293        tile.Shape = Shape.Rectangle;
294
295
296
297        Add(tile);
298    }
299
300    void CreateHouseBottomR(Vector pos, double width, double height)
301    {
302        PhysicsObject tile = PhysicsObject.CreateStaticObject(width, height);
303        tile.CollisionIgnoreGroup = 1;
304
305        Image texture = Game.LoadImage("World/textures/houseBottomR");
306        tile.Image = texture;
307
308        tile.Position = pos;
309        tile.Shape = Shape.Rectangle;
310
311
312
313        Add(tile);
314    }
315   
316    //Rakennukset Loppuu
317   
318
319    void SetControls()
320    {
321        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Move, "");
322        Keyboard.Listen(Key.Escape, ButtonState.Pressed, MainMenu, "");
323    }
324
325    void Move()
326    {
327        player.MoveTo(Mouse.PositionOnWorld, 50);
328    }
329
330
331}
Note: See TracBrowser for help on using the repository browser.