source: 2017/27/OskariL/testiasdf/testiasdf/testiasdf/testiasdf.cs @ 8816

Revision 8816, 5.0 KB checked in by npo17_41, 2 years ago (diff)

testiasdf

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class testiasdf : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14    bool laskuriPaalla = false;
15
16    DoubleMeter alaspainLaskuri;
17    Timer aikaLaskuri;
18
19    PlatformCharacter pelaaja1;
20
21    PhysicsObject taso;
22    PhysicsObject ammus;
23
24    Image pelaajanKuva = LoadImage("norsu");
25    Image tahtiKuva = LoadImage("tahti");
26
27    SoundEffect maaliAani = LoadSoundEffect("maali");
28
29    public override void Begin()
30    {
31        Gravity = new Vector(0, -1000);
32
33        LuoKentta();
34        LisaaNappaimet();
35
36        Camera.Follow(pelaaja1);
37        Camera.ZoomFactor = 1.2;
38        Camera.StayInLevel = true;
39    }
40
41    void LuoKentta()
42    {
43        TileMap kentta = TileMap.FromLevelAsset("kentta1");
44        kentta.SetTileMethod('#', LisaaTaso);
45        kentta.SetTileMethod('*', LisaaTahti);
46        kentta.SetTileMethod('N', LisaaPelaaja);
47        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
48        Level.CreateBorders();
49        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
50    }
51
52    void LisaaTaso(Vector paikka, double leveys, double korkeus)
53    {
54        taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        taso.Position = paikka;
56        taso.Color = Color.Green;
57        taso.Tag = "taso";
58        Add(taso);
59    }
60
61    void LisaaTahti(Vector paikka, double leveys, double korkeus)
62    {
63        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
64        tahti.IgnoresCollisionResponse = true;
65        tahti.Position = paikka;
66        tahti.Image = tahtiKuva;
67        tahti.Tag = "tahti";
68        Add(tahti);
69    }
70
71    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
72    {
73        pelaaja1 = new PlatformCharacter(leveys, korkeus);
74        pelaaja1.Position = paikka;
75        pelaaja1.Mass = 4.0;
76        pelaaja1.Image = pelaajanKuva;
77        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
78        Add(pelaaja1);
79    }
80
81    void LisaaNappaimet()
82    {
83        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
84        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
85
86        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
87        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
88        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
89        Keyboard.Listen(Key.Z, ButtonState.Pressed, Ammu, "Pelaaja ampuu", pelaaja1);
90
91        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
92
93        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
94        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
95        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
96
97        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
98    }
99    void Ammu(PlatformCharacter hahmo)
100    {
101        LuoAikaLaskuri(ammus, taso);
102        if (laskuriPaalla == false)
103        {
104
105            ammus = new PhysicsObject(15, 15, Shape.Circle);
106            ammus.X = pelaaja1.X + 50;
107            ammus.Y = pelaaja1.Y;
108            ammus.Color = Color.Black;
109            Add(ammus);
110            //AddCollisionHandler(ammus, "taso", LuoAikaLaskuri);
111
112            Vector vauhti = new Vector(1000, -500);
113            ammus.Hit(vauhti);
114            LuoAikaLaskuri(ammus, taso);
115            hahmo.Walk(-nopeus);
116            hahmo.Walk(-nopeus);
117            laskuriPaalla = true;
118
119            aikaLaskuri.Start();
120
121        }
122    }
123    void LuoAikaLaskuri(PhysicsObject ammus, PhysicsObject taso)
124    {
125
126        aikaLaskuri = new Timer();
127        aikaLaskuri.Interval = 1.5;
128        aikaLaskuri.Timeout += LaskeAlaspain;
129        laskuriPaalla = new bool();
130        laskuriPaalla = false;
131
132    }
133    void LaskeAlaspain()
134    {
135
136        AmmusRajahtaa(ammus, taso);
137        aikaLaskuri.Stop();
138        laskuriPaalla = false;
139    }
140        void AmmusRajahtaa(PhysicsObject ammus, PhysicsObject taso)
141    {
142
143        Explosion rajahdys = new Explosion(100);
144        rajahdys.Position = ammus.Position;
145        Add(rajahdys);
146        ammus.Destroy();
147
148    }
149    void Liikuta(PlatformCharacter hahmo, double nopeus)
150    {
151        hahmo.Walk(nopeus);
152    }
153
154    void Hyppaa(PlatformCharacter hahmo, double nopeus)
155    {
156        hahmo.Jump(nopeus);
157    }
158
159    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
160    {
161        maaliAani.Play();
162        MessageDisplay.Add("Keräsit tähden!");
163        tahti.Destroy();
164    }
165}
Note: See TracBrowser for help on using the repository browser.