source: 2014/27/WilleK/Project_000/Project_000/Project_000/Project_000.cs @ 5186

Revision 5186, 4.0 KB checked in by wiaukota, 7 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 Project_000 : PhysicsGame
10{
11    const double nopeus = 80;
12    const double hyppyNopeus = 400;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Pelaaja1");
18    Image tahtiKuva = LoadImage("tahti");
19    Image ruohoKuva = LoadImage("Ruoho");
20    Image ruohoKuva = LoadImage("Alkuvalikko");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26        SmoothTextures = false;
27        IsMouseVisible = true;
28        IsFullScreen = true;
29        alkuvalikko();
30    }
31
32    void AloitaPeli()
33    {
34        ClearAll();
35        Gravity = new Vector(0, -1000);
36
37        LuoKentta();
38        LisaaNappaimet();
39
40        Camera.Follow(pelaaja1);
41        Camera.ZoomFactor = 1.2;
42        Camera.StayInLevel = true;
43    }
44
45    void alkuvalikko()
46    {
47        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko","Start", "Options", "Quit");
48        Add(alkuValikko);
49
50        alkuValikko.Image=
51
52        alkuValikko.AddItemHandler(0, AloitaPeli);
53        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
54        alkuValikko.AddItemHandler(2, Exit);
55    }
56
57    void LuoKentta()
58    {
59        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kenttä1");
60        ruudut.SetTileMethod(Color.Blue, LisaaPelaaja);
61        ruudut.SetTileMethod(Color.Black, LisaaTaso);
62        ruudut.SetTileMethod(Color.Yellow, LisaaTahti);
63        ruudut.Execute(20, 20);
64
65        Level.CreateBorders();
66    }
67
68    void LisaaTaso(Vector paikka, double leveys, double korkeus)
69    {
70        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
71        taso.Position = paikka;
72        taso.Image = ruohoKuva;
73        Add(taso);
74    }
75
76    void LisaaTahti(Vector paikka, double leveys, double korkeus)
77    {
78        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
79        tahti.IgnoresCollisionResponse = true;
80        tahti.Position = paikka;
81        tahti.Image = tahtiKuva;
82        tahti.Tag = "tahti";
83        Add(tahti);
84    }
85
86    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
87    {
88        pelaaja1 = new PlatformCharacter(leveys, korkeus);
89        pelaaja1.Position = paikka;
90        pelaaja1.Mass = 4.0;
91        pelaaja1.Image = pelaajanKuva;
92        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
93        Add(pelaaja1);
94    }
95
96    void LisaaNappaimet()
97    {
98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
100        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaPeli, null);
101
102        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
103        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
104        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
105
106        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
107
108        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
109        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
110        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
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        tahti.Destroy();
129    }
130}
Note: See TracBrowser for help on using the repository browser.