source: 2011/26/JaakkoL/Rogue Agent 2372/Rogue Agent 2372/Rogue Agent 2372/Peli.cs @ 2349

Revision 2349, 3.2 KB checked in by jaollipa, 8 years ago (diff)
Line 
1 using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    List<Label> titleMenu;
12    const int SCREEN_WIDTH = 50;
13    const int SCREEN_HEIGTH = 50;
14    Player player;
15    Image background1 = LoadImage("Images/reactorBG");
16
17
18    public override void Begin()
19    {
20        menuCreate();
21       
22    }
23
24    void menuCreate()
25    {
26        ClearAll();
27        titleMenu = new List<Label>();
28
29        Label button1 = new Label("Start Game");
30        button1.Position = new Vector(0, 40);
31        titleMenu.Add(button1);
32
33        Label button2 = new Label("Exit Game");
34        button2.Position = new Vector(0, -40);
35        titleMenu.Add(button2);
36
37        foreach (Label titleMenuScreen in titleMenu)
38        {
39            Add(titleMenuScreen);
40        }
41
42        Mouse.ListenOn(button1, MouseButton.Left, ButtonState.Pressed, StartGame, null);
43        Mouse.ListenOn(button2, MouseButton.Left, ButtonState.Pressed, Exit, null);
44
45        Mouse.IsCursorVisible = true;
46        Mouse.ListenMovement(1.0, MenuMovement, null);
47        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
48    }
49
50    void MenuMovement(AnalogState mouseState)
51    {
52        foreach (Label button in titleMenu)
53        {
54            if (Mouse.IsCursorOn(button))
55            {
56                button.TextColor = Color.DarkRed;
57            }
58            else
59            {
60                button.TextColor = Color.DarkBlue;
61            }
62        }
63    }
64
65    void StartGame()
66    {
67        ClearAll();
68        createLevel();
69        Gravity = new Vector(0, -1000);
70
71        // Starts playing the background music, which is set to repeat
72        MediaPlayer.Play("Sounds/Stage1Music");
73        MediaPlayer.Volume = 0.5;
74        MediaPlayer.IsRepeating = true;
75
76        Camera.Follow(player);
77        Camera.ZoomFactor = 1.0;
78        Camera.StayInLevel = true;
79    }
80
81    void createLevel()
82    {
83        TileMap levelSpec = TileMap.FromFile("ReactorEntrance.txt");
84        levelSpec['='] = createVerticalBlock;
85        levelSpec['|'] = createHorizontalBlock;
86        levelSpec['P'] = addPlayer;
87        levelSpec['a'] = addMeleeAlien;
88        levelSpec.Insert(SCREEN_WIDTH, SCREEN_HEIGTH);
89        Level.CreateBorders();
90        Level.Background.Image = background1;
91    }
92
93    Player addPlayer()
94    {
95        player = new Player(33, 74, Shape.Rectangle);
96        return player;
97    }
98
99    MeleeAlien addMeleeAlien()
100    {
101        MeleeAlien meleeAlien = new MeleeAlien(45, 80, Shape.Rectangle, 50, "Patrol");
102        return meleeAlien;
103    }
104
105    PhysicsObject createHorizontalBlock()
106    {
107        PhysicsObject hBlock = PhysicsObject.CreateStaticObject(SCREEN_WIDTH, SCREEN_HEIGTH,
108        Shape.Rectangle, CollisionShapeQuality.Best);
109        hBlock.Color = Color.Gray;
110        return hBlock;
111    }
112
113    PhysicsObject createVerticalBlock()
114    {
115        PhysicsObject vBlock = PhysicsObject.CreateStaticObject(SCREEN_WIDTH, SCREEN_HEIGTH,
116        Shape.Rectangle, CollisionShapeQuality.Best);
117        vBlock.Color = Color.DarkGray;
118        return vBlock;
119    }
120}
Note: See TracBrowser for help on using the repository browser.