source: 2012/27/JuhoK/Impossible/Impossible/Impossible/Impossible.cs @ 3537

Revision 3537, 3.3 KB checked in by jumakall, 9 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Impossible : PhysicsGame
10{
11    double moveSpeed = 1000;
12    bool allowMove = false;
13    int kenttaNro = 1;
14
15    PlatformCharacter cube;
16    GameObject pelaajanHaamu;
17
18    Image palikanKuva = LoadImage("palikka");
19
20    public override void Begin()
21    {
22        IsMouseVisible = true;
23        Level.BackgroundColor = Color.Black;
24
25        SetWindowSize(800, 480);
26
27        PushButton startButton = new PushButton("Start");
28        startButton.Clicked += new Action(startGame);
29        Add(startButton);
30
31        Keyboard.Listen(Key.Enter, ButtonState.Pressed, startGame, null);
32        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
33    }
34
35    protected override void Update(Time time)
36    {
37        base.Update(time);
38
39        if (allowMove == true) { 
40            move(); 
41        }
42    }
43
44    void startGame()
45    {
46        ClearAll();
47        Level.Background.Image = LoadImage("backround");
48
49        LuoKentta(kenttaNro);
50
51        Keyboard.Listen(Key.Space, ButtonState.Down, jump, null);
52
53        Gravity = new Vector(0, -7500);
54
55        Camera.Follow(pelaajanHaamu);
56        Camera.StayInLevel = true;
57        //Camera.ZoomToLevel();
58        Camera.ZoomFactor = 0.3;
59
60    }
61
62    void LuoKentta(int kenttaNro)
63    {
64        TileMap ruudut = TileMap.FromLevelAsset("kentta" + kenttaNro);
65        ruudut.SetTileMethod('=', LuoPalikka);
66        ruudut.SetTileMethod('P', LuoPelaaja);
67        ruudut.SetTileMethod('M', LuoMaali);
68        ruudut.Execute(100, 100);
69    }
70
71    void LuoPalikka(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        palikka.Position = paikka;
75        palikka.Image = palikanKuva;
76        palikka.Shape = Shape.Rectangle;
77        palikka.Color = Color.Gray;
78        Add(palikka);
79    }
80
81    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
82    {
83        cube = new PlatformCharacter(leveys, korkeus);
84        cube.Shape = Shape.Rectangle;
85        cube.Position = paikka;
86        cube.CanRotate = false;
87        Add(cube);
88        allowMove = true;
89
90        pelaajanHaamu = new GameObject(leveys, korkeus);       
91        pelaajanHaamu.Position = new Vector(cube.Position.X + Screen.Width / 2, cube.Position.Y);
92        Add(pelaajanHaamu);
93        pelaajanHaamu.IsVisible = false;
94
95    }
96    void LuoMaali(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        palikka.Position = paikka;
100        palikka.Shape = Shape.Rectangle;
101        palikka.Color = Color.Gray;
102        Add(palikka);
103    }
104
105
106    void move()
107    {
108        cube.Move(new Vector(moveSpeed, 0));
109        pelaajanHaamu.Position = new Vector(cube.Position.X + Screen.Width * 1.1, cube.Position.Y);
110    }
111
112    void jump()
113    {
114        cube.Jump(1000);
115    }
116
117    void createExplosion(Vector position)
118    {
119        Explosion explosion = new Explosion(100);
120        explosion.Position = position;
121        Add(explosion);
122    }
123}
124 
Note: See TracBrowser for help on using the repository browser.