source: 2014/koodauskerho/38/AakeR/Destroy/Destroy/Destroy/Destroy.cs @ 5734

Revision 5734, 4.2 KB checked in by jotapoti, 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 Destroy : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15
16    Image pelaajanKuva = LoadImage("norsu");
17    Image tahtiKuva = LoadImage("tahti");
18    Image pommiKuva = LoadImage("TNT");
19    Image palikkaKuva = LoadImage("Palikka");
20    Image puuKuva = LoadImage("PuuPalikka");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26        Gravity = new Vector(0, -1000);
27
28        LuoKentta();
29        LisaaNappaimet();
30        Mouse.IsCursorVisible = true;
31
32        //Camera.ZoomFactor = 1.5;
33        //Camera.ZoomToLevel();
34        IsFullScreen = true;
35        Camera.StayInLevel = true;
36    }
37
38    void LuoKentta()
39    {
40        TileMap kentta = TileMap.FromLevelAsset("kentta1");
41        kentta.SetTileMethod('#', LisaaTaso);
42        kentta.SetTileMethod('?', LisaaPalikka);
43        kentta.SetTileMethod('&', LisaaPuu);
44        kentta.SetTileMethod('*', LisaaTahti);
45        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
46        Level.CreateBorders();
47        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
48    }
49
50    void LisaaTaso(Vector paikka, double leveys, double korkeus)
51    {
52        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
53        taso.Position = paikka;
54        taso.Color = Color.Gray;
55        Add(taso);
56        taso.Restitution = 0.3;
57    }
58
59    void LisaaTahti(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        tahti.IgnoresCollisionResponse = true;
63        tahti.Position = paikka;
64        tahti.Image = tahtiKuva;
65        tahti.Tag = "tahti";
66        Add(tahti);
67    }
68
69    void LisaaPuu(Vector paikka, double leveys, double korkeus)
70    {
71        PhysicsObject puu = new PhysicsObject(leveys*3, korkeus);
72        puu.Position = paikka;
73        puu.Color = Color.Green;
74        Add(puu);
75        puu.Image = puuKuva;
76        puu.Mass = 10.0;
77    }
78
79    void LisaaNappaimet()
80    {
81        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
82        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
83        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, LuoPommi, "Luo Pommi");
84        Keyboard.Listen(Key.R, ButtonState.Pressed, UusiPeli, "Uusi peli");
85
86
87        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
88    }
89
90    void Liikuta(PlatformCharacter hahmo, double nopeus)
91    {
92        hahmo.Walk(nopeus);
93    }
94
95    void Hyppaa(PlatformCharacter hahmo, double nopeus)
96    {
97        hahmo.Jump(nopeus);
98    }
99
100    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
101    {
102        maaliAani.Play();
103        MessageDisplay.Add("Keräsit tähden!");
104        tahti.Destroy();
105    }
106    void LisaaPalikka(Vector paikka, double leveys, double korkeus)
107    {
108        PhysicsObject palikka = new PhysicsObject(leveys, korkeus);
109        palikka.Position = paikka;
110        palikka.Color = Color.Green;
111        Add(palikka);
112        palikka.Image = palikkaKuva;
113        palikka.Mass = 10.0;
114    }
115    void LuoPommi()
116    {
117        Vector paikka = Mouse.PositionOnWorld;
118        if (paikka.X < Level.Right - 50 && paikka.X > Level.Left + 50)
119            if (paikka.Y < Level.Top - 50 && paikka.Y > Level.Bottom + 200)
120            {
121                PhysicsObject pommi = new PhysicsObject(80, 50);
122                pommi.Position = Mouse.PositionOnWorld;
123                pommi.Color = Color.Green;
124                pommi.Image = pommiKuva;
125                pommi.Mass = 10.0;
126                pommi.Restitution = 0.3;
127                Timer.SingleShot(3.0, delegate { Rajahdys(pommi); });
128                Add(pommi);
129            }
130    }
131
132    void Rajahdys(PhysicsObject pommi)
133    {
134        Explosion rajahdys = new Explosion(150);
135        rajahdys.Position = pommi.Position;
136        Add(rajahdys);
137        pommi.Destroy();
138
139    }
140
141    void UusiPeli()
142    {
143        LuoKentta();
144    }
145
146
147}
Note: See TracBrowser for help on using the repository browser.