source: 2015/24/OttoK/Grand Theft Norsu II/Grand Theft Norsu II/Grand Theft Norsu II/Grand_Theft_Norsu_II.cs @ 5931

Revision 5931, 5.9 KB checked in by sieerinn, 5 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 Grand_Theft_Norsu_II : PhysicsGame
10{
11   
12    Image kaupunkitausta = LoadImage("kaupunkitausta");
13     
14 
15   
16    const double nopeus = 750;
17    const double hyppyNopeus = 1000;
18    const int RUUDUN_KOKO = 42;
19
20   
21
22    PlatformCharacter pelaaja1;
23
24    Image pelaajanKuva = LoadImage("norsu");
25    Image tahtiKuva = LoadImage("tahti");
26    Image auto1kuva = LoadImage("auto1kuva");
27    double hyppykerroin = 1.0;
28
29    SoundEffect maaliAani = LoadSoundEffect("maali");
30
31    public override void Begin()
32    {
33        //IsFullScreen = true;
34        SetWindowSize(1024, 768, true); 
35        Gravity = new Vector(0, -1000);
36
37        Mouse.IsCursorVisible = true;
38        Vector paikkaRuudulla = Mouse.PositionOnScreen;
39        Vector paikkaKentalla = Mouse.PositionOnWorld;
40
41        LuoKentta();
42        LisaaNappaimet();
43
44        Camera.Follow(pelaaja1);
45        Camera.ZoomFactor = 1.2;
46        Camera.StayInLevel = false;
47    }
48
49    void LuoKentta()
50    {
51        TileMap kentta = TileMap.FromLevelAsset("kentta1");
52        kentta.SetTileMethod('#', LisaaTaso);
53        kentta.SetTileMethod('*', LisaaTahti);
54        kentta.SetTileMethod('N', LisaaPelaaja);
55        kentta.SetTileMethod('A', LuoAuto);
56        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
57        Level.CreateBorders();
58        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
59        Level.Background.Image = kaupunkitausta;
60
61        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
62        "Aloita peli","Lopeta");
63        Add(alkuValikko);
64
65
66       
67    }
68
69    void LisaaTaso(Vector paikka, double leveys, double korkeus)
70    {
71        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
72        taso.Position = paikka;
73        taso.Color = Color.Green;
74        Add(taso);
75    }
76
77    void LisaaTahti(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        tahti.IgnoresCollisionResponse = true;
81        tahti.Position = paikka;
82        tahti.Image = tahtiKuva;
83        tahti.Tag = "tahti";
84        Add(tahti);
85    }
86
87    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
88    {
89        pelaaja1 = new PlatformCharacter(leveys, korkeus);
90        pelaaja1.Position = paikka;
91        pelaaja1.Mass = 4.0;
92        pelaaja1.Image = pelaajanKuva;
93        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
94        Add(pelaaja1);
95
96       
97    }
98    void MeneAutoon(PhysicsObject auto)
99    {
100        pelaaja1.Image = auto1kuva;
101        pelaaja1.Shape = Shape.FromImage(auto1kuva);
102
103        Vector autonPaikka = auto.Position;
104       
105
106
107
108    }
109
110
111
112
113    void LisaaNappaimet()
114    {
115        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
116        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
117
118        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
119        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
120        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
121        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
122        Keyboard.Listen(Key.F2, ButtonState.Down, AvaaKirjoitusIkkuna, "Avaa kirjoitusikkunan");
123        Keyboard.Listen(Key.LeftControl, ButtonState.Pressed, AsetaHyppykerroin, "Korkeampi hyppy", 1.5);
124        Keyboard.Listen(Key.LeftControl, ButtonState.Released, AsetaHyppykerroin, null, 1.0);
125        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, TarkistaHiirenPainallus, "Objektin kohdalla toiminto");
126     
127
128        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
129
130        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
131        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
132        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
133        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 2.0,
134        LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
135        Vector tatinAsento = ControllerOne.LeftThumbDirection;
136
137        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
138    }
139
140    void Liikuta(PlatformCharacter hahmo, double nopeus)
141    {
142        hahmo.Walk(nopeus);
143    }
144
145    void Hyppaa(PlatformCharacter hahmo, double nopeus)
146    {
147        hahmo.Jump(nopeus*hyppykerroin);
148    }
149
150    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
151    {
152        maaliAani.Play();
153        MessageDisplay.Add("Keräsit tähden!");
154        tahti.Destroy();
155    }
156    void LiikutaPelaajaa(AnalogState tatinTila)
157    {
158        Vector tatinAsento = tatinTila.StateVector;
159    }
160    void TarkistaHiirenPainallus()
161    { 
162
163    }
164    void LuoAuto(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject auto1 = new PhysicsObject(auto1kuva);
167        auto1.Shape = Shape.FromImage(auto1kuva);
168        auto1.Position = paikka+ new Vector(0, 40);
169        auto1.Image = auto1kuva;
170        auto1.Mass = 350;
171        Add(auto1);
172
173    }
174    void AvaaKirjoitusIkkuna()
175    {
176        InputWindow kysymysIkkuna = new InputWindow("");
177        kysymysIkkuna.TextEntered += ProcessInput;
178        Add(kysymysIkkuna);
179
180    }
181    void ProcessInput(InputWindow ikkuna)
182    {
183        string vastaus = ikkuna.InputBox.Text;
184        // tehdään jotain vastauksella
185    }
186    void AsetaHyppykerroin(double haluttukerroin)
187    {
188        hyppykerroin = haluttukerroin;
189    }
190}
Note: See TracBrowser for help on using the repository browser.