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

Revision 5909, 4.3 KB checked in by otoskinn, 4 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    Image kaupunkitausta = LoadImage("kaupunkitausta");
12     
13 
14   
15    const double nopeus = 750;
16    const double hyppyNopeus = 1000;
17    const int RUUDUN_KOKO = 42;
18
19    PlatformCharacter pelaaja1;
20
21    Image pelaajanKuva = LoadImage("norsu");
22    Image tahtiKuva = LoadImage("tahti");
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25
26    public override void Begin()
27    {
28        //IsFullScreen = true;
29        SetWindowSize(1024, 768, true); 
30        Gravity = new Vector(0, -1000);
31
32        LuoKentta();
33        LisaaNappaimet();
34
35        Camera.Follow(pelaaja1);
36        Camera.ZoomFactor = 1.2;
37        Camera.StayInLevel = false;
38    }
39
40    void LuoKentta()
41    {
42        TileMap kentta = TileMap.FromLevelAsset("kentta1");
43        kentta.SetTileMethod('#', LisaaTaso);
44        kentta.SetTileMethod('*', LisaaTahti);
45        kentta.SetTileMethod('N', LisaaPelaaja);
46        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
47        Level.CreateBorders();
48        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
49        Level.Background.Image = kaupunkitausta;
50
51        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
52        "Aloita peli","Lopeta");
53        Add(alkuValikko);
54
55
56       
57    }
58
59    void LisaaTaso(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        taso.Position = paikka;
63        taso.Color = Color.Green;
64        Add(taso);
65    }
66
67    void LisaaTahti(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        tahti.IgnoresCollisionResponse = true;
71        tahti.Position = paikka;
72        tahti.Image = tahtiKuva;
73        tahti.Tag = "tahti";
74        Add(tahti);
75    }
76
77    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
78    {
79        pelaaja1 = new PlatformCharacter(leveys, korkeus);
80        pelaaja1.Position = paikka;
81        pelaaja1.Mass = 4.0;
82        pelaaja1.Image = pelaajanKuva;
83        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
84        Add(pelaaja1);
85
86        PhysicsObject auto1 = new PhysicsObject(150
87            , 100);
88        auto1.Shape = Shape.Rectangle;
89        Add(auto1);
90    }
91
92
93    void LisaaNappaimet()
94    {
95        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
96        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
97
98        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
99        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
100        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
101        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
102
103        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
104
105        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
106        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
107        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
108        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 2.0,
109  LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
110        Vector tatinAsento = ControllerOne.LeftThumbDirection;
111
112        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
113    }
114
115    void Liikuta(PlatformCharacter hahmo, double nopeus)
116    {
117        hahmo.Walk(nopeus);
118    }
119
120    void Hyppaa(PlatformCharacter hahmo, double nopeus)
121    {
122        hahmo.Jump(nopeus);
123    }
124
125    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
126    {
127        maaliAani.Play();
128        MessageDisplay.Add("Keräsit tähden!");
129        tahti.Destroy();
130    }
131    void LiikutaPelaajaa(AnalogState tatinTila)
132    {
133        Vector tatinAsento = tatinTila.StateVector;
134    }
135}
Note: See TracBrowser for help on using the repository browser.