source: 2016/24/MattiK/ZlandZ/ZlandZ/ZlandZ/ZlandZ.cs @ 7266

Revision 7266, 5.2 KB checked in by majuvika, 3 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 ZlandZ : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter Leaf;
16    PlatformCharacter Sombombo;
17
18    Image pelaajanKuva = LoadImage("norsu");
19    Image tahtiKuva = LoadImage("tahti");
20    AssaultRifle pelaajan1Ase;
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25        Gravity = new Vector(0, -1000);
26
27        LuoKentta();
28       
29        LisaaNappaimet();
30
31        Camera.Follow(Leaf);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35
36    void LuoKentta()
37    {
38
39        TileMap kentta = TileMap.FromLevelAsset("kentta1");
40        kentta.SetTileMethod('#', LisaaTaso);
41        kentta.SetTileMethod('*', LisaaTahti);
42        kentta.SetTileMethod('N', LisaaPelaaja);
43        kentta.SetTileMethod('S', LisaaVihu);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.Black, Color.Red);
47       
48    }
49
50
51        void LisaaTaso(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        taso.Position = paikka;
55        taso.Color = Color.Green;
56        Add(taso);
57    }
58    IntMeter pisteLaskuri;
59
60    void Luoelamalaskuri()
61    {
62        IntMeter pisteLaskuri;
63    }
64
65    void LuoPistelaskuri()
66    {
67     
68    }
69
70    void LisaaTahti(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        tahti.IgnoresCollisionResponse = true;
74        tahti.Position = paikka;
75        tahti.Image = tahtiKuva;
76        tahti.Tag = "tahti";
77        Add(tahti);
78    }
79    void LisaaVihu(Vector paikka, double leveys, double korkeus)
80    {
81        Sombombo = new PlatformCharacter(leveys, korkeus);
82        Add(Sombombo);
83        Sombombo.Image = LoadImage("vihu");
84        Sombombo.Tag = "pahis";
85        // Sombombo.X = 140;Sombombo.Y = 180;
86        Sombombo.Position = paikka;
87    }
88
89
90    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
91    {
92        Leaf = new PlatformCharacter(leveys, korkeus);
93        Leaf.Position = paikka;
94        Leaf.Mass = 4.0;
95        Leaf.Image = pelaajanKuva;
96        AddCollisionHandler(Leaf, "tahti", TormaaTahteen);
97        AddCollisionHandler(Leaf, "pahis", TormaaVihuun);
98        Add(Leaf);
99        //pelaaja1 on PlatformCharacter-tyyppinen
100        Leaf.Weapon = new AssaultRifle(30, 10);
101
102        //Ammusten määrä aluksi:
103        Leaf.Weapon.Ammo.Value = 100;
104
105        //Mitä tapahtuu kun ammus osuu johonkin?
106        Leaf.Weapon.ProjectileCollision = AmmusOsui;
107        //Leaf.Add(pelaajan1Ase);
108    }
109    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
110    {
111        ammus.Destroy();
112        kohde.Destroy();
113    }
114    void AmmuAseella(PlatformCharacter pelaaja)
115    {
116        PhysicsObject ammus = pelaaja.Weapon.Shoot();
117       
118        if (ammus != null)
119        {
120           
121            //ammus.Size *= 3;
122            //ammus.Image = ...
123            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
124        }
125        Level.Background.Color = Color.Red;
126    }
127
128    void LuotiOsuu(PhysicsObject tormaaja, PlatformCharacter kohde)
129    {
130        Sombombo.Destroy();
131    }
132
133    void LisaaNappaimet()
134    {
135        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
136        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
137
138        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Leaf, -nopeus);
139        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", Leaf, nopeus);
140        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", Leaf, hyppyNopeus);
141        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", Leaf);
142        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
143
144        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", Leaf, -nopeus);
145        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", Leaf, nopeus);
146        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", Leaf, hyppyNopeus);
147
148        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
149    }
150
151    void Liikuta(PlatformCharacter hahmo, double nopeus)
152    {
153        hahmo.Walk(nopeus);
154    }
155
156    void Hyppaa(PlatformCharacter hahmo, double nopeus)
157    {
158        hahmo.Jump(nopeus);
159    }
160
161    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
162    {
163        maaliAani.Play();
164        MessageDisplay.Add("Keräsit tähden!");
165        tahti.Destroy();
166    }
167    void TormaaVihuun(PhysicsObject hahmo, PhysicsObject vihu)
168    {
169        maaliAani.Play();
170        MessageDisplay.Add("You died");
171        hahmo.Destroy();
172    }
173}
Note: See TracBrowser for help on using the repository browser.