source: 2012/kerho/ljov/Enter_name/Enter_name/Enter_name/Enter_name.cs @ 3885

Revision 3885, 5.1 KB checked in by sijoseha, 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 Enter_name : PhysicsGame
10{
11    const int RUUDUN_KOKO = 40;
12
13    [Save] int Taso;
14
15    public Image pelaajanKuva = LoadImage("norsu");
16    Image tahtiKuva = LoadImage("tahti");
17
18    SoundEffect maaliAani = LoadSoundEffect("maali");
19
20    Hemmo hemmo;
21
22    public override void Begin()
23    {
24        hemmo = new Hemmo();
25
26        if (DataStorage.Exists("save.xml")) LoadGame("save.xml"); else Taso = 0;
27
28        Gravity = new Vector(0, -1000);
29
30        Camera.Follow(hemmo);
31        Camera.ZoomFactor = 0.9;
32        Camera.StayInLevel = true;
33
34        //Kontrollit
35        Mouse.ListenMovement(0.1, hemmo.Tahtaa, "");
36        Mouse.Listen(MouseButton.Left, ButtonState.Down, Toimi, "");
37            Keyboard.Listen(Key.A, ButtonState.Down, Vasen, "");
38        Keyboard.Listen(Key.D, ButtonState.Down, Oikea, "");
39        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy, "");
40            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Pause, "");
41
42            Valikko();
43    }
44
45    public void Valikko()
46    {
47        MultiSelectWindow alku = new MultiSelectWindow("..", "Pelaa", "Kentät", "Lopeta");
48        alku.AddItemHandler(0, Aloita);
49
50        alku.AddItemHandler(2, Exit);
51        alku.DefaultCancel = -1;
52        Add(alku);
53    }
54
55    public void Aloita()
56    {
57        LataaKentta(Taso);
58    }
59
60    void LataaKentta(int taso)
61    {
62        TileMap kentta = TileMap.FromLevelAsset(taso.ToString());
63        kentta.SetTileMethod('0', LisaaTuhottava);
64        kentta.SetTileMethod('#', LisaaTaso);
65        kentta.SetTileMethod('V', LisaaAnsa);
66        kentta.SetTileMethod('*', LisaaLoota);
67        kentta.SetTileMethod('N', LisaaPelaaja);
68        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
69        Level.BackgroundColor = Color.Ivory;
70    }
71
72    void LisaaTaso(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        taso.Position = paikka;
76        taso.Color = Color.LightGray;
77        Add(taso);
78    }
79    void LisaaTuhottava(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        taso.Position = paikka;
83        taso.Color = Color.Brown;
84        taso.Tag = "TuhoaMinut";
85        Add(taso);
86    }
87    void LisaaAnsa(Vector paikka, double leveys, double korkeus)
88    {
89        PhysicsObject ansa = PhysicsObject.CreateStaticObject(leveys, korkeus*0.1);
90        paikka.Y -= korkeus / 2;
91        ansa.Position = paikka;
92        ansa.Color = Color.Blue;
93        ansa.Tag = "Consequence for failure";
94        Add(ansa);
95    }
96    void LisaaLoota(Vector paikka, double leveys, double korkeus)
97    {
98        Loota loota = new Loota((int)leveys, (int)korkeus,20,20);
99        loota.IgnoresCollisionResponse = true;
100        loota.Tag = "laatikko";
101        loota.Position = paikka;
102        loota.Image = tahtiKuva;
103        Add(loota, -1);
104    }
105    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
106    {
107        hemmo.Position = paikka;
108        if (hemmo.IsAddedToGame)
109        {
110        Remove(hemmo);
111        Remove(hemmo.Ase);
112        RemoveCollisionHandlers(hemmo, null, null, null);
113        }
114        Add(hemmo);
115        Add(hemmo.Ase);
116        AddCollisionHandler(hemmo, hemmo.kolari);
117
118        ProgressBar hpbar = new ProgressBar(100, 20);
119        hpbar.Position = new Vector(Screen.Left + 80, Screen.Top -30);
120        hpbar.BindTo(hemmo.hp);
121        Add(hpbar);
122
123        Label Ammocount = new Label();
124        Ammocount.BindTo(hemmo.Ase.Ammo);
125        Add(Ammocount);
126       
127    } //!!?!??!?!??!!?!??!+1
128
129    void LisaaNappaimet()
130    {
131        /*ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
132        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", hemmo, -nopeus);
133        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", hemmo, nopeus);
134        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", hemmo, hyppyNopeus);
135        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); */
136    }
137
138    void Toimi() { hemmo.Toimi(); }
139    void Vasen() { hemmo.Liiku(-1); }
140    void Oikea() { hemmo.Liiku(1); }
141    void Hyppy() { hemmo.Hyppy(); }
142
143    void Pause()
144    {
145        MultiSelectWindow pause = new MultiSelectWindow("", "Jatka", "Alkuun");
146        pause.AddItemHandler(1, Valikko);
147        Add(pause);
148    }
149
150    public void Kuolema()
151    {
152        MultiSelectWindow kuollut = new MultiSelectWindow("Kuolit!", "Uudelleen", "Alkuun");
153        kuollut.AddItemHandler(0, Aloita);
154        kuollut.AddItemHandler(1, Valikko);
155        Add(kuollut);
156    }
157
158    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
159    {
160        base.Update(gameTime); //MITÄS *****
161        if (hemmo != null)hemmo.Ase.Position = hemmo.Position;
162    }
163}
Note: See TracBrowser for help on using the repository browser.