source: 2014/24/JuhoJ/ShotgunJoe/ShotgunJoe/ShotgunJoe/ShotgunJoe.cs @ 4954

Revision 4954, 6.7 KB checked in by juonoljo, 8 years ago (diff)

sain vähä kaikkeee tehtyä

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class ShotgunJoe : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 550;
13    const int RUUDUN_KOKO = 40;
14   
15    PlatformCharacter pelaaja1;
16
17    DoubleMeter elamalaskuri;
18
19
20    Image pelaajanKuva = LoadImage("shutter");
21    Image tahtiKuva = LoadImage("tahti");
22    Image piikkikuva = LoadImage("Piikki");
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24    Image ruohokuva = LoadImage("Ruoho");
25    Image multakuva = LoadImage("multa");
26    Image asekuva = LoadImage("haulikko");
27    Image panoskuva = LoadImage("ammus");
28    Image vihukuva = LoadImage("Vihu");
29    Image näkymätönkuva = LoadImage("näkymätön");
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33
34        LuoKentta();
35        LisaaNappaimet();
36       
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 4.2;
39        Camera.StayInLevel = true;
40
41        pelaaja1.Weapon = new PlasmaCannon(30, 10);
42        pelaaja1.Weapon.Image = asekuva;
43        pelaaja1.Weapon.Ammo.Value = 100000000;
44        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
45        pelaaja1.Weapon.FireRate = 1000.0;
46       
47    }
48
49    void LuoKentta()
50    {
51        TileMap kentta = TileMap.FromLevelAsset("kentta1");
52        kentta.SetTileMethod('#', LisaaTaso);
53        kentta.SetTileMethod('*', LisaaTahti);
54        kentta.SetTileMethod('J', LisaaPelaaja);
55        kentta.SetTileMethod('P', LisaaPiikki);
56        kentta.SetTileMethod('R', LisaaRuoho);
57        kentta.SetTileMethod('V', LisaaVihu);
58        kentta.SetTileMethod('N', LisaaNäkymätön);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
62    }
63
64    void LisaaTaso(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
67        taso.Position = paikka;
68        taso.Image = multakuva;
69        Add(taso);
70    }
71
72    void LisaaTahti(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        tahti.IgnoresCollisionResponse = true;
76        tahti.Position = paikka;
77        tahti.Image = tahtiKuva;
78        tahti.Tag = "tahti";
79        Add(tahti);
80    }
81
82    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
83    {
84        pelaaja1 = new PlatformCharacter(leveys , korkeus );
85        pelaaja1.Position = paikka;
86        pelaaja1.Mass = 4.0;
87        pelaaja1.Image = pelaajanKuva;
88        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
89       // AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkin);
90        Add(pelaaja1);
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.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
99        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
100        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
101
102        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
103
104        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
105        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
106        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
107        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
108
109        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
110    }
111
112    void Liikuta(PlatformCharacter hahmo, double nopeus)
113    {
114        hahmo.Walk(nopeus);
115    }
116
117    void Hyppaa(PlatformCharacter hahmo, double nopeus)
118    {
119        hahmo.Jump(nopeus);
120    }
121
122    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
123    {
124        maaliAani.Play();
125        MessageDisplay.Add("Keräsit tähden!");
126        tahti.Destroy();
127    }
128
129    void LisaaPiikki(Vector paikka, Double leveys, Double korkeus)
130    {
131        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
132        piikki.Tag = "piikki";
133        piikki.Position = paikka;
134        piikki.Image = piikkikuva;
135        Add(piikki);
136
137    }
138
139    void LisaaRuoho(Vector paikka, Double leveys, Double korkeus)
140    {
141        PhysicsObject ruoho = PhysicsObject.CreateStaticObject(leveys, korkeus);
142        ruoho.Tag = "ruoho";
143        ruoho.Position = paikka;
144        ruoho.Image = ruohokuva;
145        Add(ruoho);
146
147    }
148
149    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
150    {
151        //ammus.Destroy();
152    }
153
154    void AmmuAseella(PlatformCharacter pelaaja)
155    {
156        PhysicsObject ammus = pelaaja.Weapon.Shoot();
157
158        if (ammus != null)
159        {
160            //ammus.Size *= 3;
161            ammus.Image = panoskuva;
162            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
163           
164        }
165    }
166
167    void LisaaVihu(Vector paikka, Double leveys, Double korkeus)
168    {
169        PlatformCharacter vihu = new PlatformCharacter(leveys, korkeus);
170        vihu.Position = paikka;
171        vihu.Image = vihukuva;
172        Add(vihu);
173        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
174        vihu.Brain = seuraajanAivot;
175       
176    }
177
178    void LisaaNäkymätön(Vector paikka, Double leveys, Double korkeus)
179    {
180        PhysicsObject näkymätön = PhysicsObject.CreateStaticObject(leveys, korkeus);
181        näkymätön.Tag = "näkymätön";
182        näkymätön.Position = paikka;
183        näkymätön.Image = näkymätönkuva;
184        Add(näkymätön);
185    }
186
187    void LuoElamaLaskuri()
188    {
189        elamalaskuri = new DoubleMeter(10);
190        elamalaskuri.MaxValue = 10;
191        elamalaskuri.LowerLimit += ElamaLoppui;
192
193        ProgressBar elamaPalkki = new ProgressBar(150, 20);
194        elamaPalkki.X = Screen.Left + 150;
195        elamaPalkki.Y = Screen.Top - 20;
196        elamaPalkki.BindTo(elamalaskuri);
197        elamaPalkki.Color = Color.Transparent;
198        elamaPalkki.BarColor = Color.Red;
199        elamaPalkki.BorderColor = Color.Black;
200        Add(elamaPalkki);
201    }
202
203    void ElamaLoppui()
204    {
205        MessageDisplay.Add("Huudat elämäsi puolesta kun sisälmyksesi valuvat maahan!");
206    }
207
208
209   
210
211}
Note: See TracBrowser for help on using the repository browser.